Skip to main content
Jumpthrow binds allow you to execute perfect jumpthrows just like in CS:GO, using a ticker-based system that works on official servers.

How Jumpthrow Works

CSAFAP uses a ticker mechanic (via -testscript launch option) to execute frame-perfect jumpthrows:
This creates a sequence that:
  1. Releases left-click (M1)
  2. Releases right-click (M2)
  3. Executes jump
  4. Resets all actions

Requirements

Jumpthrow binds REQUIRE the ticker launch option:
Without this, jumpthrows will not work.
You must also use special mouse binds:
These are automatically configured when you exec csafap/main.cfg.

Jumpthrow Types

Standard Jumpthrow (JT)

Executes jump + release simultaneously:
  • Hold left-click (or right-click) to prepare grenade
  • Press jumpthrow bind
  • Grenade releases at peak of jump

W-Jumpthrow (WJT)

Adds forward movement for extra distance:
  • Hold left-click (or right-click) to prepare grenade
  • Press W-jumpthrow bind
  • Character moves forward + jumps + releases grenade
Bind W-jumpthrow to a separate key from standard jumpthrow for quick access to both.

Setting Up Jumpthrow Binds

1

Add Launch Option

Add to Steam launch options:
2

Configure Main Config

In csafap/main.cfg, set your jumpthrow binds:
3

Load Ticker System

The ticker is automatically loaded when you exec csafap/main.cfg with the launch option active
4

Test In-Game

  • Equip a grenade
  • Hold left-click or right-click
  • Press your jumpthrow bind
  • Grenade should release at jump peak

Radio Wheel Method (Alternative)

You can also use jumpthrows via radio wheel without ticker:
This method:
  • Works without ticker launch option
  • Less convenient (requires radio wheel)
  • Good for occasional jumpthrows

Ticker System Explanation

The ticker uses .vtest file execution to create frame-by-frame alias updates:
The .vtest file contains:
And loader.cfg calls all ticker aliases every frame, enabling frame-perfect inputs.

Mouse Bind Integration

The ticker mouse binds allow aliases to hook into click events, enabling:
  • Jumpthrow release on bind press
  • Rapid fire pistol mechanics
  • Follow-recoil crosshair integration

Movement Reset After W-Jumpthrow

W-jumpthrow uses delayed -forward to maintain forward velocity:
If you’re stuck moving forward after W-jumpthrow:
  1. Switch to knife (press 3)
  2. Move your mouse
  3. Or type forward -9999 0 0 in console
Moving forward after W-jumpthrow is intentional to maintain grenade velocity. The config automatically resets when you switch weapons or move your mouse.

Compatibility with Movement Configs

Null Binds (Snap-Tap)

Jumpthrow works with null binds, but W-jumpthrow may conflict:

De-subtick Binds

Fully compatible with de-subtick movement:

Troubleshooting

You’re using an outdated bind. Valve patched multi-input binds on October 28, 2024. Update to CSAFAP v1.9+ which uses the ticker method.Temporary fix: Type -jump in console (or jump -9999 0 0)
Check:
  1. Launch option -testscript "../../csgo/cfg/csafap/addons/.vtest" is set
  2. You’re using bind mouse1 +M1 and bind mouse2 +M2
  3. Config loaded without errors (check console on launch)
  4. Not using commands longer than allowed (breaks exec queue)
This is normal. The bind uses delayed -forward to maintain velocity. Reset by:
  • Pressing 3 (knife)
  • Moving your mouse
  • Typing forward -9999 0 0 in console
The ticker aliases aren’t loading. This means:
  1. Launch option is missing or incorrect
  2. A command in csafap/main.cfg is too long (breaks exec)
  3. Config file path is wrong (case-sensitive on Linux)
Check console output immediately after game launch for errors.
Use this command:
This is automatically set in csafap/main.cfg.

Alternative: Macro-Based Jumpthrow

If you prefer not to use ticker system:
  1. Use a keyboard/mouse macro for standard jumpthrow
  2. Use the radio wheel method for occasional jumpthrows
  3. Use in-game bind for standard jump: bind space +jump
See this video tutorial for macro setup.
The ticker method is recommended as it’s more reliable and works for both JT and WJT binds.