Memorin
Replay control reference

CS2 demo controls: in-game keys and demoui

How to drive a demo — first inside Counter-Strike 2, with the playback panel, the pause and seek commands and a bind or two, then in a browser viewer, where the same jobs are single keys.

The short answer, in the game

Put the .dem file where the game can resolve it, run playdemo with its name, then demoui for the playback panel with its scrub bar and speed control. demo_togglepause pauses, demo_timescale changes speed, demo_gototick jumps to an exact tick and spec_show_xray draws players through walls. Bind the ones you use every round.

Controlling a demo inside CS2

Counter-Strike 2 ships no demo controls on the keyboard. Playback comes from the developer console, from a panel you open with a console command, or from keys you bind yourself — and the first route is the one the other two are built on. The console is a checkbox in the game settings. Every description below is the game's own help text, from a cvarlist dump.

CommandWhat the game says it does
playdemoPlay a recorded demo file (.dem)
demouiShow/hide demo playback ui — the panel with the scrub bar and speed control
demo_togglepauseToggles demo playback. demo_pause and demo_resume are the one-way versions
demo_gototickSkips to a tick in demo. demo_goto skips to a location
demo_marktick / demo_gotomarkMark the current playback tick, then skip back to it later
demo_timescaleSets demo replay speed — below 1 is slower than real time, above 1 is faster
demo_step_tickPlay for N ticks (default 1) and then pause
demo_ui_modeUI mode for demo playback. 0 = disabled, 1 = minimal, 2 = full. Ships at 2

Two of those carry the review workflow. Seeking by tick is exact and repeatable: a tick number is a written-down address for a moment, so you can return to the same frame next week. Stepping is how you read the last half second before a death — demo_step_tick advances a fixed number of ticks and stops, a different tool from slowing the whole replay with demo_timescale.

There is no round-skip command in that set: rounds are reached by tick or by dragging the scrub bar. That is the biggest difference in feel between the in-game player and a viewer that has parsed the demo and knows where the rounds are. The full CS2 demo command reference lists all eighteen commands and the eight playback settings with their defaults; this page is the control-shaped view of it.

How do you bind a key to a CS2 demo command?

Use the console binding form: the word bind, then the key, then the command in quotation marks. Binding a key to demoui gives the playback panel a key of its own, and binding one to demo_togglepause gives pause without opening the console. Any demo command binds the same way.

A three-bind set covers most review: the panel, pause, and a step. Binds are ordinary config lines, so they persist and behave in a demo exactly as anywhere else.

This page prints no default key for demoui: no first-party statement of one was fetchable on 13 September 2026, and a shortcut published from memory is the kind of claim this site does not make. Bind it yourself and you know what it is.

First person, cameras and x-ray

Demo playback reuses the spectator system, so the camera controls are the spec_ commands, not the demo_ ones — which is why searching for a "demo camera" command finds nothing.

CommandWhat the game says it does
spec_modeSet spectator mode — the first-person and third-person switch
spec_playerSpectate a player by name or slot
spec_next / spec_prevSpectate next or previous player
spec_gotoMove the spectator camera to a specific location, given as x y z pitch yaw
spec_show_xrayIf set to 1, you can see player outlines and name IDs through walls
spec_autodirectorAuto-director chooses best view modes while spectating

spec_goto is the one worth remembering: it takes a position and a view angle, so a camera placement can be written down and reproduced exactly.

Where the file has to be

Demos the game writes go into your Counter-Strike 2 installation, normally under the csgo folder inside the game directory, unless you gave record a path of your own. playdemo resolves file names relative to the game, so a demo downloaded from Valve, FACEIT or HLTV has to be moved there first. Where CS2 demo files come from covers downloading, and when a CS2 demo will not open covers it failing anyway.

The browser viewer's keys

Everything above exists because the in-game player is console-driven. A browser viewer has already parsed the demo, so the same jobs become one key each, and rounds, kills and utility become things it can jump to directly. These are Memorin's defaults, all rebindable in Settings ▸ Controls; the interface is authoritative over this list.

