About this mod
adjust the movement speed for walking, jogging, sprinting, and crouching. also (optionally) prevents the game from disabling the walk state.
- Requirements
- Permissions and credits
-
Translations
- Russian
- Polish
- Changelogs
Features
- Adjust the movement speed for: crouching, crouch sprinting, walking, jogging, and sprinting.
- Provides a bind menu for keyboard/controller players to create a hotkey that will toggle the walk state.
- Has an optional persist system that will prevent the game from disabling the walk state.
- Has an option to automatically disable/enable the walk state when entering/leaving combat (which overrides the persist system).
- Gives the walk state a unique record to reference movement data from, letting both crouching and walking have their own unique record.
- Prevents the game from lowering the player's movement speed when entering scene triggers, preserving their movement speed (which will prevent the bug/oversight where players can move VERY slowly when entering a trigger).
- Allows the player to crouch sprint (assuming you have the perk) regardless of whether if you entered crouch from the default or walking state.
About
This mod has greatly evolved since it's first release and expanded past the mod's name. Originally, the mod was a few lines that enabled the walk state when loading in a game, now it's much more than that with help from the community.
The main goal for this mod is to let you adjust the movement speed for the various states the player (as in both Johnny and V) can be when on the ground: jogging (which I will refer to as the default state), walking (which I will refer to as the toggled state), crouching, and sprinting, and crouch sprinting. When this mod is first installed, by default, the player's movement speed for the default state is decreased and the movement speed for the toggled state is increased, effectively making the player walk by default.
In addition, the mod has an optional persist system that implements and extends the functionality from the No Walk Auto Disable mod. If this system is enabled, the mod will prevent the game from disabling the toggled state (this mod implements its own logic for persisting the toggled state after sprinting, while similar logic from NWAD is implemented to cover everything else).
The mod uses Native Settings to provide a menu so you can mess the movement values (don't forget to reload a save after changing them) and to enable/disable the persist system. The menu also provides the option for keyboard and controller players to create a hotkey to enable/disable the toggled state (big thanks to Native Settings for the template). I recommend keyboard users to create a bind through this mod as well, as the vanilla bind may be blocked in some cases (one being Johnny's memories from what I remember).
Install
To install this mod, unpack the main file and move the `bin` and `r6` folder to Cyberpunk's root folder.
I recommend to install the mod manually, as Vortex is generally known (from what I've seen) to sometimes cause issues. Disclaimer as I have not tested installing this mod through Vortex.
Uninstall
To uninstall this mod, delete these folders:
- Cyberpunk 2077\bin\x64\plugins\cyber_engine_tweaks\mods\WalkByDefault2.0
- Cyberpunk 2077\r6\scripts\WalkByDefault2.0
Conflicting Mods
The only mod known to conflict with this mod is Advanced Control as both mods modify the walk system in the game. If you are using this mod, download the optional file `Advanced Control Patch` to patch Advanced Control and make that mod not touch anything related to walking, allowing this mod to work normally with the other features from Advanced Control.
Recommended Mods
I recommend installing these mods for a better/more immersive walking experience.
Immersive First Person - Improves how much of your body you can see in first person and, more importantly, this mod also implements a free look system. When the assigned key is pressed (I recommend left alt), you can look in any direction without moving in that direction, similar to the free look systems in the 3D Fallout games.
Smooth Movement - Adds inertia to grounded movements which makes strafing much more smoother.
Translations
Making a translation for the mod is rather simple as the mod imports all text from a localization file from the "localizations" folder. This folder contains a "template.lua" file which is a template for how the structure of the object should look like, all you need to do is to write your translations in the respective text (there's a comment in this file that goes more in-depth of how to create your translation).
In order for the mod to get this specific localization file, you must rename this file to your language's code (for example, English is named as `en-us.lua`). The mod has an API to determine your language's code, first make sure your game's language is in the desired language you want to translate and run this in CET's console:
print(GetMod("WalkByDefault2.0").GetLanguageCode())
This will print the language's code to the console, you must rename the template file to the printed text.
How the Mod Works
Movement Speed
In vanilla, when the player has the toggled (walking) state enabled, the game uses the same movement data for crouching. Any changes to the speed for this state would also be reflected for crouching, as an example, if you lower the speed for walking, the movement speed for crouching would also be lowered.
This mod makes it so the game looks at a different TweakDB record when referencing movement data for walking, the record being "PlayerLocomotion.player_locomotion_data_Stand_cpo". I don't think that the game actually uses this record at all, I couldn't find a reference to it within the de-compiled scripts and, from what I understand and heard from the modding discord, this is leftover data from when the developers were thinking about an online mode (cpo = Cyberpunk Online?).
With this change, the game now has a unique record to represent movement data for the following states:
- default (jogging)
- toggled (walking)
- crouching
- crouch sprinting
- sprinting
Persist System
The goal of the persist system is to prevent the game from disabling the toggled state.
In vanilla, when the player does a specific action or when specific events occur (sprinting, entering combat, scenes, etc.), the game will disable the toggled state and force the player back to the default state. This system implements similar functionality to the No Walk Auto Disable mod and extends it, preventing (hopefully) everything from disabling the toggled state. NWAD prevents every action and event from disabling the toggled state except for sprinting, this mod extends NWAD by implementing its own logic for persisting the toggled state after the player sprints.
When the player sprints, the game force disables the toggled state regardless if it was enabled or not before the player starting
sprinting. This is necessary for the player to sprint, but, in vanilla, nothing is done to ensure that it's re-enabled once sprinting stops (if it was enabled). This mod observes this method and sets an internal flag that represents whether if the player did sprint from the toggled state, once the player stands (after sprinting, jumping, crouching, sliding, etc.), the mod will then re-enable the state based off of the flag.
Scene Movement
If a scene wants the player to have slow movement, the game will then manually decrease the player's movement speed when entering the scene's trigger. This is different from setting the speed in TweakDB, as this is a temporary change that is applied on-demand.
The issue with this is that the game does not account for the player's current movement speed when decreasing it, the game doesn't decrease the player's speed to a specific value, it instead decreases it by a specific amount. This amount assumes that the player is jogging, meaning if you are jogging, you'll be slowed, but if you have slow movement speed to begin with, you'll walk VERY slow (video for reference, thank you to Taurus85). This issue is present in vanilla as well.
To fix this, the mod simply makes the amount applied to the player's movement speed as 0.0, which preserves their current movement speed.
Credits & Thanks
Thank you to the teams at CET, Redscript, NativeSettings, and the community in general for insanely well-documented guides, resources, and examples to learn and expand on.
Thank you to rmk1234 as they were my first introduction to modding this game in general. Looking at how their mod was structured, specifically Simple XP Multiplier, was a great entry point to showing how using CET/Lua and modding in general works.
Thank you to Corvah for the pic inspiration.
And of course, thank you for the kind words and for trying the mod.