AZERTY and flashlight (and other controls) customization and fixes
A collection of fixes for AZERTY keyboards and hardcoded keybindings like flashlight toggle.
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).
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.
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 context.
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.