Skip to main content
Gaming Tools

How to Hear One Player's Voice in a CS2 Demo

Listen to specific players in a CS2 demo. Step-by-step tv_listen_voice_indices setup, how the slot bitmask number works, and how to isolate one team.

By 4 min read
Article title card. Ten vertical bars in a row with the fourth picked out in amber, with the line: one slot out of ten

You want one voice out of ten - your own comms after a FACEIT match, or how a particular in-game leader runs a mid-round - without everyone else talking over the top. tv_listen_voice_indices does exactly that, once you know what number to give it.

Quick answer: put the bit value of the player's slot in tv_listen_voice_indices (slot 1 = 1, slot 2 = 2, slot 3 = 4, slot 4 = 8) and set tv_listen_voice_indices_h to 0. To skip the arithmetic, upload the demo to the CS2 Voice Comms Calculator , tick the player, and copy.

Step 1 - Get a demo that actually has voice in it

Valve matchmaking and Premier demos contain no voice audio data, so there is nothing to isolate.2 Voice comes from FACEIT, ESEA and other SourceTV servers, and FACEIT demos download as .dem.zst. The full guide to voice in CS2 demos covers the exceptions, including why a community-server demo can be silent too.

Step 2 - Find the player's slot

Slots are not labelled. Step through them in the console:

spec_player 1
spec_player 2
spec_player 3

and note which one shows the player you want. Uploading the demo to the calculator reads the whole slot table at once and puts a name and a team next to each, which is the same information without the clicking.

Step 3 - Turn the slot into a number

Each slot is worth double the one before it, and you add up the ones you want:

SlotBit value
11
22
34
48
516
632

One player is just their own value: slot 3 is 4. Several players is the sum: slots 1, 3 and 4 give 1 + 4 + 8 = 13. Our number base converter will do it from a binary pattern if you prefer to see the bits.

Five Terrorists standing in a row in Counter-Strike 2, each labelled above the head with a coloured tag: CS2, Green, Purple, Blue and Orange.
Five players, and usually you want exactly one of them. The console addresses them by scoreboard slot, so the work is the counting, not the typing. Screenshot: Valve.

Step 4 - Paste the commands

tv_listen_voice_indices 4
tv_listen_voice_indices_h 0

The _h line is not a typo and not a copy. The two convars are the low and high halves of a single 64-bit bitfield: the first addresses player slots 0 to 31, the second addresses 32 to 63.1 Nobody in a 5v5 is in slot 32, so _h has no one to unmute - setting it to 0 just clears whatever it was left at earlier in the session.

The one time both carry the same value is -1, which fills every bit of both halves and unmutes the lot.

Step 5 - Play the demo

You will hear only the players you picked. Both convars go back to 0 when CS2 closes, so the next session starts silent again; that is the whole explanation for "it worked yesterday".

Hearing one whole team

Add up that side's slots and use the total. The voice comms calculator has All T and All CT buttons for it, which is what you want for a highlight cut or for studying one team's mid-round calling without crosstalk.

If you use CS Demo Manager's voice_ct and voice_t aliases instead, know that they follow each player's starting side, not the side they are on now.3 After the half they say the opposite of what you meant.

Picking the opposing five is a different problem again, because their voice may not be in the file: hearing the enemy team in a demo covers what the server had to allow for it to be there.

Why the number stops working

Slots come from the player entity order recorded in the demo. That is not the scoreboard order, and it has no reason to match between two matches with the same ten people in them. Within one demo the slots are fixed - the file replays the same way every time - but the mask itself does not travel. Build it per demo.

Which is the argument for not building it by hand at all: upload the demo once to the CS2 Voice Comms Calculator , tick the player, copy the two lines.

Sources

Every number in this article traces to a source below. Where a claim could not be sourced, it was cut rather than softened.

  1. Peer-reviewedb0ink

    The verbatim convar descriptions, that tv_listen_voice_indices is a bitfield of player slots 0 to 31 and tv_listen_voice_indices_h the high 32 bits covering slots 32 to 63, and that both default to none.

  2. Peer-reviewedAkiVer

    That Valve matchmaking demos contain no voice audio data at all.

  3. Primary sourceCS Demo Manager

    The voice_ct and voice_t aliases, and that they refer to each player's starting side rather than their current one.

Topics

Tools mentioned in this article

Get new tools by email

New tools and the occasional deep-dive, about once a month. No spam, no sharing your address, unsubscribe in one click.

Related articles

Article title card. A loudspeaker icon with three arcs beside it, the innermost in amber, with the line: two commands, and the comms come back
Gaming Tools Guide

How to Hear Voice Comms in CS2 and FACEIT Demos

Hear voice comms in any CS2 or FACEIT demo with tv_listen_voice_indices. Which demos record voice, how the slot bitmask works, and how to read text chat.

Article title card. Two columns of five dots either side of a dashed dividing line, the left column amber and the right grey, with the line: the server decides who was recorded
Gaming Tools

How to Hear the Enemy Team's Voice in a CS2 Demo

Whether you can hear the enemy in a CS2 demo depends on what the server recorded, not on your console. Which demos carry it, and the mask for one side.

Article title card. A loudspeaker icon struck through by a thick amber line, with the line: the demo has no voice in it
Gaming Tools

Why You Can't Hear Voice in Your CS2 Demo (Fixes)

Can't hear voice comms in a CS2 or FACEIT demo? The real reasons - no voice in MM/Premier demos, unset tv_listen_voice_indices, commands resetting - and the fixes.