Jump to content
The Beta Account Center is temporarily unavailable ×

Recommended Posts

Posted

I have released v0.32-test1, which contains the immense rework of the Profile data, as well as dozens and dozens of other changes around the edges.  It's almost certainly buggy.  Check it out if you feel brave, and report bugs as you find them.

 

Important:  BACK UP YOUR PROFILES.  This release changes almost everything about how the Profile Data are handled in code, and so the chances of bugs accidentally altering your Profile in undesirable ways are pretty good.

 

Let me know your luck with it.  I'll be continuing to test it myself, and releasing further -test releases as we go.

 

https://github.com/emersonrp/bindcontrol/releases/tag/v0.32-test1

 

 

Posted
On 9/28/2025 at 7:39 PM, emersonrp said:

In general I'm a little leery of splatting things onto keys that aren't explicitly chosen in BindControl, but I totally see where you're coming from.

 

Honestly, you make a good point. Just having a checkbox for "Clear any existing team selection binds" would probably split the difference nicely.

 

On 9/28/2025 at 7:39 PM, emersonrp said:

But I'll probably just start with turning off the default keybinds for movement powers for new profiles.

 

As a first pass, that works. 

 

 

Posted (edited)
13 hours ago, emersonrp said:

Important:  BACK UP YOUR PROFILES.  This release changes almost everything about how the Profile Data are handled in code, and so the chances of bugs accidentally altering your Profile in undesirable ways are pretty good.

 

 

What could possibly go wrong, I ask you? 😄 So far, it does seem to work smoothly enough.

Edited by kenlon
Posted

Found a bug with v0.32 - if you do "Import saved build" it doesn't bring in any of your default profile settings. (And I did a "save as default" with my basic profile in 0.32 in case anything had changed with how it was saved in the ini file). Doing "new profile" inherits settings just fine. 

Posted
7 hours ago, kenlon said:

Found a bug with v0.32 - if you do "Import saved build" it doesn't bring in any of your default profile settings. (And I did a "save as default" with my basic profile in 0.32 in case anything had changed with how it was saved in the ini file). Doing "new profile" inherits settings just fine. 

Ah good catch, yeah I'll get that for a -test2.  I'm probably doing things in the wrong order during Profile initialization.

Posted (edited)
9 hours ago, kenlon said:

 

Honestly, you make a good point. Just having a checkbox for "Clear any existing team selection binds" would probably split the difference nicely.

 

 

As a first pass, that works. 

 

 

Cool, I'll try to roll those up for -test2.

 

Edit:  Oh I see that I already did the "no default movement key" thing for -test1.

Edited by emersonrp
Posted

OK I have released a -test2.  I'm about to climb on a plane and be out of the loop until evening, so I'm just tossing this out there to see.  Release notes:

  • New "remove default team select binds" checkbox. This is smoke-tested
    but still might react weirdly with different / changing "Keybind
    Profile" settings.
  • Bugfix: Various keybuttons were simply not getting fully initialized
    from the Profile data -- frankly I'm not sure how anything was working
    at all, but it should be working better now.
  • Untested: Honor Default Profile when importing buildfile. This
    should just work fine, but because of time constraints today, I can't
    test it adequately. Check it out.
  • Updated test_icons file to the new --forked version since I'm running
    pytest --forked by default now.

 

https://github.com/emersonrp/bindcontrol/releases/tag/v0.32-test2

Posted
1 hour ago, emersonrp said:

Untested: Honor Default Profile when importing buildfile. This
should just work fine, but because of time constraints today, I can't
test it adequately. Check it out.

 

Nope, this doesn't work, sadly.

Posted
10 hours ago, kenlon said:

Nope, this doesn't work, sadly.

Yeah, boy, that was just not the right thing at all, was it?  OK, there's a -test3 out there now, where it -does- work, at least to a first approximation.  There might still be a little weirdness because mashing one set of profile data on top of another is actually a bit more fiddly than I'd like.  Check it out.

 

https://github.com/emersonrp/bindcontrol/releases/tag/v0.32-test3

Posted (edited)

I really wish I knew what  about  your setup  keeps getting the exe flagged by Defender. It's heuristic, since it's always a 'ml' detection. How are you packaging this?

