Jump to content

Advanced Binds - Cycling Attribute Monitor Stats on Key Press


Avernal

Recommended Posts

This one ties in with my custom default binds topic, as I use this same set of monitored stats on all my new alts. We're going to set up our 'O' key so that each time you press it, it will change the set of stats shown on your screen in the combat attributes monitor window. It'll cycle between general stats like your regen, recovery, recharge speed and influence total, defensive stats and resistance stats.

One important thing to note here is that a couple of the combat monitor attributes are actually bugged in the game client and the slash command for them doesn't work - so there are a couple of stats (in the Resistances section if I recall correctly) that cannot be shown on the monitor window - they will display if you go in to the full combat stats window with all the dropdowns, but there's no way to display them onscreen unless the HC devs figure out how to fix the commands unfortunately.

This is probably the bind that uses the most text files of any I have (TWELVE of them all up!) but the actual content of those files is really simple - it's a repeat of the '+down$$-down$$' beginning, which makes it a toggle that runs on both the key being pushed in and again when let go, then it's literally just telling the game to start (or stop) monitoring certain attributes. I'll break down how each pair/quad of files relates to what is happening ingame when you hit O, so it's all in plain English and easy to understand.

The reason it needs so many files is the ingame slash commands use really long names and you have to actively tell the game to STOP monitoring a stat before you start monitoring a new one if you want your stats window to remain consistent, with everything always appearing in the right order and not bugging out or scrolling stuff off the bottom by accident.

 


 

First up - the basics, and some things you'll benefit from knowing, in plain English:
 

  • Binds have a hard limit of around 255 characters, so for more complex ones you need to split them in to chunks (files) that fit those restrictions. That's why binds like this use multiple text files.
     
  • The 'bindloadfile' command will default to the 'root' game directory if you use relative paths ("bindloadfile file1.txt" would look for file1.txt in the root directory), this means you're cutting out however many characters you would waste on typing out the full HDD path, so you don't need to use "C:/Binds/whatever.txt" as a sloppy workaround for that - "binds/whatever.txt" is MUCH shorter than even that and lets you keep your binds subfolder in the game's directory. Win-win. Now this will differ from launcher to launcher - but essentially Tequila will look in the 'Tequila' directory if you don't use a full path, whereas Homecoming's launcher would look in "settings/live" (for the live servers). You may need to fiddle with this if you're using other launchers to find out where the game is looking by default, generally it'll be in the same location as the City of Heroes executable file, Homecoming have just sorted their versions to their own subfolders.
     
  • Removing the underscores from slash commands makes them shorter and the game still understands them - you don't need "bind_load_file", because "bindloadfile" works too and is two characters shorter. I like "bindloadfilesilent" because whilst it's a little longer, it means my chat window isn't getting spammed with bind files loading in, and I can still split most of my long bind loops in to 2 or 4 files to avoid the hard limit of text characters.
     
  • If you add "+ $$- $$" (note the spaces) to the beginning of your multiple file bind, it will actually execute two steps - once when you press the key down, and again when you release it. In a bind that uses multiple files - this means one keypress will run *two* bind files on a single push and release, speeding things up (this is the shortest possible number of characters and is thanks to JAMMan0000's suggestion on my 'Lazy Kin' bind topic). We're using this here so we only have to hit Q once and it'll slap them with Speed Boost then queue up Increase Density immediately after.

    This is going to be used here because the monitor attribute commands are quite long and hit the 255 character limit quickly, so for each set of stats the window displays we're going to need them to be split between two files - one that runs when you push O down, and the second that runs when you let go.
  •  


    Now that's out of the way, the binds...

    File 1 'mon1.txt' - located in a '/binds' sub-folder of my Homecoming installation ('/settings/live/')
    Monitor certain stats then load in the next file in sequence (this is half of the first set of stats - loaded in when you PRESS 'O').
     

    O "+ $$- $$monitorattribute regeneration rate$$monitorattribute recovery rate$$monitorattribute Endurance Consumption$$monitorattribute to hit bonus$$monitorattribute damage bonus$$bindloadfilesilent binds/mon2.txt"

     
    File 2 'mon2.txt'
    - located in a '/binds' sub-folder of my Homecoming installation ('/settings/live/')
    Monitor certain stats then load in the next file in sequence (this is the second half of the first set of stats - loaded in when you RELEASE 'O').
     

    O "+ $$- $$monitorattribute recharge time bonus$$monitorattribute Influence$$bindloadfilesilent binds/mon3.txt"


    So these seem more complicated than my other bind topics, but they really aren't - file 1 and 2 are essentially the 'main' part of the bind, they're loading in the first set of stats we want to monitor (7 in total so we don't start losing them as we hit the limit and scroll them off the bottom of the window) - the content of these two files all happens in the space of time it takes you to hit O once.

    Now, the next two files will be the reverse of this - remove all seven of these monitored stats from the combat attribute monitor window, so that we have a blank slate before the next seven get loaded in, and our bind doesn't bug out/get out of sync/scroll excess stats off the bottom of the window.

     

     File 3 'mon3.txt' - located in a '/binds' sub-folder of my Homecoming installation ('/settings/live/')
    Stop monitoring certain stats then load in the next file in sequence (this is half of the first set of stats - loaded in when you PRESS 'O').
     

    O "+ $$- $$stopmonitorattribute regeneration rate$$stopmonitorattribute recovery rate$$stopmonitorattribute Endurance Consumption$$stopmonitorattribute to hit bonus$$stopmonitorattribute damage bonus$$bindloadfilesilent binds/mon4.txt"

     

     File 4 'mon4.txt' - located in a '/binds' sub-folder of my Homecoming installation ('/settings/live/')
    Stop monitoring certain stats then load in the next file in sequence (this is the second half of the first set of stats - loaded in when you RELEASE 'O').
     

    O "+ $$- $$stopmonitorattribute recharge time bonus$$stopmonitorattribute Influence$$bindloadfilesilent binds/mon5.txt"


    Those four files are now a complete cycle of loading in seven stats when O is pushed once, and then removing those stats when you push O again (four steps in total when you count that pressing O counts as one step and releasing it counts as a second). Every file we add from now on is going to be a repetition of these same four steps but we'll use different attribute names each time. So the twelve bind files, divided by these four steps, means you're cycling through seeing three different sets of stats on your screen - and between each set of stats 'O' is blanking them/turning off stat monitoring altogether - meaning you can play with no stats visible/general recovery and recharge stats/defensive stats/resistance stats.

    File 5 'mon5.txt' - located in a '/binds' sub-folder of my Homecoming installation ('/settings/live/')
    Follows the same pattern as the four files above, this time we're loading and unloading Defense attributes
     

    O "+ $$- $$monitorattribute Melee Defense$$monitorattribute Ranged Defense$$monitorattribute AoE Defense$$monitorattribute Smashing Defense$$monitorattribute Lethal Defense$$monitorattribute Fire Defense$$bindloadfilesilent binds/mon6.txt"

     
    File 6 'mon6.txt'
    - located in a '/binds' sub-folder of my Homecoming installation ('/settings/live/')
    Follows the same pattern as the four files above, this time we're loading and unloading Defense attributes
     

    O "+ $$- $$monitorattribute Cold Defense$$monitorattribute Energy Defense$$monitorattribute Negative Energy Defense$$monitorattribute Psionic Defense$$bindloadfilesilent binds/mon7.txt"

     
    File 7 'mon7.txt'
    - located in a '/binds' sub-folder of my Homecoming installation ('/settings/live/')
    Follows the same pattern as the four files above, this time we're loading and unloading Defense attributes
     

    O "+ $$- $$stopmonitorattribute Melee Defense$$stopmonitorattribute Ranged Defense$$stopmonitorattribute AoE Defense$$stopmonitorattribute Smashing Defense$$stopmonitorattribute Lethal Defense$$bindloadfilesilent binds/mon8.txt"

     
    File 8 'mon8.txt'
    - located in a '/binds' sub-folder of my Homecoming installation ('/settings/live/')
    Follows the same pattern as the four files above, this time we're loading and unloading Defense attributes
     

    O "+ $$- $$stopmonitorattribute Fire Defense$$stopmonitorattribute Cold Defense$$stopmonitorattribute Energy Defense$$stopmonitorattribute Negative Energy Defense$$stopmonitorattribute Psionic Defense$$bindloadfilesilent binds/mon9.txt"


    That is all the Defense stats - notice how it's functionally similar to the first four files that show General stats? We're going to do the same again now with another block of four files, but this time for Resistance stats.
     

     File 9 'mon9.txt' - located in a '/binds' sub-folder of my Homecoming installation ('/settings/live/')
    Follows the same pattern as the four files above, this time we're loading and unloading Resistance attributes
     

    O "+ $$- $$monitorattribute Smashing Resistance$$monitorattribute Lethal Resistance$$monitorattribute Fire Resistance$$monitorattribute Cold Resistance$$monitorattribute Energy Resistance$$bindloadfilesilent binds/mon10.txt"


     

     File 10 'mon10.txt' - located in a '/binds' sub-folder of my Homecoming installation ('/settings/live/')
    Follows the same pattern as the four files above, this time we're loading and unloading Resistance attributes
     

    O "+ $$- $$monitorattribute Negative Energy Resistance$$monitorattribute Psionic Resistance$$monitorattribute Toxic Resistance$$bindloadfilesilent binds/mon11.txt"

     
    File 11 'mon11.txt'
    - located in a '/binds' sub-folder of my Homecoming installation ('/settings/live/')
    Follows the same pattern as the four files above, this time we're loading and unloading Resistance attributes
     

    O "+ $$- $$stopmonitorattribute Smashing Resistance$$stopmonitorattribute Lethal Resistance$$stopmonitorattribute Fire Resistance$$stopmonitorattribute Cold Resistance$$stopmonitorattribute Energy Resistance$$bindloadfilesilent binds/mon12.txt"


     

     File 12 'mon12.txt' - located in a '/binds' sub-folder of my Homecoming installation ('/settings/live/')
    Follows the same pattern as the four files above, this time we're loading and unloading Resistance attributes
     

    O "+ $$- $$stopmonitorattribute Negative Energy Resistance$$stopmonitorattribute Psionic Resistance$$stopmonitorattribute Toxic Resistance$$bindloadfilesilent binds/mon1.txt"


     Phew! A lot of files but that's it - mon12.txt loads in mon1.txt at the end, which starts the loop over from the beginning.
     



To initially load this bind ingame you would use the following command:

/bindloadfile "binds/mon1.txt"


Once that's done it will automatically keep rotating between the 12 files as you press O on the keyboard.
 



A whole lot of bind files there but you only have to create them once and then they'll provide you with a nice, quick way to see all the important stats at a glance, and a convenient way to cycle through sets of those stats - turning them off inbetween so you also have the option of not cluttering your screen.

As I mentioned at the start of the topic, I use this as part of my default keybind set-up for new alts - so my O key in that file is a straight copy & paste of the contents of mon1.txt - the game then loads in the rest of the files in sequence for me.

Edited by Avernal
Updated to use shorter path
Link to comment
Share on other sites

  • 1 year later

As you know, one of the big problems with using /monitor_attribute with binds is the dang 256 character limit! Not only is the slash command long, but the attribute names are also very long. I did some poking around and discovered several number codes and a bunch of random letters for attribute names. I also found out the command searches for the attribute names using some sort of inconsistent text or pattern matching that helped me figure out some abbreviations.

 

There is a known bug with the command that prevents the use of "Energy Defense" and "Energy Resistance" as attribute names. When those names are used, "Negative Energy Defense" and "Negative Energy Resistance" pop up instead. Luckily, I discovered you can use the number "7" as a substitute name for "Energy Defense", and "DamageType[4]" as a substitute name for "Energy Resistance."    

 

Anyway, here's the list of codes and abbreviations I came up with (I also updated the Wiki with this info):

 

1=Toxic Defense
2=AoE Defense
3=Smashing Defense
4=Lethal Defense
5=Fire Defense
6=Cold Defense
7=Energy Defense
8=Negative Energy Defense
9=Psionic Defense
ED=Ranged Defense
MEL=Melee Defense

BAS=Base Defense


L R=Lethal Resistance
G R=Smashing Resistance
RE R=Fire Resistance
Cold R=Cold Resistance
GY R=Negative Energy Resistance
NIC R=Psionic Resistance
C R= Toxic Resistance

DamageType[4]=Energy Resistance

 

CC=Accuracy Bonus
SE P=Confuse Protection
T E=Current Endurance
NT H=Current Hit Points
DA=Damage Bonus
SU=Endurance Consumption
XP=Experience Debt
XT=Experience to Next Level
D P=Hold Protection
INF=Influence
NH=Inherent
TC=Last Hit Chance
DS=Level Shift
X H=Max Hit Points
ME B=Recharge Time Bonus
Y RA= Recovery Rate
N RAT=Regeneration Rate
PVE=Stealth Radius (PvE)
T B=To Hit Bonus
FL=Flying Speed
PI=Jumping Speed
RU=Run Speed

Edited by BlackSpectre
Updated with substitute name for Energy Resistance
  • Thumbs Up 1
Link to comment
Share on other sites

  • 1 month later
On 12/11/2022 at 9:07 PM, BlackSpectre said:

As you know, one of the big problems with using /monitor_attribute with binds is the dang 256 character limit! Not only is the slash command long, but the attribute names are also very long. I did some poking around and discovered several number codes and a bunch of random letters for attribute names. I also found out the command searches for the attribute names using some sort of inconsistent text or pattern matching that helped me figure out some abbreviations.

 

There is a known bug with the command that prevents the use of "Energy Defense" and "Energy Resistance" as attribute names. When those names are used, "Negative Energy Defense" and "Negative Energy Resistance" pop up instead. Luckily, I discovered you can use the number "7" as a substitute name for "Energy Defense", and "DamageType[4]" as a substitute name for "Energy Resistance."    

 

Anyway, here's the list of codes and abbreviations I came up with (I also updated the Wiki with this info):

 

1=Toxic Defense
2=AoE Defense
3=Smashing Defense
4=Lethal Defense
5=Fire Defense
6=Cold Defense
7=Energy Defense
8=Negative Energy Defense
9=Psionic Defense
ED=Ranged Defense
MEL=Melee Defense

BAS=Base Defense


L R=Lethal Resistance
G R=Smashing Resistance
RE R=Fire Resistance
Cold R=Cold Resistance
GY R=Negative Energy Resistance
NIC R=Psionic Resistance
C R= Toxic Resistance

DamageType[4]=Energy Resistance

 

CC=Accuracy Bonus
SE P=Confuse Protection
T E=Current Endurance
NT H=Current Hit Points
DA=Damage Bonus
SU=Endurance Consumption
XP=Experience Debt
XT=Experience to Next Level
D P=Hold Protection
INF=Influence
NH=Inherent
TC=Last Hit Chance
DS=Level Shift
X H=Max Hit Points
ME B=Recharge Time Bonus
Y RA= Recovery Rate
RA=Regeneration Rate
PVE=Stealth Radius (PvE)
T B=To Hit Bonus
FL=Flying Speed
PI=Jumping Speed
RU=Run Speed


This is great, messing around with it to try and slimline the number of required bind files - there is a mistake in your code for Regeneration Rate though - it seems to call 'Regeneration Resistance', reckon you can find the right shorthand for it?

Link to comment
Share on other sites

2 hours ago, Avernal said:


This is great, messing around with it to try and slimline the number of required bind files - there is a mistake in your code for Regeneration Rate though - it seems to call 'Regeneration Resistance', reckon you can find the right shorthand for it?

Good eye! Thanks for spotting this.

 

The best I could come up with is "N RAT" for Regeneration Rate 🙂

 

 

Link to comment
Share on other sites

  • 11 months later

This is so fantastic, that I just HAD TO necro this thread, and share mine as well!

 

Here is my layout, using F12 as my binder. The only two that I keep on my screen consistently across all sets are Endurance Drain and Influence. 

 

 

SET 1 (DEFENSE):

ADDS THE FOLLOWING (KEY DOWN). This is also what I put into my keybinds.txt file (or what I would use /bind to create in game to start the sequence):
DEFENSE = Lethal, Smashing, Cold, Energy, Fire

# OF CHARACTERS = 147

F12 "+ $$- $$monitorattribute 4$$monitorattribute 3$$monitorattribute 6$$monitorattribute 5$$monitorattribute 7$$bindloadfilesilent binds/mon02.txt"


ADDS THE FOLLOWING (KEY UP):
DEFENSE = Neg Energy, Psionic, Toxic

MISC = Endurance Consumption, Influence

# OF CHARACTERS = 152

F12 "+ $$- $$$$monitorattribute 8$$monitorattribute 9$$monitorattribute 1$$monitorattribute SU$$monitorattribute INF$$bindloadfilesilent binds/mon03.txt"


REMOVES THE FOLLOWING (KEY DOWN):
DEFENSE = Lethal, Smashing, Cold, Energy, Fire

# OF CHARACTERS = 167

F12 "+ $$- $$stopmonitorattribute 4$$stopmonitorattribute 3$$stopmonitorattribute 6$$stopmonitorattribute 5$$stopmonitorattribute 7$$bindloadfilesilent binds/mon04.txt"


REMOVES THE FOLLOWING (KEY UP):
DEFENSE = Neg Energy, Psionic, Toxic
MISC = Endurance Consumption, Influence

# OF CHARACTERS = 170

F12 "+ $$- $$stopmonitorattribute 8$$stopmonitorattribute 9$$stopmonitorattribute 1$$stopmonitorattribute SU$$stopmonitorattribute INF$$bindloadfilesilent binds/mon05.txt"

 

 

 

SET 2 (DAMAGE RESISTANCE):

ADDS THE FOLLOWING (KEY DOWN):
DAM RES = Lethal, Smashing, Cold, Energy, Fire

# OF CHARACTERS = 171

F12 "+ $$- $$monitorattribute L R$$monitorattribute G R$$monitorattribute Cold R$$monitorattribute DamageType[4]$$monitorattribute RE R$$bindloadfilesilent binds/mon06.txt"


ADDS THE FOLLOWING (KEY UP):
DAM RES = Neg Energy, Psionic, Toxic
MISC = Endurance Consumption, Influence

# OF CHARACTERS = 159

F12 "+ $$- $$monitorattribute GY R$$monitorattribute NIC R$$monitorattribute C R$$monitorattribute SU$$monitorattribute INF$$bindloadfilesilent binds/mon07.txt"


REMOVES THE FOLLOWING (KEY DOWN):
DAM RES = Lethal, Smashing, Cold, Energy, Fire

# OF CHARACTERS = 191

F12 "+ $$- $$stopmonitorattribute L R$$stopmonitorattribute G R$$stopmonitorattribute Cold R$$stopmonitorattribute DamageType[4]$$stopmonitorattribute RE R$$bindloadfilesilent binds/mon08.txt"


REMOVES THE FOLLOWING (KEY UP):
DAM RES = Neg Energy, Psionic, Toxic
MISC = Endurance Consumption, Influence

# OF CHARACTERS = 179

F12 "+ $$- $$stopmonitorattribute GY R$$stopmonitorattribute NIC R$$stopmonitorattribute C R$$stopmonitorattribute SU$$stopmonitorattribute INF$$bindloadfilesilent binds/mon09.txt"

 

 

 

SET 3 (BONUS / PROTECTION / REGEN):

ADDS THE FOLLOWING (KEY DOWN):
MISC = Accuracy Bonus, Damage Bonus, To Hit Bonus, Confuse Protection, Hold Protection

# OF CHARACTERS = 157

F12 "+ $$- $$monitorattribute CC$$monitorattribute DA$$monitorattribute T B$$monitorattribute SE P$$monitorattribute D P$$bindloadfilesilent binds/mon10.txt"


ADDS THE FOLLOWING (KEY UP):
MISC = Perception Radius, Regeneration Rate, Recovery Rate, Endurance Consumption, Influence

# OF CHARACTERS = 159

F12 "+ $$- $$monitorattribute RC$$monitorattribute N RAT$$monitorattribute Y RA$$monitorattribute SU$$monitorattribute INF$$bindloadfilesilent binds/mon11.txt"


REMOVES THE FOLLOWING (KEY DOWN):

MISC = Accuracy Bonus, Damage Bonus, To Hit Bonus, Confuse Protection, Hold Protection

# OF CHARACTERS = 177

F12 "+ $$- $$stopmonitorattribute CC$$stopmonitorattribute DA$$stopmonitorattribute T B$$stopmonitorattribute SE P$$stopmonitorattribute D P$$bindloadfilesilent binds/mon12.txt"

 

REMOVES THE FOLLOWING (KEY UP):
MISC = Perception Radius, Regeneration Rate, Recovery Rate, Endurance Consumption, Influence 

# OF CHARACTERS = 178

F12 "+ $$- $$stopmonitorattribute RC$$stopmonitorattribute N RAT$$stopmonitorattribute Y RA$$stopmonitorattribute SU$$stopmonitorattribute INF$$bindloadfilesilent binds/mon01.txt"

 

Just mash F12 and every other press is the new set of attributes! This way, it is consistent across all my toons to track what I feel is important.

 

If you find that only 5 of the 10 items are showing up each round, then you need to slow down a smidgen on your press/release speed...

Edited by Dregn Ryder
  • Like 1
Link to comment
Share on other sites

Not quite sure why this is posted in this thread... 🙂

 

On 1/28/2024 at 2:12 AM, wjrasmussen said:

Is there a bind for toggling noparticles?

 

No toggle, but you can use a rolling bind to 0 and 1 it.

 

/bind SHIFT+F12 "noparticles 1$$bindloadfilesilent yesparticles.txt"

 

noparticles.txt:

SHIFT+F12 "noparticles 1$$bindloadfilesilent yesparticles.txt"

 

yesparticles.txt

SHIFT+F12 "noparticles 0$$bindloadfilesilent nosparticles.txt"

 

Put both files in [GAME]\settings\live

 

(Sheesh, had to edit that four times. Not enough coffee.)

Edited by Shenanigunner
  • Like 1

UPDATED: v4.15 Technical Guide (post 27p7)... 154 pages of comprehensive and validated info on on the nuts and bolts!
ALSO:  GABS Bindfile  ·  WindowScaler  ·  Teleport Guide  ·  and City of Zeroes  all at  www.Shenanigunner.com

 
Link to comment
Share on other sites

I made a mistake on my list above, and didn't realize it earlier. 

 

Unlike other commands, this windows, in particular, does not allow the use of UNDERSCORES to bind names together.  I have gone back and edited my post above to ensure that it works correctly. 

Link to comment
Share on other sites

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...