ControlAction
SpacePlay or pause.
Left / Right arrowSeek by the interval chosen in the dock — 1, 5, 10 or 30 seconds.
Shift + Left / RightPrevious or next round. Up arrow is also next round; Down arrow restarts the round on screen.
J / LBack or forward 10 seconds without pausing.
, / .Step one frame back or forward — the equivalent of demo_step_tick.
/ =Slower or faster. Shift + Down arrow is momentary half speed while held.
Q / EPrevious or next event. Shift with them steps between deaths only.
[ / ]Previous or next kill by the player you are following.
ZSkip the freeze time.
F · V · CCycle camera · player POV · free camera. 10 pick a player slot.
GFollow a grenade. Hold and the camera returns; tap and it stays with the nade.
BWalk the map yourself.
R · Tab · TMatch review panel · scoreboard · tactical map.
XX-ray outlines — the equivalent of spec_show_xray.
I / KSpray review · input overlay.
M · N · U · HRadar · grenade trails · map geometry · hide the HUD.
O · F11Swap to the 2D radar surface and back · fullscreen.

Several actions ship unbound, ready to bind: follow camera, top-down, every POV at once, FPS mode, immersive mode, screenshot, copy replay link, create moment and the volume controls. Settings ▸ Controls lists them all; the left rail is a customisable subset of the same catalogue.

Player POV is a reconstruction from the recorded view angles, not a capture of that player's screen, so it carries none of their crosshair, video settings or HUD — the same caveat that applies to spec_mode in the game.

Walking the map yourself

Press B and you stop being a spectator. Walk mode drops you into the map at player height with the normal movement keys — WASD, Space to jump, Ctrl to crouch, Esc to leave — so you can walk the route a player took and see the angle they held.

This answers something no free camera can. A free camera floats, and one hovering above head height will show you a sightline no standing player has. If a conclusion depends on "they should have seen that", check it in walk mode first. The in-game player has no equivalent — spec_goto places a camera, it does not put you on the floor at player height.

Walk mode owns the movement keys while active, so Space and the seek arrows do nothing until you leave it. Shortcuts are ignored entirely while you type into a text field.

Which controls should you learn first?

In the game: demoui, because the panel makes the rest optional; then demo_gototick, because a tick is the only exact address a demo has; then a bind for pause. In the browser: Shift+arrow for rounds, Shift+Q/E for deaths, and F to compare POV against free camera — the whole discipline of honest review, set out in how to review a CS2 demo. After that, , and . step frames and N shows grenade trails.

Frequently asked questions

How do you control demo playback in CS2?

Start the file with playdemo, then run demoui, which the game calls show or hide demo playback ui: the panel with the scrub bar and speed control. From the console, demo_pause, demo_resume and demo_togglepause do the same job, and demo_ui_mode picks the panel, where 0 is disabled, 1 is minimal and 2 is full.

How do you watch a CS2 demo in first person?

Demo playback reuses the spectator system, so the camera controls are the spec_ commands, not the demo_ ones. spec_mode sets the spectator mode, spec_player spectates a player by name or slot, and spec_next and spec_prev step through the players. spec_show_xray draws player outlines and name IDs through walls.

How do you slow down or step through a CS2 demo?

demo_timescale sets demo replay speed: below 1 is slower than real time, above 1 is faster. For frame by frame inspection, demo_step_tick plays for a number of ticks and then pauses, defaulting to a single tick. To reach an exact moment, demo_gototick skips to a tick in demo.

What are the keyboard shortcuts in a browser CS2 demo viewer?

In Memorin, Space plays or pauses, the arrow keys seek, and Shift with a left or right arrow changes round. Q and E step between events, and Shift with them between deaths. F cycles the camera, V is player POV, C is free camera, X is x-ray and B walks the map yourself. All of them are rebindable in Settings.