EDIT: I did just update the defs in the hopes that a new set would have clue, but no luck.

Edited by kenlon
Posted
3 hours ago, kenlon said:

I really wish I knew what  about  your setup  keeps getting the exe flagged by Defender. It's heuristic, since it's always a 'ml' detection. How are you packaging this?

EDIT: I did just update the defs in the hopes that a new set would have clue, but no luck.

Oh, it's PyInstaller, it's always PyInstaller.  I even wrote up a thing about it:  https://github.com/emersonrp/bindcontrol/blob/main/Help/MalwareWarnings.md

 

Not that that helps in any way.  It's so completely aggravating, especially since I have explicitly pinned the version of python and of pyinstaller in the build script, so that they shouldn't be changing and confusing Windows Defender.

 

Interestingly, on my Win11 laptop that I'm shackled to this week, I didn't get any malware warning with -test3, even when I explicitly scanned the folder.  My Windows Defender virus defs here are 1.437.261.0, dated today, 10/1.  Not that this should be a big deal, as PyInstaller 6.10 has (mostly) worked with Defender for months.

 

If you're feeling extra adventurous, the "Running From Source" instructions in the README on GitHub can get you working with the raw Python source which will sidestep this entire problem completely, but it is more fiddly than just downloading release ZIPfiles.

Posted

Found an issue with test3: If you try to bind Incarnate powers, it doesn't quite work right. Example: the preview bind string for Ageless Core Epiphany is "powexectoggleon <class 'type'> Core Epiphany". 

Posted
25 minutes ago, kenlon said:

Found an issue with test3: If you try to bind Incarnate powers, it doesn't quite work right. Example: the preview bind string for Ageless Core Epiphany is "powexectoggleon <class 'type'> Core Epiphany". 

Yeah I just found that one earlier today, too.  I have a fix out in the main branch already, so it'll be part of -test4 whenever that happens, maybe tonight.

 

Also, out to the side, working on the business of importing the actual power picks from buildfiles, and using them to inform the PowerPicker popups and eventually things like movement power defaults.

Posted
4 hours ago, emersonrp said:

Also, out to the side, working on the business of importing the actual power picks from buildfiles, and using them to inform the PowerPicker popups and eventually things like movement power defaults.

 

Would also be handy for things like powexec binds too, would make it simpler when setting up self-buff binds. 

Posted (edited)

Saw you had a v0.32-test4 tagged, so I checked it out. The Incarnate powers are bindable now, but I ran into a small issue. PowerBinder doesn't have /powexec_location  so I had to do it as a custom command. (I bound my Lore pet with "/powexec_location me" so they'd just drop at my feet in one click.)

 

Edit: Additionally, is there a particular reason that ESC is unbindable, or is it just because hitting ESC to close windows is the default assumption of BindControl?

Edited by kenlon
Posted
1 hour ago, kenlon said:

Saw you had a v0.32-test4 tagged, so I checked it out. The Incarnate powers are bindable now, but I ran into a small issue. PowerBinder doesn't have /powexec_location  so I had to do it as a custom command. (I bound my Lore pet with "/powexec_location me" so they'd just drop at my feet in one click.)

 

Oh yeah that's just an oversight.  I'll add that in.

 

1 hour ago, kenlon said:

Edit: Additionally, is there a particular reason that ESC is unbindable, or is it just because hitting ESC to close windows is the default assumption of BindControl?

 

That's mostly the latter - the game handles binding ESC kinda weirdly, iirc, so I never dug into how to override the default toolkit behavior and capture ESC in the keybind dialog.  If you have a use case for that, and I suppose you do or you wouldn't be asking, I can look into making that possible.

Posted
5 minutes ago, emersonrp said:

That's mostly the latter - the game handles binding ESC kinda weirdly, iirc, so I never dug into how to override the default toolkit behavior and capture ESC in the keybind dialog.  If you have a use case for that, and I suppose you do or you wouldn't be asking, I can look into making that possible.

 

Wow OK, I have misremembered some of that.  Apparently long long ago I explicitly grabbed ESC to close the KeySelect window and had forgotten in the intervening years.  All I have to do is undo that, basically.  So yeah, that'll be in -test5 for sure.

 

