Skip to content

t5mat/turnbinds

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

turnbinds

Provides external turnbinds (+left/+right) with customizable yawspeed for movement game modes in Source games.

This program aims to fill the gap created by Valve disabling access to the cl_yawspeed, cl_anglespeedkey convars in the most recent versions of Counter-Strike (CS:GO, CS2), forcing useless unchangable defaults.

These convars, which control the turning speed for the +left/+right commands, are essential for movement game modes like surf.

Usage

Download and run turnbinds.exe.

Settings are stored in <exe-name>.ini.

Basic controls

  • Esc/CTRL+C - quit
  • Up/down arrows - navigate
  • Return - rebind key/edit variable
  • Left/right arrows - cycle between values/switch on/off

Variables

  • cl_yawspeed - The desired turning speed
  • sensitivity - Should match your in-game sensitivity value
  • cl_anglespeedkey - The factor by which cl_yawspeed is scaled while holding down the +speed key
  • m_yaw - Should match your in-game m_yaw value

Each of these can have multiple values (space-delimited), which are cycleable while in-game by pressing the cycle key (less useful for m_yaw).

You can use this program in a number of different ways,

  • cycle between multiple cl_yawspeed values while using cl_anglespeedkey as a constant "slowdown" factor (the more common approach)
  • have a single sensible cl_yawspeed and cycle between multiple cl_anglespeedkey values
  • cycle both cl_yawspeed and cl_anglespeedkey

Optionally, you'd might want to cycle between sensitivity values (increasing both cl_yawspeed and sensitivity for sharper turns).

In this case, the program's sensitivity and the in-game sensitivity need to be kept in sync. This is because the program is external to the game and cannot control your in-game sensitivity - sensitivity values in the program are only used to calculate the correct turning speed.

You'd want to bind your cycle key in-game to cycle between your sensitivity values, and make sure the in-game sensitivity and the program's current sensitivity value are the same.

So, for this config:

cycle             : X1 Mouse Button
cl_yawspeed       : 120 [210] 300
sensitivity       : 1.0 [2.0] 3.0

Run the following in-game commands:

bind MOUSE4 "toggle sensitivity 1.0 2.0 3.0"
sensitivity 2.0

Developer settings

Navigate down until the selector is hidden and press Return to enter developer mode.

  • rate (default 1000) - maximum number of simulated mouse inputs per second, lower values decrease CPU usage in favor of turn smoothness
  • sleep (default 3500) - main loop sleep duration (measured in 100ns units, 3500 = 0.35ms), higher values decrease input polling rate and overall CPU usage

Anti-cheat software

The program does not patch or inject anything into the game.

Apart from simulating mouse input, it doesn't really do anything suspicious.

It would be fair to say it's as VAC bannable as an AutoHotkey script.

Standalone anti-cheat software (FACEIT AC, ...) can easily detect mouse movement simulation, and either prevent it or completely prevent the program from running.

Development

To build into ./build:

docker build . -o ./build --progress=plain