The CSAFAP framework transforms CS2’s built-in radio communication system into an interactive UI for accessing hundreds of configuration options. This is achieved through clever manipulation of radio wheel commands and custom language files.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/FNScence/CSAFAP-config-package/llms.txt
Use this file to discover all available pages before exploring further.
How Radio Wheels Work
CS2 has three built-in radio wheels accessed via:+radialradio- Standard radio+radialradio2- Secondary radio+radialradio3- Tertiary radio
Two-Phase Interaction Model
The framework implements a two-phase system for radio wheel interaction:Phase 1: Display Labels
When you first press a hotkey (e.g.,J for T-side line-ups):
- Resets the deadzone for accurate selection
- Loads label text from configuration files
- Sets up the wheel environment
- Loads map-specific labels
Phase 2: Execute Commands
When you press the same key again while hovering over a tile:- Switches from labels to command configuration
- Sets up the environment for execution (sensitivity, view angles)
- Executes the selected command
- Resets the radio wheel and rebinds hotkey for next use
- Label Configuration
- Command Configuration
Labels are defined in
platform_english.txt language file and loaded via:Radio Wheel Types
The framework uses different radio wheels for different purposes:Map Selection Wheel
CT/T Line-up Wheels
- Equips smoke grenade (
slot8) - Zeros view angles for precise aiming
- Applies standard sensitivity for calculations
Movement/Crosshair Wheel
- Pro player crosshairs
- Null/Snap-tap binds
- Rapid fire mode
- Follow-recoil mode
Multi-Page Wheels
The framework supports multiple pages accessible via mouse wheel scrolling:Each radio wheel supports multiple tabs, and the framework can display different pages by scrolling the mouse wheel while the radio menu is open. This enables hundreds of line-ups across just a few keybinds.
Wheel Setup Process
Before opening a line-up wheel, the framework prepares the environment:startsens- Sets sensitivity to 1.0 for angle calculationszero_ud- Zeros vertical view angle to -89 degreesbuy smokegrenade- Ensures player has a smoke grenadeoriginal_mx/my- Preserves original mouse bindings
Zeroing System
For auto line-ups to work, the framework must know the exact starting view angle:- Horizontal: Sets an extremely high m_yaw to prevent mouse input, then uses
yawcommand to snap to 0 degrees - Vertical: Uses
pitchcommand to snap view to -89 degrees (looking straight up)
The values -4045.45454545 and similar are calculated based on the formula:This ensures pixel-perfect alignment regardless of player’s actual sensitivity.
Deadzone Configuration
The radio wheel deadzone controls how close to the center you can be before a selection is made:Resetting the Radio
After each use, the radio must be reset to default state:Custom Language Files
Radio tile text is customized viaplatform_english.txt:
\n characters create line breaks for better readability in the wheel UI.
Changes to
platform_english.txt require a game restart to take effect, as this file is loaded only during CS2 initialization.