Skip to content

Instantly share code, notes, and snippets.

@Davoodeh
Last active February 26, 2022 00:48
Show Gist options
  • Save Davoodeh/e05a840b182ec44c0673858081cfe829 to your computer and use it in GitHub Desktop.
Save Davoodeh/e05a840b182ec44c0673858081cfe829 to your computer and use it in GitHub Desktop.
Everything about CS:GO radio

CSGO chatwheel and radio related commands list

Table of content

Notes

Some lines were taken from $CSGODIR/csgo/radial_radio.txt and some other from response_rules.txt (Thanks to Mikoboy for introducing the file).

Usage

To play a voiceline manually use the syntax below. Notice that your agent may not have a voice for a given voiceline. Master (red) agents have the most number of voices and variations.

Some voicelines work only on T or CT. Those found are marked with "possibly only": [team] key.

Note that in console, no command is case sensitive and double quotation marks are optional for one word arguments. Moreover, the last semi-colon is optional for each command.

playerradio voiceline "message"

For example, if you want to give a reload call each time you press r, you can define an alias in your auto-exec.cfg like so:

alias reloading "playerradio radio.coverme Reloading!"
bind r "+reload; reloading"

Unfortunately, for some reason, It’s impossible to break quotation marks in console or bind playerradio directly.

bind r "+reload; playerradio radio.coverme \"Reloading! Cover me.\""
bind r "+reload; playerradio radio.coverme Reloading!"

Generation and conversion

Extract all "cmds" from radial_radio.txt

grep -oP '^\s.*"cmd"\s+"\K.*(?=")' "$CSGODIR/csgo/radial_radio.txt" | tr -d '\\' | sort > "${OUTPUTDIR:-$HOME}/playerradio.txt"

Extract all "criterion" from response_rules.txt

response_rules.txt can be aquired from https://github.com/SteamDatabase/GameTracking-CSGO/blob/ce1528dad1ae688f3b4e909364b27609143e301f/csgo/pak01_dir/scripts/talker/response_rules.txt

