Controls and gameplay tweaks and fixes (AZERTY flashlight vaulting etc)
Vaulting height adjustment
Download VaultAdj_P file, unzip it and copy VaultAdj_P.pak to your [Path-To-Stalker2-Install-Folder]\Stalker2\Content\Paks\~mods (if ~mods doesn’t exist – create it). The pak increases max vaulting height slightly to fix an issue with being unable to climb places which look like they’re supposed to be climbable (see the video). The pak changes ObjPrototypes.cfg, so it’s incompatible with anything that changes the same file.
Control fixes
You will need to edit a file named CustomizeControls.cfg
This file is located in
%LOCALAPPDATA%\Stalker2\Saved\
or (which is the same)
C:\Users\[YOUR_WINDOWS_USER_NAME]\AppData\Local\Stalker2\Saved\
(YOUR_WINDOWS_USER_NAME is your actual user name in your system)
Find it and open it with regular windows Notepad (Notepad++ is better, if you have it).
Quit the game, make the edits (see the instructions below), save and close the file, launch the game to test the changes.
AZERTY ladder movement fix
In CustomizeControls.cfg find a line that contains this text:
Ladder =
Delete it, so you’ve got an empty space in between Sleep = and NoInput = lines.
Open CustomizeControls.cfg.Ladder.part.txt from the mod’s package.
Copy the full content of CustomizeControls.cfg.Ladder.part.txt and paste it to that empty space in between Sleep = and NoInput = lines.
Key = Z and Key = S can be changed to anything else, if you’re no using AZERTY (nor QWERTY) and have issues moving up/down ladders.
Flashlight rebind
Note: Flashlight-rebind.zip is not really necessary to download as the instructions below are enough, but you can still do it to increase this mod’s visibility for the others and as a thank you to the author.
In CustomizeControls.cfg find these lines:
[29] : struct.begin
DefaultID = -1
bIsPlayerMappable = true
PlayerMappableOption = Flashlight
InputActionSID = IA_Flashlight
Key = None
OldKey = MiddleMouseButton
Triggers : struct.begin
[0] = EPlayerActionInputTrigger::Pressed
struct.end
struct.end
(note that PlayerMappableOption = Flashlight and InputActionSID = IA_Flashlight are important as there are other definitions that are similar, but not the same).
If the entry is missing for you, then paste the above text in between these lines:
PlayerMappings : struct.begin
None =
Exploration : struct.begin
here will be definitions of the keys you have customized before with in-game settings
paste the Flashlight entry at the end of those definitions
adjust the entry number [29] accordingly to the number of entries you have in your file:
for example, if the last one you have is [20], then Flashlight will be [21]
struct.end
Trade =
It’s quite simple and you can rebind it to anything else. For a ready to use example download the mod’s package, unpack it and open CustomizeControls.cfg.Flashlight.part.txt.
The important part here is to choose a proper trigger condition. Possible conditions are:
EPlayerActionInputTrigger::HoldWithActivationDelay
EPlayerActionInputTrigger::Pressed
EPlayerActionInputTrigger::Tap
EPlayerActionInputTrigger::Hold
EPlayerActionInputTrigger::Down
In the example file I used Key = F and EPlayerActionInputTrigger::HoldWithActivationDelay. I also have F bound to my main interact action. As a result, I can interact with anything by tapping F and also turn my flashlight on and off by holding F (because I used activation with delay).
How to edit your keybindings – general instructions
Note: How-to-edit-your-keybindings.zip is not really necessary to download as the instructions below are enough, but you can still do it to increase this mod’s visibility for the others and as a thank you to the author.
In CustomizeControls.cfg and search for a line you need – just read through the file or try to guess the naming and do a search. If it’s not in the file, but you saw it in the menu – change it in-game and it will appear.
Important part to understand is the context the binding belongs to, for example, here:
Exploration : struct.begin
is the starting line for Exploration context. Journal, Aiming, etc, have their separate contexts.
Another very important part is Triggers entry: it defines activation conditions. Possible conditions are:
EPlayerActionInputTrigger::HoldWithActivationDelay
EPlayerActionInputTrigger::Pressed
EPlayerActionInputTrigger::Tap
EPlayerActionInputTrigger::Hold
EPlayerActionInputTrigger::Down
It is important to choose a proper condition, so you can have several actions bound to one key.
Here is an example:
[20] : struct.begin
DefaultID = -1
bIsPlayerMappable = true
PlayerMappableOption = ChangeFireType
InputActionSID = IA_ChangeFireType
Key = Up
OldKey = B
Triggers : struct.begin
[0] = EPlayerActionInputTrigger::HoldWithActivationDelay
struct.end
struct.end
[29] : struct.begin
DefaultID = -1
bIsPlayerMappable = true
PlayerMappableOption = ToggleHeldItem
InputActionSID = IA_InspectArtifactExit
Key = Up
OldKey = H
Triggers : struct.begin
[0] = EPlayerActionInputTrigger::Tap
struct.end
struct.end
I’m using the same key = Up to define two different actions: if I tap Up (entry 29 above), I toggle my weapons, if I long press Up (entry 20 above), I switch the fire type.
It is possible, because I used EPlayerActionInputTrigger::Tap for ToggleHeldItem and EPlayerActionInputTrigger::HoldWithActivationDelay for ChangeFireType.
Hold and Pressed are not good here, as they’re not mutually exclusive. Best option is HoldWithActivationDelay.