Skip to content

Turnbinds (+left/+right) with customizable yawspeed for CS:GO

License

Notifications You must be signed in to change notification settings

t5mat/turnbinds

Repository files navigation

turnbinds

(see conturn for in-game turnbinds)

Provides turnbinds (+left/+right) with customizable yawspeed for CS:GO surf.

The convars cl_yawspeed, cl_anglespeedkey, which control the turning speed for the +left/+right commands, exist in previous games in the series (1.6, CS:S), but are inaccessible in CS:GO, forcing useless unchangable defaults (cl_yawspeed 210, cl_anglespeedkey 0.67). This program aims to fill this gap, as these 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.

  • raw input (default off) - key detection method should probably be kept off, see issue #2
  • 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.

Anti-cheat software (FACEIT AC, ...) can easily detect the simulation of mouse movement though, and either prevent it or prevent the program from running completely. This is expected, just don't actively try to use this program in unintended scenarios.

Building

Run ./build on a Linux machine with Docker installed.