# The "junk remover"
# remove everything but the 3rd argument to criterion command (seems voicelines are only those on that column)
# also remove those which don't start with a letter (unlikely to be a voice-object)
awk '
/criterion/ {
    gsub(/"/, "", $4)
    print $4
}' response_rules.txt | tail -n+7 | grep '^[[:alpha:]]'

The actual data

JSON

Pinging behavior (chatwheel ping behavior key) matters for it sometimes justifies the change in the line/chat string.

{
  "removed": {
    "WaitingForHumanToDefuseBomb": {"radial_radio.txt message": "Defuse Now"}
  },
  "unknowns": [
    {"chatwheel message": "I'll De/Activate Bomb"},
    {"command": "report", "command message": "Report in, team."},
    {"command": "reportingin", "command message": "Reporting in."},
    {"chatwheel message": "Pep talk"},
    {"chatwheel message": "Ping Bomb", "chatwheel ping behavior": "object"},
    {"chatwheel message": "Ping middle"},
    {"chatwheel message": "You De/Activate Bomb"},
    {"chatwheel message": "Need Molotovs"}
  ],
  "radio": {
    "Radio.BombSiteClear": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "Bombsite clear",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": ["CW.BombSiteClear"],
      "source": "radial_radio.txt",
      "possibly only": "t"
    },
    "Radio.Cheer": {
      "command": "cheer",
      "command message": "Cheer!",
      "radial_radio.txt message": null,
      "chatwheel message": "Cheer!",
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.Compliment": {
      "command": "compliment",
      "command message": "Nice!",
      "radial_radio.txt message": "Good job",
      "chatwheel message": "Nice!",
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.CoverMe": {
      "command": "coverme",
      "command message": "Cover me",
      "radial_radio.txt message": "Cover Me!",
      "chatwheel message": "",
      "chatwheel ping behavior": "",
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.DroppedBomb": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": null,
      "chatwheel message": "",
      "chatwheel ping behavior": "",
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.EcoRound": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "We should eco",
      "chatwheel message": "We should save",
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.EnemyDown": {
      "command": "enemydown",
      "command message": "Enemy down.",
      "radial_radio.txt message": null,
      "chatwheel message": "",
      "chatwheel ping behavior": "",
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.EnemySpotted": {
      "command": "enemyspot",
      "command message": "Enemy spotted.",
      "radial_radio.txt message": "I saw them",
      "chatwheel message": "Enemy spotted",
      "chatwheel ping behavior": "aim",
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.EnemySpotted": {
      "command": "enemyspot",
      "command message": "Enemy spotted.",
      "radial_radio.txt message": "I saw them",
      "chatwheel message": "Multiple enemies here",
      "chatwheel ping behavior": "aim",
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.EnemySpotted": {
      "command": "enemyspot",
      "command message": "Enemy spotted.",
      "radial_radio.txt message": "I saw them",
      "chatwheel message": "One enemy here",
      "chatwheel ping behavior": "aim",
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.FireInTheHole": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "Grenade",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.Flashbang": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "Flashbang",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.FollowMe": {
      "command": "followme",
      "command message": "Follow Me!",
      "radial_radio.txt message": "Follow me",
      "chatwheel message": "Follow me",
      "chatwheel ping behavior": "self",
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.GetOutOfThere": {
      "command": "getout",
      "command message": "Get out of there, it's gonna blow!",
      "radial_radio.txt message": "",
      "chatwheel message": "",
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.GoA": {
      "command": "go_a",
      "command message": "Bombsite A!",
      "radial_radio.txt message": null,
      "chatwheel message": "Ping Site A",
      "chatwheel ping behavior": "object",
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.GoB": {
      "command": "go_b",
      "command message": "Bombsite B!",
      "radial_radio.txt message": null,
      "chatwheel message": "Ping Site B",
      "chatwheel ping behavior": "object",
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.GoGoGo": {
      "command": "go",
      "command message": "Go go go!",
      "radial_radio.txt message": "Go Go Go!",
      "chatwheel message": "Go go go!",
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.HoldPosition": {
      "command": "holdpos",
      "command message": "Hold This Position.",
      "radial_radio.txt message": "Hold your position",
      "chatwheel message": "Hold this position",
      "chatwheel ping behavior": "aim",
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.IKilledSniper": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "I killed a sniper",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.ImAttacking": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "Attacking",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.InPosition": {
      "command": "inposition",
      "command message": "I'm in position.",
      "radial_radio.txt message": null,
      "chatwheel message": "I'm in position.",
      "chatwheel ping behavior": "self",
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.LocBack": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "Back",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.LocBombA": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "A bomb site",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.LocBombB": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "B bomb site",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.LocCatwalk": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "Catwalk",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.LocConnector": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "Connector",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.LocDoor": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "Door",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.LocDoubleDoors": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "Double door",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.LocEnemySpawn": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "Enemy spawn",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.LocFront": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "Front",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.LocHostage": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "Get the hostage",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.LocHostage": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "Get the hostage/Hostage",
      "chatwheel message": "Check the hostage",
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.LocHostage": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "Hostage",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.LocHostageEscapeZone": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "Hostage escape zone",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.LocHut": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "Hut",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.LocLong": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "Long",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.LocMid": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "Mid",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.LocOurSpawn": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "Our spawn",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.LocOverpass": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "Overpass",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.LocPalace": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "Palace",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.LocPlatform": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "platform",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.LocRamp": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "ramp",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.LocSnipersNest": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "snipersnest",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.LocStairs": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "Stairs",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.Molotov": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "Fire",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.MyHeadshot": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "I got a head shot",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.NeedBackup": {
      "command": "needbackup",
      "command message": "Need backup.",
      "radial_radio.txt message": null,
      "chatwheel message": "Need Backup",
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.NeedDecoy": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "Decoy",
      "chatwheel message": "Need Decoys",
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.NeedDrop": {
      "command": "needrop",
      "command message": "Can I have a weapon?",
      "radial_radio.txt message": "Need a drop, please.",
      "chatwheel message": "Request a weapon",
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.NeedFlash": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": null,
      "chatwheel message": "Need Flash",
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.NeedGrenade": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": null,
      "chatwheel message": "Need Frag Grenades",
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.NeedLeader": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "Who will lead?",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.NeedPlan": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "What's the plan?",
      "chatwheel message": "What's the plan?",
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.NeedQuiet": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "Be quiet!",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.NeedSmoke": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "Smoke",
      "chatwheel message": "Need Smokes",
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.Negative": {
      "command": "negative",
      "command message": "Negative.",
      "radial_radio.txt message": null,
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": "Disagree",
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.Num1": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "One",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.Num10": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "Ten",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.Num2": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "Two",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.Num3": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "Three",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.Num4": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "Four",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.Num5": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "Five",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.Num6": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "Six",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.Num7": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "Seven",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.Num8": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "Eight",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.Num9": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "Nine",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.PickedUpC4": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "Bomb has been picked up",
      "chatwheel message": "Bomb picked up",
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.PlantingAtA": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "Planting at A",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.PlantingAtB": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "Planting at B",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.Regroup": {
      "command": "regroup",
      "command message": "Regroup Team.",
      "radial_radio.txt message": null,
      "chatwheel message": "Rotate to me",
      "chatwheel ping behavior": "self",
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.Roger": {
      "command": "roger",
      "command message": "Roger that./Affirmative.",
      "radial_radio.txt message": null,
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": ["Agree", "CW.Agree", "AgreeWithPlan", "Yes"],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.RoundLost": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "We lost the round",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.SawHeadshot": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "I saw your headshot",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.SectorClear": {
      "command": "sectorclear",
      "command message": "Sector clear.",
      "radial_radio.txt message": null,
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": "Clear",
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.Sorry": {
      "command": "sorry",
      "command message": "Sorry!",
      "radial_radio.txt message": "I'm sorry",
      "chatwheel message": "Sorry",
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.SpendRound": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "We should spend",
      "chatwheel message": "We should buy",
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.StickOut": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "Spread out",
      "chatwheel message": "Spread out",
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.StickTogether": {
      "command": "sticktog",
      "command message": "Stick together, team.",
      "radial_radio.txt message": "Stick together",
      "chatwheel message": "Stay together",
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.TakingFire": {
      "command": "takingfire",
      "command message": "Taking fire... need assistance!",
      "radial_radio.txt message": null,
      "chatwheel message": "",
      "chatwheel ping behavior": "",
      "possible duplicates": "InCombat",
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.TeamFallBack": {
      "command": "fallback",
      "command message": "Team, fall back!",
      "radial_radio.txt message": "Fall back",
      "chatwheel message": "Fall back",
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.Thanks": {
      "command": "thanks",
      "command message": "Thanks!",
      "radial_radio.txt message": "Thanks",
      "chatwheel message": "Thanks",
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.WePlanted": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "Planted",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Radio.YouTakeThePoint": {
      "command": "takepoint",
      "command message": "You take the point.",
      "radial_radio.txt message": null,
      "chatwheel message": "Following you",
      "chatwheel ping behavior": "aim",
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    }
  },
  "cw": {
    "CW.Agree": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "Yes",
      "chatwheel message": "Yes",
      "chatwheel ping behavior": null,
      "possible duplicates": ["AgreeWithPlan", "Agree", "Radio.Roger", "Yes"],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "CW.BombAt": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": null,
      "chatwheel message": "",
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "response_rules.txt",
      "possibly only": null
    },
    "CW.BombCarrierHere": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": null,
      "chatwheel message": "",
      "chatwheel ping behavior": null,
      "possible duplicates": ["SpottedBomber"],
      "source": "response_rules.txt",
      "possibly only": null
    },
    "CW.BombsiteClear": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": null,
      "chatwheel message": "",
      "chatwheel ping behavior": null,
      "possible duplicates": ["Radio.BombsiteClear"],
      "source": "response_rules.txt",
      "possibly only": null
    }
  },
  "root": {
    "Agree": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "Yes",
      "chatwheel message": "Yes",
      "chatwheel ping behavior": null,
      "possible duplicates": [
        "AgreeWithPlan",
        "CW.Agree",
        "Radio.Roger",
        "Yes"
      ],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "AgreeWithPlan": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "",
      "chatwheel message": "",
      "chatwheel ping behavior": null,
      "possible duplicates": ["Agree", "Radio.Roger", "Yes"],
      "source": "response_rules.txt",
      "possibly only": null
    },
    "Clear": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "None left",
      "chatwheel message": "Area clear",
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "CoveringFriend": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "Covering",
      "chatwheel message": "Covering you",
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "DeathCry": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "",
      "chatwheel message": "",
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Disagree": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "No",
      "chatwheel message": "No",
      "chatwheel ping behavior": null,
      "possible duplicates": "Radio.Negative",
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "FriendlyFire": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "Taking friendly fire",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "GoingToGuardLooseBomb": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "Guarding the bomb",
      "chatwheel message": "Guarding the Bomb",
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "HeardNoise": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": null,
      "chatwheel message": "Heard noise",
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Help": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "I need help",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "InCombat": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "Taking fire",
      "chatwheel message": "",
      "chatwheel ping behavior": "",
      "possible duplicates": "Radio.TakingFire",
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "KilledMyEnemy": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "I killed them",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "LastManStanding": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "Last unit alive",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "OnMyWay": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "--- (Marked as TODO)",
      "chatwheel message": "On my way",
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "OneEnemyLeft": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "One left",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "PinnedDown": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "I'm pinned",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "ScaredEmote": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "I'm scared",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "SniperKilled": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "We killed a sniper",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "SniperWarning": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "Saw a sniper",
      "chatwheel message": "Sniper spotted",
      "chatwheel ping behavior": "aim",
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "SpottedBomber": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "Saw the bomb carrier",
      "chatwheel message": "Bomb carrier spotted",
      "chatwheel ping behavior": null,
      "possible duplicates": ["CW.BombCarrierHere"],
      "source": "radial_radio.txt",
      "possibly only": "ct"
    },
    "SpottedLooseBomb": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "Bomb has been dropped",
      "chatwheel message": "",
      "chatwheel ping behavior": "",
      "possible duplicates": "Radio.DroppedBomb",
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "TeamLeadLost": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "We lost the lead",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "TeamLeadWon": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "We're winning",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "ThreeEnemiesLeft": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "Three left",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "TwoEnemiesLeft": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "Two left",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "WonRound": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "We won",
      "chatwheel message": null,
      "chatwheel ping behavior": null,
      "possible duplicates": [],
      "source": "radial_radio.txt",
      "possibly only": null
    },
    "Yes": {
      "command": "",
      "command message": "",
      "radial_radio.txt message": "",
      "chatwheel message": "",
      "chatwheel ping behavior": "",
      "possible duplicates": [
        "Agree",
        "CW.Agree",
        "AgreeWithPlan",
        "Radio.Roger"
      ],
      "source": "radial_radio.txt",
      "possibly only": null
    }
  }
}

