CS2 Voice Comms Calculator
Hear specific players in a CS2 or FACEIT demo - upload it to auto-fill players and get the tv_listen_voice_indices commands.
Reviewed by ZeroUtil Editorial Team · Last reviewed
What You Should Know
To hear specific players in a CS2 demo, set <code>tv_listen_voice_indices <number></code> and <code>tv_listen_voice_indices_h <number></code> in the console before you play the demo. The number is a bitmask of the spectator slots you want to hear. Upload the demo to this tool to fill the players automatically and copy the exact commands - or tick slots manually. Voice is only recorded in FACEIT and server demos; matchmaking and Premier demos contain no voice data.
Paste both commands into the CS2 console, then play the demo - you only hear the ticked players. Use the reset command to clear the filter and hear everyone again.
Frequently Asked Questions
How do I hear voice comms in a CS2 demo?
Set <code>tv_listen_voice_indices</code> and <code>tv_listen_voice_indices_h</code> in the console (to the same number) before playing the demo. The number is a bitmask of the spectator slots you want to hear. The easiest way is to upload the demo here - it fills the players automatically and gives you the exact commands to copy.
Why can't I hear voice in my matchmaking or Premier demo?
Because Valve matchmaking and Premier demos do not record player voice at all - there is simply no voice data in the file, so no command can play it back. Voice is recorded in FACEIT, ESEA and other server (SourceTV) demos. If you want to review comms, use a FACEIT demo.
How do I hear only one team, or only the enemy, in a demo?
Upload the demo so each player shows their team, then click "All T" or "All CT" to select just that side (or tick individual players). Copy the commands and you will only hear that team. To isolate one toxic player, tick only their slot.
What is tv_listen_voice_indices?
It is the CS2 console variable that controls which players' voice you hear while watching a demo. Its value is a 32-bit bitmask: bit 0 is spectator slot 1, bit 1 is slot 2, and so on. Set it to -1 to hear everyone, or use this calculator to build the exact number for the players you want.
What is the difference between tv_listen_voice_indices and tv_listen_voice_indices_h?
<code>tv_listen_voice_indices</code> covers spectator slots 1-32 and <code>tv_listen_voice_indices_h</code> covers the high slots 33-64 (used in larger lobbies / SourceTV). For a normal 5v5 you only need the first, but setting both to the same value is harmless and most reliable, so this tool always outputs both.
Why does the player slot change every time I reload the demo?
Spectator slots are assigned from the player entity order in the demo, which can shift between playback sessions. Uploading the demo here reads the actual slot for each player, so you do not have to re-check with spec_player after every reload.
Does this work for FACEIT demos?
Yes - FACEIT demos record voice, so the commands work. FACEIT CS2 demos are .dem.zst files; you can upload one directly here and it is decompressed and parsed for you. Matchmaking and Premier demos contain no voice.
Can it fill in the players automatically?
Yes. Upload your CS2 <code>.dem</code> (or a FACEIT <code>.dem.zst</code>) and the tool reads the demo and fills each slot with the correct player name and team, so you skip the tedious <code>spec_player 1..16</code> loop entirely. Then tick the players you want and copy the commands.
Why is the command tv_listen_voice_indices and not tv_listen_voices_indices?
The real console command is <code>tv_listen_voice_indices</code> - singular "voice". Some guides write "voices" by mistake, but that command does not exist in CS2 and does nothing.
What happens to my demo when I upload it?
It is sent to our server only to read the player slot list, then deleted automatically within minutes - the same short-lived handling as our video tools. Nothing is stored or shared. Prefer not to upload? The manual entry mode runs entirely in your browser.
Related tools
- SteamID Converter
Convert between SteamID64, STEAM_0:Y:Z, SteamID3 [U:1:W], account ID and profile URL.
- CS2 Sensitivity Converter
Convert mouse sensitivity between CS2, Valorant, Apex and more, with eDPI and cm/360.
- CS2 Crosshair Code Decoder
Decode a CSGO-xxxxx crosshair share code into cl_crosshair console commands.
More Gaming Tools
CS2 Crosshair Code Decoder
Decode a CSGO-xxxxx crosshair share code into cl_crosshair console commands.
Open toolCS2 Sensitivity Converter
Convert mouse sensitivity between CS2, Valorant, Apex and more, with eDPI and cm/360.
Open toolSteamID Converter
Convert between SteamID64, STEAM_0:Y:Z, SteamID3 [U:1:W], account ID and profile URL.
Open tool