Also now pondering adding an "Escape Wizard" that offers up a set of things one might want to do with the ESC key, like unselect, unqueue power, close extraneous windows, maybe a couple others, in a simpler UI.  Possibly I'm just looking for things to do with the Wizard functionality that's just got the one thing so far.

Posted (edited)

OK, I've just released a -test5 version with those two changes:  bindable ESC key, and support for powexec_location in PowerBinder's "Use Power" command.  The latter was a little hairier than I'd originally expected because I needed to provide UI for the various options for powexec_location, which I'm not 1000% happy with but it's better than nothing;  also I had to gate all of that behind "if Homecoming" logic since Rebirth doesn't (yet?) have that slash command.

 

Speaking of Rebirth, the server picker on the General page was not working at all and everything was Homecoming.  I've fixed that, I believe.  Rebirth players let me know if anything's weird with that.

 

https://github.com/emersonrp/bindcontrol/releases/tag/v0.32-test5

 

Edited by emersonrp
Posted
19 hours ago, kenlon said:

I was considering binding ESC to the close all windows option, so I was curious about binding it.

 

You got me all inspired:

 

image.thumb.png.4c81ab8a3ccaadbcd4822988c1426717.png

 

Coming soon....

Posted

I've gone ahead and made this into an official v0.32 release.  There are a few wee fixes from -test6, so go ahead and grab it.

 

https://github.com/emersonrp/bindcontrol/releases

 

Release Notes:

 

This release radically reworks the internal representation of the
Profile, making it separate from the UI state. This allows it to be
tested without instantiating the UI, which will make it easier to avoid
certain classes of bugs and regressions.

This release has seen six test releases which were extremely helpful in
finding issues with it, and now seems stable and workable. Please of
course file bugs if you find them.

Change notes from v0.31:

  • Giant rework of storage of Profile data, as described above
  • Many many many updates and additions to the pytest-based test suite
  • "Remove default team select binds" option on Gameplay tab when using
    the Combined Team/Pet Selector binds
  • Default Profile will now be honored / used when importing a buildfile
  • New "Getting Started with BindControl" link on default start page to
    try to surface the wiki / documentation a bit more.
  • "Miscellaneous Helpful Binds" on the Gameplay Page were simply not
    being written out, and now are.
  • Added support for powexec_location to PowerBinder's "Use Power"
    command.
  • It is now possible to bind "ESC" with the KeySelect dialog;
    previously trying to do this would simply close the dialog.
  • Better flow adding a Custom Bind; several paths to weird behavior
    have been cleaned up.
  • Multiple malformed / incomplete binds on the Custom Binds page will no
    longer each throw a separate warning dialog when writing binds;
    instead there will be a single dialog with a list of such binds
  • Many more tiny updates and fixes that didn't merit individual notes at
    the time.
Posted

I ended up binding ESC to "/wdw_load" (after saving the window layout I want to use to Homecoming/settings/live/wdw.txt with /wdw_save) since I use the same layout for all characters. I used a custom bind, since your wdw save/load option uses wdwsavefile/wdwloadfile and I don't need separate window layouts at the moment. Just FYI.

 

Another thing, the "default profile" being just a regular profile that you then use when creating new profiles has some drawbacks. If I add a new bind (custom or otherwise) to my default, or change one of my custom binds, I have to either recreate all my character-specific profiles or make the change to all of them myself. 
What I would really want, as an end user, is the following:

The default profile is independent from manually created profiles, and when opening a profile for editing, the default is used as a base and then overwritten with any profile-specific changes that have been made. I can set all the movement type binds in the default, and then if I load a build/profile that has the associated powers in them, they are added to the binds written out by that profile.
If I revise a shared bind, custom or not, all I have to do is open all the profiles, write out binds, save profile. Which is a much faster process than either recreating or manually saving and importing multiple custom binds, since you can't do a set at once.

 

From looking over the code, that would be a bit of a pain to implement (at the very least), but I figured I'd at least mention it, given that you're already mucking around in the "which powers does this profile actually have" bits of Bindcontrol. The simplest way to do it, seems to me (though it may not be the best), would be to change up the file format so that each bind entry has an additional field that marks whether the bind is profile-specific or not. If the bind is from the default, not profile specific, then when opening the profile BindControl will update those binds to whatever the default has been changed to.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...