Unprocessed response_rules.txt entries

I have yet to test and note all the details about these entries.

This far I just found out that CW objects usually have a Radio counter-part, one of which usually doesn’t work for a specific team.

Also I found out that TLK_* and Concept criterion-s (or better to say criteria) are abstract objects and don’t have an associated voiceline.

TLK_ANSWER TLK_QUESTION TLK_IDLE TLK_STARE TLK_USE TLK_UNUSE TLK_STOP
TLK_NOSHOOT TLK_HELLO TLK_PHELLO TLK_PIDLE TLK_PQUESTION TLK_PLHURT1 TLK_PLHURT2
TLK_PLHURT3 TLK_SMELL TLK_WOUND TLK_MORTAL TLK_DANGER TLK_RESUME TLK_HEAL
TLK_TGSTAYPUT TLK_TGFIND TLK_TGSEEK TLK_TGLOSTYOU TLK_TGCATCHUP TLK_TGENDTOUR
TLK_SELECTED TLK_COMMANDED TLK_COMMAND_FAILED TLK_BETRAYED TLK_AMMO
TLK_ALLY_KILLED TLK_SEE_COMBINE TLK_ENEMY_DEAD TLK_WATCHOUT TLK_ATTACKING
TLK_DEATH TLK_HELP_ME TLK_LEAD_START TLK_LEAD_WAITOVER TLK_LEAD_ATTRACTPLAYER
TLK_LEAD_CATCHUP TLK_LEAD_COMINGBACK TLK_LEAD_RETRIEVE TLK_LEAD_ARRIVAL
TLK_LEAD_SUCCESS TLK_LEAD_MISSING_WEAPON TLK_CITIZEN_RESPONSE_SHOT_GUNSHIP
TLK_CITIZEN_RESPONSE_KILLEd_GUNSHIP TLK_VITALNPC_DIED a concept no yes no
InSmoke SeeGrenade SeeRescueZone Rescued Flashbanged CTWin TWin Pain Death
StartFollowing StopFollowing T CT GreetCT GreetT DmgReaction tm_anarchist
tm_balkan ctm_FBI ctm_gign ctm_gsg9 ctm_idf tm_leet tm_phoenix tm_pirate
tm_professional ctm_sas ctm_st6 tm_separatist ctm_swat fbihrt_epic seal_epic
balkan_epic leet_epic swat_epic swat_fem professional_epic professional_fem
de_bank ar_shoots de_sugarcane de_stmarc BombSite BombsiteA BombsiteB BombsiteC
radiorocknloadchicken1 radiorocknloadchicken2 radio.letsgo radio.takingfire
radio.locknload Help radio.moveout radio.go TwoEnemiesLeft Radio.EnemySpotted
SpottedLooseBomb ThreeEnemiesLeft SpottedBomber NiceShot RequestReport
Radio.ReportInTeam Radio.FollowMe Radio.NeedBackup PinnedDown
GoingToDefendBombsite OnMyWay GuardingLooseBomb HeardNoise PlantedBombPlace
EnemySpotted EnemyDown KilledMyEnemy NoEnemiesLeft Clear OneEnemyLeft
Affirmative Negative BombsiteClear DefusingBomb GoingToGuardLooseBomb
TheyPickedUpTheBomb WhereIsTheBomb FriendlyFire HostageDown BombTickingDown
ReportingIn FollowingFriend Disagree Agree ClearedArea SniperKilled
SniperWarning AgreeWithPlan NiceShotSir NiceShotCommander FollowingSir
FollowingCommander Blinded BombsiteSecure InCombat CoveringFriendt
CoveringFriend OnARollBrag ThrillEmote WaitingForHumanToDefuseBomb PlantingBomb
GoingToPlantBomb GoingToPlantBombA GoingToPlantBombB GoingToPlantBombC
GoingToPlantBombSafe DefendingBombsite DefendingBombsiteA DefendingBombsiteB
DefendingBombsiteC DefendingBombsiteSafe ScaredEmote Radio.InPosition WonRound
WonRoundQuickly' WonRoundQuickly Radio.Decoy Radio.FireInTheHole
EscortingHostages WaitingHere Radio.SectorClear LostEnemy Radio.Molotov
LastManStanding test WaitingForHumanToDefuseBombPanic BarelyDefused
GoingToGuardHostages GuardingHostages GoingToGuardHostageEscapeZone
GuardingHostageEscapeZone HostagesBeingTaken HostagesTaken TalkingToHostages
WaitingForHumanToRescueHostages CommanderDown KilledFriend PreventEscapeBrag
FrustrationEmote WonRoundClean Radio.Smoke Radio.Flashbang Radio.CoverMe
Radio.YouTakeThePoint Radio.HoldPosition Radio.Regroup Radio.GoGoGo
Radio.TeamFallBack Radio.StickTogether Radio.ReportingIn Radio.GetOutOfThere
Radio.Roger Radio.Negative Radio.EnemyDown Radio.GoA Radio.GoB Radio.Sorry
Radio.NeedDrop Radio.Num1 Radio.Num2 Radio.Num3 Radio.Num4 Radio.Num5 Radio.Num6
Radio.Num7 Radio.Num8 Radio.Num9 Radio.Num10 Radio.LocBombA Radio.LocBombB
Radio.LocBack Radio.LocC4 Radio.LocCatwalk Radio.LocConnector Radio.LocDoor
Radio.LocDoubleDoors Radio.LocEnemySpawn Radio.LocFront Radio.LocHole
Radio.LocHostage Radio.LocHostageEscapeZone Radio.LocHut Radio.LocMid
Radio.LocLong Radio.LocOurSpawn Radio.LocOverpass Radio.LocPalace
Radio.LocPlatform Radio.LocRamp Radio.LocSnipersNest Radio.LocStairs
Radio.LocYard Radio.ImAtLocBombA Radio.ImAtLocBombB Radio.ImAtLocBack
Radio.ImAtLocC4 Radio.ImAtLocCatwalk Radio.ImAtLocConnector Radio.ImAtLocDoor
Radio.ImAtLocDoubleDoors Radio.ImAtLocEnemySpawn Radio.ImAtLocFront
Radio.ImAtLocHole Radio.ImAtLocHostage Radio.ImAtLocHostageEscapeZone
Radio.ImAtLocHut Radio.ImAtLocMid Radio.ImAtLocLong Radio.ImAtLocOurSpawn
Radio.ImAtLocOverpass Radio.ImAtLocPalace Radio.ImAtLocPlatform
Radio.ImAtLocRamp Radio.ImAtLocSnipersNest Radio.ImAtLocStairs Radio.ImAtLocYard
Radio.OMWLocBombA Radio.OMWLocBombB Radio.OMWLocBack Radio.OMWLocC4
Radio.OMWLocCatwalk Radio.OMWLocConnector Radio.OMWLocDoor
Radio.OMWLocDoubleDoors Radio.OMWLocEnemySpawn Radio.OMWLocFront
Radio.OMWLocHole Radio.OMWLocHostage Radio.OMWLocHostageEscapeZone
Radio.OMWLocHut Radio.OMWLocMid Radio.OMWLocLong Radio.OMWLocOurSpawn
Radio.OMWLocOverpass Radio.OMWLocPalace Radio.OMWLocPlatform Radio.OMWLocRamp
Radio.OMWLocSnipersNest Radio.OMWLocStairs Radio.OMWLocYard Radio.GoToLocBombA
Radio.GoToLocBombB Radio.GoToLocBack Radio.GoToLocC4 Radio.GoToLocCatwalk
Radio.GoToLocConnector Radio.GoToLocDoor Radio.GoToLocDoubleDoors
Radio.GoToLocEnemySpawn Radio.GoToLocFront Radio.GoToLocHole
Radio.GoToLocHostage Radio.GoToLocHostageEscapeZone Radio.GoToLocHut
Radio.GoToLocMid Radio.GoToLocLong Radio.GoToLocOurSpawn Radio.GoToLocOverpass
Radio.GoToLocPalace Radio.GoToLocPlatform Radio.GoToLocRamp
Radio.GoToLocSnipersNest Radio.GoToLocStairs Radio.GoToLocYard Thanks
radiorocknloadchicken1 radiorocknloadchicken2 DeathCry ARamp BDoors BPlatform
Back BackAlley BackAlleys BackEntrance BackYard Bridge CTSpawn Catwalk
DoubleDoors ExtendedA Front FrontEntrance Hole LongA LongDoors MidDoors Middle
Overpass PalaceInterior ShortStairs Side SideEntrance SnipersNest Stairwell
TRamp TSpawn TopofMid UnderA Underpass UpperTunnel Alley Apartment Apartments
Arch BackAlley BackHall Balcony Bridge CTSpawn Crawlspace Downstairs FarSide
FrontDoor LeftAlley Library LongHall Market Middle Pit RightAlley Stairs TSpawn
TopofMid Tower Truck Tunnel Upstairs Window WineCellar concept BackEntrance
BackDoor BackYard BankInterior Bathroom Bedroom BodyShop BombSite Deck Foyer
FrontYard Garage GasStation Kitchen LivingRoom Porch Roof SideYard Street Vault
ARamp AbovePit BDoors BPlatform Back BackAlleys BackofA Catwalk DoubleDoors
ExtendedA Front FrontEntrance Hole LongA LongDoors LowerTunnel MidDoors
OutsideLong OutsideTunnel Overpass PalaceInterior ShortStairs Side SideEntrance
SnipersNest Stairwell TRamp TunnelStairs UnderA Underpass UpperTunnel CTRed
CTSideLower CTSideUppder Crows Ducts Hut Inside Ladder Lobby Loft Main Radio
Rafters Ramp Red SideHall SniperBox Squeaky TStart Underground Warehouse BackWay
ConferenceRoom FrontCourtyard FrontHall MainHall Office SideAlley StorageRoom
BackCourtyard BombsiteA BombsiteB Courtyard Water Basement Dumpster Outside
Banana CTSideUpper Garden Graveyard Hay Logs LowerMid Quad Ruins SecondMid
TSideLower TStairs BankExterior BoatBar BoatStorage CTBar GroundLevel LockerRoom
LowerCatwalks UpperCatwalks Radio.Affirmitive Radio.StormFront
Radio.GetInPosition Radio.Cheer Radio.Compliment Radio.Thanks FriendlyFireNoB
Radio.Incendiary HeavyWakeTaunt Radio.TeamDM.LeadGained Radio.TeamDM.LeadLost
Guardian.HalfwayThere Guardian.RoundStart Guardian.WaveStart
Guardian.TeammateDown Guardian.TeamDown Guardian.Victory Radio.PlantingAtA
Radio.PlantingAtB Radio.PlantedAtA Radio.PlantedAtB Radio.RoundLost
Radio.NeedPlan Radio.NeedLeader Radio.SpendRound Radio.EcoRound Radio.SpreadOut
Radio.NeedQuiet Radio.NeedSmoke Radio.NeedFire Radio.NeedDecoy Radio.NeedFlash
Radio.ImAttacking Radio.IKilledSniper Radio.MyHeadshot Radio.SawHeadshot
Radio.ISeeBomb Radio.WePlanted Radio.PickedUpC4 Radio.SeesEnemiesMultiple
Radio.RequestGetHostages Radio.SeesHostageBeingTaken Radio.SeesHostageStolen
Radio.CheckHostage Radio.NeedGrenade Radio.BombsiteClear Radio.GuardingA
Radio.GuardingB Radio.GuardingDroppedBomb Radio.BombCarrierHere
Radio.WeHaveTheBomb Radio.SeesSingleEnemy Radio.DroppedBomb CW.Agree CW.BombAt
CW.BombCarrierHere CW.BombsiteClear CW.CheckHostage CW.Cheer CW.Compliment
CW.CoveringYou CW.Disagree CW.DroppedBomb CW.EcoRound CW.FollowMe
CW.FollowingYou CW.GoA CW.GoB CW.GoGoGo CW.GoToLocMid CW.GuardingA CW.GuardingB
CW.GuardingDroppedBomb CW.HeardNoise CW.HoldPosition CW.IFixBomb
CW.IKilledSniper CW.ISeeBomb CW.ImAttacking CW.InPosition CW.MyHeadshot
CW.NeedBackup CW.NeedDecoy CW.NeedDrop CW.NeedFire CW.NeedFlash CW.NeedGrenade
CW.NeedLeader CW.NeedPlan CW.NeedQuiet CW.NeedSmoke CW.OMW CW.PepTalk
CW.PickedUpC4 CW.PlantedAtA CW.PlantedAtB CW.PlantingAtA CW.PlantingAtB
CW.Regroup CW.Regroup CW.RequestGetHostages CW.RoundLost CW.SawHeadshot
CW.SectorClear CW.SeesEnemiesMultiple CW.SeesEnemy CW.SeesHostageBeingTaken
CW.SeesHostageStolen CW.SeesSingleEnemy CW.SniperWarning CW.Sorry CW.SpendRound
CW.SpreadOut CW.StickTogether CW.TeamFallBack CW.Thanks CW.WeHaveTheBomb
CW.WePlanted CW.YouFixBomb
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment