Skip to main content
You can create custom radio wheels to execute any CS2 commands through the radio wheel interface. This is useful for practice commands, utility binds, or quick access to frequently used settings.

Basic Concept

Custom radio wheels work by:
  1. Binding a key to open the radio wheel with custom labels
  2. Releasing the key to switch to command mode
  3. Pressing the key again to execute the selected command
  4. Releasing the key to return to label mode
This creates a two-phase toggle system where labels display first, then commands execute.

Minimal Setup

You can find the most basic set of configs to create custom radio wheels in the CS AFAP Discord Server (pinned messages in the #auto-lineup-config channel). Discord link: discord.gg/cs-as-fast-as-possible-992407294866370681

Creating a Custom Radio Wheel

1

Create the keybind

In your autoexec or custom config, create a two-phase bind:
2

Create label file

Create a new config file: CustomRadio/radio_labels.cfgThis file defines what text appears on each radio tile.
3

Create command file

Create a new config file: CustomRadio/radio_cmd.cfgThis file defines what commands execute when you select each tile.
4

Create language labels

Add text labels to csgo/resource/platform_english.txtThese define the actual text that appears on radio tiles.

Step 1: The Keybind Structure

The two-phase bind switches between showing labels and executing commands:

How It Works

  1. Press J: Executes +wheel_1 → loads label config
  2. Release J: Executes -wheel_1 → opens radio wheel, rebinds J to phase 2
  3. Press J again: Executes +wheel_2 → loads command config, executes selected tile
  4. Release J: Executes -wheel_2 → closes radio wheel, rebinds J back to phase 1

Step 2: Create Label Config

Create CustomRadio/radio_labels.cfg to define radio tile labels:

Radio Tile Numbers

Tiles are numbered 1-8 in a circular pattern:

Tab Numbers

  • tab_0: Primary wheel (default)
  • tab_1: Secondary wheel (accessible via scroll wheel)
  • tab_2: Tertiary wheel (accessible via scroll wheel)

Step 3: Create Command Config

Create CustomRadio/radio_cmd.cfg to define what each tile executes:

Command Syntax

Important rules:
  • Must start with cmd";
  • Must end with ;
  • Commands are separated by ;
  • Cannot contain " characters after cmd";
  • Tile numbers must match between label and command files
The command line MUST end with a semicolon ; or it will not work.

Step 4: Create Language Labels

Add labels to csgo/resource/platform_english.txt:

Label Formatting

  • Use \n for line breaks
  • Add extra \n lines to fill the radio tile (usually 6-7 total lines)
  • Add a trailing space on the last line
  • Reference labels in config with # prefix: "#CFG_NOCLIP"
Changes to platform_english.txt require a full game restart to take effect.

Complete Example: Practice Mode Wheel

Here’s a complete example for a practice mode radio wheel:

In your autoexec.cfg

CustomRadio/practice_labels.cfg

CustomRadio/practice_cmd.cfg

In platform_english.txt

Using Aliases for Complex Commands

If you need to use " characters in your commands, create an alias in your autoexec:

In autoexec.cfg

In CustomRadio/practice_cmd.cfg

This allows you to call complex commands with quotes without breaking the radio wheel syntax.

Advanced: Multiple Wheels

You can create multiple independent radio wheels on different keys:
Each wheel has its own label and command configs.

Troubleshooting

Radio tiles are blank

Problem: No text appears on radio tiles. Solution:
  1. Check that labels exist in platform_english.txt
  2. Verify label names match (with # prefix in label config)
  3. Restart the game (required for language file changes)

Commands don’t execute

Problem: Selecting a tile does nothing. Solution:
  1. Verify command syntax ends with ;
  2. Check for " characters after cmd"; (not allowed)
  3. Use aliases in autoexec for complex commands with quotes
  4. Ensure tile numbers match between labels and commands

Radio wheel doesn’t open

Problem: Pressing the key doesn’t show the radio wheel. Solution:
  1. Check the bind syntax in your autoexec
  2. Verify +radialradio and -radialradio are in the correct aliases
  3. Make sure config files exist in the correct paths

Wrong tile executes

Problem: Clicking on one tile executes a different command. Solution:
  1. Verify tile numbers match in both label and command configs
  2. Check for windowed mode cursor displacement issues
  3. Make sure you’re using the same tab number (tab_0, tab_1, etc.)

See Also