Sorry for the extremely long absence. I've just updated the addresses, and they should work with the latest version of the game at time of writing (March 2024).
Hola, muchas gracias por el mod. Quería preguntarte cómo lo harías o cómo se podría habilitar todo el teclado numérico con este mod. Mi idea es atacar y controlar la cámara con los números del teclado. Llevo años haciéndolo y me resulta imposible jugar con ratón y joystick. Pero no tengo ni idea de cómo hacerlo y no encuentro a nadie en YouTube que enseñe. ¿Podrías echarme una mano o recomendarme a algún YouTuber que haga este tipo de modificación? Muchas gracias.
I can't get it to switch properly. I've been trying for hours. I set it up like this:changeMeleeKey1=~*1 changeMeleeKey2=~*2 changeMeleeKey3=~*3 changeMeleeKey4=~*4 changeMeleeKey5= changeMeleeKey6= changeMeleeKey7=
but it doesn't work properly. It doesn't switch to the previous weapon. It also does not matter what weapon is selected in the inventory. For example, I have DSD-BARL-CERB-CAV in my inventory, but when I press 1 it selects CAV, 2- DSD, 3-BAR, 4-CERB, and only one direction from left to right, I can't select the previous weapon, I can't take BARL after CERB.
However, if “CAV- DSD-BAR-CERB” (no matter what order I have in my inventory, the mod sees it that way), then CAV(1)<-->BAR(3) and DSD(2)<-->CERB(4) change freely between them
I use this and steam input to simulate a weapon wheel. Have you ever considered putting something like this together for dmc 3 SE? Would be a game changer. Id commission it if possible.
my jaw f*#@ing dropped when i opened this to check on a vague HOPE that u updated it, thank you so damn much, playing TU7 without this felt unplayable, you made my day
Apologies for the inconvenience of this comment right after you updated the mod but I have come across a possible issue (or I've made a mistake); ''mapping unavailable keys," specifically [CapsLock], (and probably [Tab], [GraveAccent]). I've remapped the "unavailable" and made sure switchMelee/Right and switchRange/Left are assigned correctly.
Once again, apologies for the inconvenience and hope you are able to assist/fix at your convenience. Thanks for updating the mod, have a great day/night. *Edit: Somehow the way I formatted the text previously broke (for me) the Posts page, funny. settings.ini [keys] ;For a list of key options, refer to: ; https://www.autohotkey.com/docs/KeyList.htm ;Options that have "Key" in the name can have modifiers in front of them. For more info, refer to: ; https://www.autohotkey.com/docs/Hotkeys.htm#Symbols ;If unsure, only asterisk and tilde will likely be needed: ;Example: ;changeMeleeKey5=~*3 ;In this case, the action would be assigned to the "3" key ;The asterisk (*) causes the key to activate even if other modifier keys are pressed - eg. it will still work if control, alt or shift are held down. ;The tilde (~) stops the key's original function from being suppressed - eg. if "3" is set to do something through the game's options, that will happen along with the hotkey's action. ;Omit these modifiers to reverse these behaviours
;----------
;This section reassigns normally unavailable keys to other buttons so that they can be bound to actions within the game ;Do NOT use modifiers for this section, just use the target key's name ;This feature does not write to memory and should also work with Nero and V ;Leave options blank to keep disabled remapGraveAccent=u remapTab=y remapCapsLock=t remapLWin= remapWheelUp=l remapWheelDown=j
;----------
;Macro to hold down the Devil Trigger button ;This feature does not write to memory ;Leave blank to disable DTAutoHoldKey=*b ;The button assigned to Devil Trigger within the game DTButton=r
;----------
;Hotkeys to change Dante's weapons on key press ;Number corresponds to the position of the weapon in the loadout ;This feature writes to memory ;Leave blank to disable
;The buttons assigned to "Change Sword" and "Change Gun" for Dante within the game ;Try to avoid using keys that perform functions in menus like "E"
meleeWeaponButton=v rangedWeaponButton=x
;Hotkeys to change Vergil's weapon on key press ;1 corresponds to Yamato; 2 to Beowulf; 3 to Mirage Edge ;This feature writes to memory ;Leave blank to disable
;The buttons assigned to "Change Weapon (Left)" and "Change Weapon (Right)" for Vergil within the game ;Try to avoid using keys that perform functions in menus like "E"
;Change weapon loadouts on keypress ;Note that weapon sets tend to only update when a stage is loaded - this feature is mostly for enabling Cavaliere R in Bloody Palace or to switch loadouts in the Void without exiting ;To use Cavaliere R in Bloody Palace: ;1 - Set the desired loadout including Cavaliere R to any of the four melee loadout slots within the game ;2 - Assign a key to the corresponding option below ;3 - Equip any other legal loadout - ie. one without Cavaliere R ;4 - Start BP and press the assigned key any time after the prompt to remove illegal weapons would normally appear. ;5 - Run things over ;This feature writes to memory ;Leave blank to disable changeMeleeLoadoutKey1= changeMeleeLoadoutKey2= changeMeleeLoadoutKey3= changeMeleeLoadoutKey4= changeRangedLoadoutKey1= changeRangedLoadoutKey2= changeRangedLoadoutKey3= changeRangedLoadoutKey4= [other] ;These options will probably not need to be changed unless the script isn't behaving the way you want it to ;---------- ;Enable the older weapon switching mode that doesn't use key presses ;This causes the weapon indicators not to update properly but should keep hotkeys from triggering actions in menus or during SDT ;It should also be marginally faster but the difference is extremely minimal fastSwitch= ;---------- ;Force the number of equipped weapons assumed by the script ;In cases where the number of assigned weapon-switching hotkeys is different to the number of equipped weapons in the current loadout, switching to the first slot may select an incorrect weapon; this can be fixed by manually setting the number of weapons in the loadout here manualMeleeWeaponCount= manualRangedWeaponCount=
If I'm understanding what you're trying to do correctly, you should not be remapping capslock using remapCapsLock. Instead, you should just attach Capslock to the the slot for Ebony and Ivory and Yamato like this:
changeRangedKey1=*Capslockand changeMeleeVergilKey1=*Capslock As an aside, the tilde prefix (~) prevents the key's native function from being suppressed, so if you do want to stop capslock from toggling every time you trigger the hotkey, you can leave it out as I did above.
Thanks for making time to reply, I'll make sure to heed your words and if all (with me) goes well, I won't be replying again. I appreciate the explanation on the tilde prefix. Once again, thanks for replying and making the mod; very convenient and appreciate the level of customization.
Great mod, love using the DT macro when playing Vergil. Today I wanted to mess with Dante and see if I could bind the weapons to hotkeys but as other comments say, no dice. Truly unfortunate but good mod nonetheless.
Outstanding mod, Sailing, but it seems to have stopped working in the game recently. The only functioning parts seem to be the remap to wheel up/down and so forth. Here's how I have it set up below. Please note that I do have the weapon switching set up to 'v' and 'b' in-game, and the correct amount of matching weapons and guns (6 and 4), but nothing happens still. Please let me know and thank you.
" [keys] ;For a list of key options, refer to: ; https://www.autohotkey.com/docs/KeyList.htm ;Options that have "Key" in the name can have modifiers in front of them. For more info, refer to: ; https://www.autohotkey.com/docs/Hotkeys.htm#Symbols ;If unsure, only asterisk and tilde will likely be needed: ;Example: ;changeMeleeKey5=~*3 ;In this case, the action would be assigned to the "3" key ;The asterisk (*) causes the key to activate even if other modifier keys are pressed - eg. it will still work if control, alt or shift are held down. ;The tilde (~) stops the key's original function from being suppressed - eg. if "3" is set to do something through the game's options, that will happen along with the hotkey's action. ;Omit these modifiers to reverse these behaviours ;---------- ;This section reassigns normally unavailable keys to other buttons so that they can be bound to actions within the game ;Do NOT use modifiers for this section, just use the target key's name ;This feature does not write to memory and should also work with Nero and V ;Leave options blank to keep disabled remapGraveAccent= remapTab= remapCapsLock= remapLWin= remapWheelUp=v remapWheelDown=b ;---------- ;Macro to hold down the Devil Trigger button ;This feature does not write to memory ;Leave blank to disable DTAutoHoldKey= ;The button assigned to Devil Trigger within the game DTButton= ;---------- ;Hotkeys to change Dante's weapons on key press ;Number corresponds to the position of the weapon in the loadout ;This feature writes to memory ;Leave blank to disable
;The buttons assigned to "Change Sword" and "Change Gun" for Dante within the game ;Try to avoid using keys that perform functions in menus like "E" meleeWeaponButton=v rangedWeaponButton=b ;Hotkeys to change Vergil's weapon on key press ;1 corresponds to Yamato; 2 to Beowulf; 3 to Mirage Edge ;This feature writes to memory ;Leave blank to disable changeMeleeVergilKey1= changeMeleeVergilKey2= changeMeleeVergilKey3= ;The buttons assigned to "Change Weapon (Left)" and "Change Weapon (Right)" for Vergil within the game ;Try to avoid using keys that perform functions in menus like "E" meleeWeaponVergilLeftButton= meleeWeaponVergilRightButton= ;---------- ;Change weapon loadouts on keypress ;Note that weapon sets tend to only update when a stage is loaded - this feature is mostly for enabling Cavaliere R in Bloody Palace or to switch loadouts in the Void without exiting ;To use Cavaliere R in Bloody Palace: ;1 - Set the desired loadout including Cavaliere R to any of the four melee loadout slots within the game ;2 - Assign a key to the corresponding option below ;3 - Equip any other legal loadout - ie. one without Cavaliere R ;4 - Start BP and press the assigned key any time after the prompt to remove illegal weapons would normally appear. ;5 - Run things over ;This feature writes to memory ;Leave blank to disable changeMeleeLoadoutKey1=n changeMeleeLoadoutKey2= changeMeleeLoadoutKey3= changeMeleeLoadoutKey4= changeRangedLoadoutKey1= changeRangedLoadoutKey2= changeRangedLoadoutKey3= changeRangedLoadoutKey4= [other] ;These options will probably not need to be changed unless the script isn't behaving the way you want it to ;---------- ;Enable the older weapon switching mode that doesn't use key presses ;This causes the weapon indicators not to update properly but should keep hotkeys from triggering actions in menus or during SDT ;It should also be marginally faster but the difference is extremely minimal fastSwitch= ;---------- ;Force the number of equipped weapons assumed by the script ;In cases where the number of assigned weapon-switching hotkeys is different to the number of equipped weapons in the current loadout, switching to the first slot may select an incorrect weapon; this can be fixed by manually setting the number of weapons in the loadout here manualMeleeWeaponCount= manualRangedWeaponCount=
seems the same for me, i think an update broke it or something. i haven't played the game in months, reinstalled a few days ago and kept the same settings for this app. it worked before i uninstalled, now it does not, despite the settings remaining the same. mod is pretty much essential for my fun in this game personally so an update or a fix would be great for everyone
Appreciate your work Mizutamari. It made me enjoy playing and comobing with Dante. I have one issue is I can't perform loadout switch. I want to use cavaliere R in BP. So I followed the instructions and made loadout 1 legit, loadout 2 with Cavaliere R. Entered BP with loadout 1. Pressed assigned button for loadout 2 which is '0' but nothing happened
My code : [keys] ;For a list of key options, refer to: ; https://www.autohotkey.com/docs/KeyList.htm
;Options that have "Key" in the name can have modifiers in front of them. For more info, refer to: ; https://www.autohotkey.com/docs/Hotkeys.htm#Symbols
;If unsure, only asterisk and tilde will likely be needed: ;Example: ;changeMeleeKey5=~*3 ;In this case, the action would be assigned to the "3" key ;The asterisk (*) causes the key to activate even if other modifier keys are pressed - eg. it will still work if control, alt or shift are held down. ;The tilde (~) stops the key's original function from being suppressed - eg. if "3" is set to do something through the game's options, that will happen along with the hotkey's action. ;Omit these modifiers to reverse these behaviours
;----------
;This section reassigns normally unavailable keys to other buttons so that they can be bound to actions within the game ;Do NOT use modifiers for this section, just use the target key's name ;This feature does not write to memory and should also work with Nero and V ;Leave options blank to keep disabled
;Macro to hold down the Devil Trigger button ;This feature does not write to memory ;Leave blank to disable
DTAutoHoldKey=
;The button assigned to Devil Trigger within the game
DTButton=
;----------
;Hotkeys to change weapon on key press ;Number corresponds to the position of the weapon in the loadout ;This feature writes to memory ;Leave blank to disable
;The buttons assigned to "Change Sword" and "Change Gun" within the game ;Try to avoid using keys that perform functions in menus like "E"
meleeWeaponButton=i rangedWeaponButton=k
;----------
;Change weapon loadouts on keypress ;Note that weapon sets tend to only update when a stage is loaded - this feature is mostly for enabling Cavaliere R in Bloody Palace or to switch loadouts in the Void without exiting ;To use Cavaliere R in Bloody Palace: ;1 - Set the desired loadout including Cavaliere R to any of the four melee loadout slots within the game ;2 - Assign a key to the corresponding option below ;3 - Equip any other legal loadout - ie. one without Cavaliere R ;4 - Start BP and press the assigned key any time after the prompt to remove illegal weapons would normally appear. ;5 - Run things over ;This feature writes to memory ;Leave blank to disable
[other] ;These options will probably not need to be changed unless the script isn't behaving the way you want it to
;----------
;Enable the older weapon switching mode that doesn't use key presses ;This causes the weapon indicators not to update properly but should keep hotkeys from triggering actions in menus or during SDT ;It should also be marginally faster but the difference is extremely minimal
fastSwitch=
;----------
;Force the number of equipped weapons assumed by the script ;In cases where the number of assigned weapon-switching hotkeys is different to the number of equipped weapons in the current loadout, switching to the first slot may select an incorrect weapon; this can be fixed by manually setting the number of weapons in the loadout here
I tried copying your settings over and it seems to be working for me.
If the other functions are fine, I'd test to see if there's a problem specific to the loadout switching. With the settings file you're using, you can do this by going into the "Customize" menu with Dante and opening the "Equipment" tab. Then hit "U" or "0". Then, switch to one of the other tabs ("Skills" or "Items") and back again to "Equipment" to see if the equipped loadout changes.
If that's working, it could be possible that you may not have given the loadout a chance to update. Basically, if you want to use Cavaliere R for Bloody Palace, then ideally, you'd trigger the hotkey while the first stage is loading (after choosing "Start"). You can still trigger it after you've already arrived on the first floor but in that case, it won't take effect until the second floor*.
Let me know if this doesn't help and I'll be happy to dig further. --- *Everything below is a much lengthier, drier explanation to help visualise how the script behaves - going through it is not necessary, but I've included it here as purely optional reading for anyone who's curious since I know it isn't completely intuitive and it has caused some confusion in the past.
At its core, the function rewrites the byte in the game's memory that corresponds to the equipped loadout. This happens more or less instantaneously, but usually, the game only seems to check this value when loading a stage. So in the above scenario, if you trigger a loadout change on Floor 1, the game will only check what the loadout should be when loading Floor 2.
Triggering the function during the pre-mission screen technically works, but since the game seems to check that value against the loadout selection on the bottom right of the screen (stored at a separate address), it will revert to whatever that is immediately after a menu option is chosen.
For example, if I use a hotkey to switch to Loadout 2 while the indicator on the bottom right shows Loadout 1, the value *will* change appropriately to Loadout 2 but without being reflected on the screen. If I choose "Start", the game will then determine that Loadout 1 should be used, and replace the value that the script wrote to earlier, and then load the stage (with Loadout 1).
To try and keep the examples from here on as simple as I can, we'll suppose that Loadout 1 is empty and Loadout 2 contains Cavaliere R. Since the goal is to start Bloody Palace with the normally "illegal" Loadout 2, we need to bypass the above process, which can be thought of as a validity check. Naturally, we can simply trigger the hotkey after it has taken place. However, we also need to wait for the check that follows immediately after it which prevents the player from continuing if the loadout contains Cavaliere R (if "Start" or "Warm Up" are chosen).
To illustrate the differences in timing, the following is the sequence of events that occurs if triggering the hotkey to equip Loadout 2 before the first check is completed - this is the same scenario described two paragraphs up: - Loadout 1 is selected through normal means - HOTKEY: causes Loadout 2 to be equipped - this is not reflected on the bottom right of the screen, but the value is rewritten - player chooses to "Start" Bloody Palace - CHECK 1: the game sees that Loadout 1 is selected on the bottom right of screen and rewrites Loadout 1 into the actual equipped loadout address - CHECK 2: because the game has decided that Loadout 1 is to be used, the Cavaliere R check is passed - BP starts with Loadout 1 equipped
Triggering the hotkey between the two checks will equip Loadout 2 but prevent the player from starting on account of failing the Cavaliere R check - this can happen if mashing the hotkey in an attempt to bypass the first check with certainty: - Loadout 1 is selected through normal means - player chooses to "Start" Bloody Palace - CHECK 1: the game sees that Loadout 1 is selected on the bottom right of screen (and reverts the equipped loadout address' value to that if necessary) - HOTKEY: pressed to switch to Loadout 2 - this is not reflected on the bottom right of the screen, but the value is rewritten - CHECK 2: since Loadout 2 is now active, the Cavaliere R check is failed, the warning pops up and the player cannot start BP
This is why the ideal time to trigger the function is during the loading screen, which happens straight after the Cavaliere R check, but before the game completely decides which loadout Dante should appear with. - Loadout 1 is selected through normal means - player chooses to "Start" Bloody Palace - CHECK 1: the game sees that Loadout 1 is selected on the bottom right of screen (and reverts the equipped loadout address' value to that if necessary) - CHECK 2: Cavaliere R check is passed - HOTKEY: on loading screen, hotkey causes Loadout 2 to be equipped - Dante shows up on Floor 1 with red bike
Beautiful !!!! It worked. Thank you so much Mizutamari for taking the time to reply. Thanks to your explanation I understand now how it works
So, just for those who might be doing the same mistake as I did. I thought I could switch loadout on the fly and instantaneously when I'm in BP floors. Which is why it wasn't working. But since it writes to memory and takes time to update. You have to do it during the load times. Whether at the start after selecting "Start" or the load times between floors as Mizutamari explained above.
I copied his texteven in the menu of equipment and items I press the keys set in changeMeleeKey nothing happens, the antivirus is disabled the script is in miniature in the taskbar, but my keys do not activate anything, I've been trying here for hours, but my English and my knowledge programming are terrible.
79 comments
I've been trying for hours.
I set it up like this:
changeMeleeKey1=~*1
changeMeleeKey2=~*2
changeMeleeKey3=~*3
changeMeleeKey4=~*4
changeMeleeKey5=
changeMeleeKey6=
changeMeleeKey7=
but it doesn't work properly.
It doesn't switch to the previous weapon. It also does not matter what weapon is selected in the inventory.
For example, I have DSD-BARL-CERB-CAV in my inventory, but when I press 1 it selects CAV, 2- DSD, 3-BAR, 4-CERB, and only one direction from left to right, I can't select the previous weapon, I can't take BARL after CERB.
However, if “CAV- DSD-BAR-CERB” (no matter what order I have in my inventory, the mod sees it that way), then CAV(1)<-->BAR(3) and DSD(2)<-->CERB(4) change freely between them
I just want it to be :
Dmd = 1
Balrog = 2
Cerberus = 3
Cavaliere = 4
ebony/ivory = 5
shotgun = 6
calina2 = 7
faust = 8
Tell me what I'm doing wrong, please
my settings
[keys]
;----------
remapGraveAccent=
remapTab=
remapCapsLock=
remapLWin=
remapWheelUp=
remapWheelDown=
;----------
DTAutoHoldKey=
;----------
changeMeleeKey1=~*1
changeMeleeKey2=~*2
changeMeleeKey3=~*3
changeMeleeKey4=~*4
changeMeleeKey5=
changeMeleeKey6=
changeMeleeKey7=
changeRangedKey1=~*5
changeRangedKey2=~*6
changeRangedKey3=~*7
changeRangedKey4=~*8
changeRangedKey5=
changeRangedKey6=
meleeWeaponButton=9
rangedWeaponButton=0
changeMeleeVergilKey1=
changeMeleeVergilKey2=
changeMeleeVergilKey3=
meleeWeaponVergilLeftButton=
meleeWeaponVergilRightButton=
;----------
changeMeleeLoadoutKey1=
changeMeleeLoadoutKey2=
changeMeleeLoadoutKey3=
changeMeleeLoadoutKey4=
changeRangedLoadoutKey1=
changeRangedLoadoutKey2=
changeRangedLoadoutKey3=
changeRangedLoadoutKey4=
[other]
;----------
fastSwitch=
;----------
manualMeleeWeaponCount=4
manualRangedWeaponCount=4
It would be great if @mizutamari would make a similar mod for the dmc 3 se/hdc and dmc 4 se
Dante: remapCapsLock=t ➤ changeRangedKey1=~*t ➤ [T] -> E&I
Vergil: remapCapsLock=t ➤ changeMeleeVergilKey1=~*t ➤ [T] -> Yamato
Once again, apologies for the inconvenience and hope you are able to assist/fix at your convenience. Thanks for updating the mod, have a great day/night.
*Edit: Somehow the way I formatted the text previously broke (for me) the Posts page, funny.
settings.ini
[keys]
;For a list of key options, refer to:
; https://www.autohotkey.com/docs/KeyList.htm
;Options that have "Key" in the name can have modifiers in front of them. For more info, refer to:
; https://www.autohotkey.com/docs/Hotkeys.htm#Symbols
;If unsure, only asterisk and tilde will likely be needed:
;Example:
;changeMeleeKey5=~*3
;In this case, the action would be assigned to the "3" key
;The asterisk (*) causes the key to activate even if other modifier keys are pressed - eg. it will still work if control, alt or shift are held down.
;The tilde (~) stops the key's original function from being suppressed - eg. if "3" is set to do something through the game's options, that will happen along with the hotkey's action.
;Omit these modifiers to reverse these behaviours
;----------
;This section reassigns normally unavailable keys to other buttons so that they can be bound to actions within the game
;Do NOT use modifiers for this section, just use the target key's name
;This feature does not write to memory and should also work with Nero and V
;Leave options blank to keep disabled
remapGraveAccent=u
remapTab=y
remapCapsLock=t
remapLWin=
remapWheelUp=l
remapWheelDown=j
;----------
;Macro to hold down the Devil Trigger button
;This feature does not write to memory
;Leave blank to disable
DTAutoHoldKey=*b
;The button assigned to Devil Trigger within the game
DTButton=r
;----------
;Hotkeys to change Dante's weapons on key press
;Number corresponds to the position of the weapon in the loadout
;This feature writes to memory
;Leave blank to disable
changeMeleeKey1=~*1
changeMeleeKey2=~*2
changeMeleeKey3=~*3
changeMeleeKey4=~*4
changeMeleeKey5=
changeMeleeKey6=
changeMeleeKey7=
changeRangedKey1=~*t
changeRangedKey2=~*q
changeRangedKey3=~*e
changeRangedKey4=~*f
changeRangedKey5=
changeRangedKey6=
;The buttons assigned to "Change Sword" and "Change Gun" for Dante within the game
;Try to avoid using keys that perform functions in menus like "E"
meleeWeaponButton=v
rangedWeaponButton=x
;Hotkeys to change Vergil's weapon on key press
;1 corresponds to Yamato; 2 to Beowulf; 3 to Mirage Edge
;This feature writes to memory
;Leave blank to disable
changeMeleeVergilKey1=~*t
changeMeleeVergilKey2=~*y
changeMeleeVergilKey3=~*f
;The buttons assigned to "Change Weapon (Left)" and "Change Weapon (Right)" for Vergil within the game
;Try to avoid using keys that perform functions in menus like "E"
meleeWeaponVergilLeftButton=x
meleeWeaponVergilRightButton=v
;----------
;Change weapon loadouts on keypress
;Note that weapon sets tend to only update when a stage is loaded - this feature is mostly for enabling Cavaliere R in Bloody Palace or to switch loadouts in the Void without exiting
;To use Cavaliere R in Bloody Palace:
;1 - Set the desired loadout including Cavaliere R to any of the four melee loadout slots within the game
;2 - Assign a key to the corresponding option below
;3 - Equip any other legal loadout - ie. one without Cavaliere R
;4 - Start BP and press the assigned key any time after the prompt to remove illegal weapons would normally appear.
;5 - Run things over
;This feature writes to memory
;Leave blank to disable
changeMeleeLoadoutKey1=
changeMeleeLoadoutKey2=
changeMeleeLoadoutKey3=
changeMeleeLoadoutKey4=
changeRangedLoadoutKey1=
changeRangedLoadoutKey2=
changeRangedLoadoutKey3=
changeRangedLoadoutKey4=
[other]
;These options will probably not need to be changed unless the script isn't behaving the way you want it to
;----------
;Enable the older weapon switching mode that doesn't use key presses
;This causes the weapon indicators not to update properly but should keep hotkeys from triggering actions in menus or during SDT
;It should also be marginally faster but the difference is extremely minimal
fastSwitch=
;----------
;Force the number of equipped weapons assumed by the script
;In cases where the number of assigned weapon-switching hotkeys is different to the number of equipped weapons in the current loadout, switching to the first slot may select an incorrect weapon; this can be fixed by manually setting the number of weapons in the loadout here
manualMeleeWeaponCount=
manualRangedWeaponCount=
If I'm understanding what you're trying to do correctly, you should not be remapping capslock using remapCapsLock. Instead, you should just attach Capslock to the the slot for Ebony and Ivory and Yamato like this:
changeRangedKey1=*Capslock
andchangeMeleeVergilKey1=*Capslock
As an aside, the tilde prefix (~) prevents the key's native function from being suppressed, so if you do want to stop capslock from toggling every time you trigger the hotkey, you can leave it out as I did above.
"
[keys]
;For a list of key options, refer to:
; https://www.autohotkey.com/docs/KeyList.htm
;Options that have "Key" in the name can have modifiers in front of them. For more info, refer to:
; https://www.autohotkey.com/docs/Hotkeys.htm#Symbols
;If unsure, only asterisk and tilde will likely be needed:
;Example:
;changeMeleeKey5=~*3
;In this case, the action would be assigned to the "3" key
;The asterisk (*) causes the key to activate even if other modifier keys are pressed - eg. it will still work if control, alt or shift are held down.
;The tilde (~) stops the key's original function from being suppressed - eg. if "3" is set to do something through the game's options, that will happen along with the hotkey's action.
;Omit these modifiers to reverse these behaviours
;----------
;This section reassigns normally unavailable keys to other buttons so that they can be bound to actions within the game
;Do NOT use modifiers for this section, just use the target key's name
;This feature does not write to memory and should also work with Nero and V
;Leave options blank to keep disabled
remapGraveAccent=
remapTab=
remapCapsLock=
remapLWin=
remapWheelUp=v
remapWheelDown=b
;----------
;Macro to hold down the Devil Trigger button
;This feature does not write to memory
;Leave blank to disable
DTAutoHoldKey=
;The button assigned to Devil Trigger within the game
DTButton=
;----------
;Hotkeys to change Dante's weapons on key press
;Number corresponds to the position of the weapon in the loadout
;This feature writes to memory
;Leave blank to disable
changeMeleeKey1=*1
changeMeleeKey2=*2
changeMeleeKey3=*3
changeMeleeKey4=*4
changeMeleeKey5=*5
changeMeleeKey6=*6
changeMeleeKey7=
changeRangedKey1=*7
changeRangedKey2=*8
changeRangedKey3=*9
changeRangedKey4=*0
changeRangedKey5=
changeRangedKey6=
;The buttons assigned to "Change Sword" and "Change Gun" for Dante within the game
;Try to avoid using keys that perform functions in menus like "E"
meleeWeaponButton=v
rangedWeaponButton=b
;Hotkeys to change Vergil's weapon on key press
;1 corresponds to Yamato; 2 to Beowulf; 3 to Mirage Edge
;This feature writes to memory
;Leave blank to disable
changeMeleeVergilKey1=
changeMeleeVergilKey2=
changeMeleeVergilKey3=
;The buttons assigned to "Change Weapon (Left)" and "Change Weapon (Right)" for Vergil within the game
;Try to avoid using keys that perform functions in menus like "E"
meleeWeaponVergilLeftButton=
meleeWeaponVergilRightButton=
;----------
;Change weapon loadouts on keypress
;Note that weapon sets tend to only update when a stage is loaded - this feature is mostly for enabling Cavaliere R in Bloody Palace or to switch loadouts in the Void without exiting
;To use Cavaliere R in Bloody Palace:
;1 - Set the desired loadout including Cavaliere R to any of the four melee loadout slots within the game
;2 - Assign a key to the corresponding option below
;3 - Equip any other legal loadout - ie. one without Cavaliere R
;4 - Start BP and press the assigned key any time after the prompt to remove illegal weapons would normally appear.
;5 - Run things over
;This feature writes to memory
;Leave blank to disable
changeMeleeLoadoutKey1=n
changeMeleeLoadoutKey2=
changeMeleeLoadoutKey3=
changeMeleeLoadoutKey4=
changeRangedLoadoutKey1=
changeRangedLoadoutKey2=
changeRangedLoadoutKey3=
changeRangedLoadoutKey4=
[other]
;These options will probably not need to be changed unless the script isn't behaving the way you want it to
;----------
;Enable the older weapon switching mode that doesn't use key presses
;This causes the weapon indicators not to update properly but should keep hotkeys from triggering actions in menus or during SDT
;It should also be marginally faster but the difference is extremely minimal
fastSwitch=
;----------
;Force the number of equipped weapons assumed by the script
;In cases where the number of assigned weapon-switching hotkeys is different to the number of equipped weapons in the current loadout, switching to the first slot may select an incorrect weapon; this can be fixed by manually setting the number of weapons in the loadout here
manualMeleeWeaponCount=
manualRangedWeaponCount=
My code :
[keys]
;For a list of key options, refer to:
; https://www.autohotkey.com/docs/KeyList.htm
;Options that have "Key" in the name can have modifiers in front of them. For more info, refer to:
; https://www.autohotkey.com/docs/Hotkeys.htm#Symbols
;If unsure, only asterisk and tilde will likely be needed:
;Example:
;changeMeleeKey5=~*3
;In this case, the action would be assigned to the "3" key
;The asterisk (*) causes the key to activate even if other modifier keys are pressed - eg. it will still work if control, alt or shift are held down.
;The tilde (~) stops the key's original function from being suppressed - eg. if "3" is set to do something through the game's options, that will happen along with the hotkey's action.
;Omit these modifiers to reverse these behaviours
;----------
;This section reassigns normally unavailable keys to other buttons so that they can be bound to actions within the game
;Do NOT use modifiers for this section, just use the target key's name
;This feature does not write to memory and should also work with Nero and V
;Leave options blank to keep disabled
remapGraveAccent=
remapTab=9
remapCapsLock=8
remapLWin=
remapWheelUp=
remapWheelDown=
;----------
;Macro to hold down the Devil Trigger button
;This feature does not write to memory
;Leave blank to disable
DTAutoHoldKey=
;The button assigned to Devil Trigger within the game
DTButton=
;----------
;Hotkeys to change weapon on key press
;Number corresponds to the position of the weapon in the loadout
;This feature writes to memory
;Leave blank to disable
changeMeleeKey1=~*1
changeMeleeKey2=~*2
changeMeleeKey3=~*3
changeMeleeKey4=~*4
changeMeleeKey5=~*7
changeMeleeKey6=
changeMeleeKey7=
changeRangedKey1=~*z
changeRangedKey2=~*x
changeRangedKey3=~*c
changeRangedKey4=~*v
changeRangedKey5=
changeRangedKey6=
;The buttons assigned to "Change Sword" and "Change Gun" within the game
;Try to avoid using keys that perform functions in menus like "E"
meleeWeaponButton=i
rangedWeaponButton=k
;----------
;Change weapon loadouts on keypress
;Note that weapon sets tend to only update when a stage is loaded - this feature is mostly for enabling Cavaliere R in Bloody Palace or to switch loadouts in the Void without exiting
;To use Cavaliere R in Bloody Palace:
;1 - Set the desired loadout including Cavaliere R to any of the four melee loadout slots within the game
;2 - Assign a key to the corresponding option below
;3 - Equip any other legal loadout - ie. one without Cavaliere R
;4 - Start BP and press the assigned key any time after the prompt to remove illegal weapons would normally appear.
;5 - Run things over
;This feature writes to memory
;Leave blank to disable
changeMeleeLoadoutKey1=~*u
changeMeleeLoadoutKey2=~*0
changeMeleeLoadoutKey3=
changeMeleeLoadoutKey4=
changeRangedLoadoutKey1=
changeRangedLoadoutKey2=
changeRangedLoadoutKey3=
changeRangedLoadoutKey4=
[other]
;These options will probably not need to be changed unless the script isn't behaving the way you want it to
;----------
;Enable the older weapon switching mode that doesn't use key presses
;This causes the weapon indicators not to update properly but should keep hotkeys from triggering actions in menus or during SDT
;It should also be marginally faster but the difference is extremely minimal
fastSwitch=
;----------
;Force the number of equipped weapons assumed by the script
;In cases where the number of assigned weapon-switching hotkeys is different to the number of equipped weapons in the current loadout, switching to the first slot may select an incorrect weapon; this can be fixed by manually setting the number of weapons in the loadout here
manualMeleeWeaponCount=5
manualRangedWeaponCount=4
If the other functions are fine, I'd test to see if there's a problem specific to the loadout switching. With the settings file you're using, you can do this by going into the "Customize" menu with Dante and opening the "Equipment" tab. Then hit "U" or "0". Then, switch to one of the other tabs ("Skills" or "Items") and back again to "Equipment" to see if the equipped loadout changes.
If that's working, it could be possible that you may not have given the loadout a chance to update. Basically, if you want to use Cavaliere R for Bloody Palace, then ideally, you'd trigger the hotkey while the first stage is loading (after choosing "Start"). You can still trigger it after you've already arrived on the first floor but in that case, it won't take effect until the second floor*.
Let me know if this doesn't help and I'll be happy to dig further.
---
*Everything below is a much lengthier, drier explanation to help visualise how the script behaves - going through it is not necessary, but I've included it here as purely optional reading for anyone who's curious since I know it isn't completely intuitive and it has caused some confusion in the past.
At its core, the function rewrites the byte in the game's memory that corresponds to the equipped loadout. This happens more or less instantaneously, but usually, the game only seems to check this value when loading a stage. So in the above scenario, if you trigger a loadout change on Floor 1, the game will only check what the loadout should be when loading Floor 2.
Triggering the function during the pre-mission screen technically works, but since the game seems to check that value against the loadout selection on the bottom right of the screen (stored at a separate address), it will revert to whatever that is immediately after a menu option is chosen.
For example, if I use a hotkey to switch to Loadout 2 while the indicator on the bottom right shows Loadout 1, the value *will* change appropriately to Loadout 2 but without being reflected on the screen. If I choose "Start", the game will then determine that Loadout 1 should be used, and replace the value that the script wrote to earlier, and then load the stage (with Loadout 1).
To try and keep the examples from here on as simple as I can, we'll suppose that Loadout 1 is empty and Loadout 2 contains Cavaliere R. Since the goal is to start Bloody Palace with the normally "illegal" Loadout 2, we need to bypass the above process, which can be thought of as a validity check. Naturally, we can simply trigger the hotkey after it has taken place. However, we also need to wait for the check that follows immediately after it which prevents the player from continuing if the loadout contains Cavaliere R (if "Start" or "Warm Up" are chosen).
To illustrate the differences in timing, the following is the sequence of events that occurs if triggering the hotkey to equip Loadout 2 before the first check is completed - this is the same scenario described two paragraphs up:
- Loadout 1 is selected through normal means
- HOTKEY: causes Loadout 2 to be equipped - this is not reflected on the bottom right of the screen, but the value is rewritten
- player chooses to "Start" Bloody Palace
- CHECK 1: the game sees that Loadout 1 is selected on the bottom right of screen and rewrites Loadout 1 into the actual equipped loadout address
- CHECK 2: because the game has decided that Loadout 1 is to be used, the Cavaliere R check is passed
- BP starts with Loadout 1 equipped
Triggering the hotkey between the two checks will equip Loadout 2 but prevent the player from starting on account of failing the Cavaliere R check - this can happen if mashing the hotkey in an attempt to bypass the first check with certainty:
- Loadout 1 is selected through normal means
- player chooses to "Start" Bloody Palace
- CHECK 1: the game sees that Loadout 1 is selected on the bottom right of screen (and reverts the equipped loadout address' value to that if necessary)
- HOTKEY: pressed to switch to Loadout 2 - this is not reflected on the bottom right of the screen, but the value is rewritten
- CHECK 2: since Loadout 2 is now active, the Cavaliere R check is failed, the warning pops up and the player cannot start BP
This is why the ideal time to trigger the function is during the loading screen, which happens straight after the Cavaliere R check, but before the game completely decides which loadout Dante should appear with.
- Loadout 1 is selected through normal means
- player chooses to "Start" Bloody Palace
- CHECK 1: the game sees that Loadout 1 is selected on the bottom right of screen (and reverts the equipped loadout address' value to that if necessary)
- CHECK 2: Cavaliere R check is passed
- HOTKEY: on loading screen, hotkey causes Loadout 2 to be equipped
- Dante shows up on Floor 1 with red bike
So, just for those who might be doing the same mistake as I did. I thought I could switch loadout on the fly and instantaneously when I'm in BP floors. Which is why it wasn't working. But since it writes to memory and takes time to update. You have to do it during the load times. Whether at the start after selecting "Start" or the load times between floors as Mizutamari explained above.
Have a good day