How to Load a CS2 Demo in 5 Steps
Before any command fires, the demo file needs to be in the right directory and loaded correctly.
Step 1 — Download your match. Open CS2. Go to Play → Watch → Your Matches. For Premier matches, click the match entry and select Download GOTV Demo. The file downloads as a .dem file (sometimes zipped — extract it first).
Step 2 — Move and rename. Place the .dem file in:
...\Steam\steamapps\common\Counter-Strike Global Offensive\game\csgo\replays\Rename it something short. r1.dem is faster to type than the default 20-character match ID string.
Step 3 — Load from console.
playdemo replays/r1No .dem extension needed. The replays/ prefix is required when the file sits in that subfolder rather than the root csgo/ directory.
Step 4 — Open the Demo UI.
demouiOr press Shift+F2. The UI shows the timeline, round selector, player perspective list, and camera mode controls.
Step 5 — Enable X-ray.
spec_show_xray 1Outlines all players through walls for every perspective. Run this before you start reviewing — it transforms demo analysis from watching your own tunnel vision into seeing the full tactical picture of every engagement.
The 3 Commands That Actually Drive Review Sessions
Most demo command guides publish 20+ console variables. In practice, three handle 90% of what a focused review session needs. The rest are either recording tools or niche visual toggles.
demo_timescale [speed]
Controls playback speed. Valid values: 0.25, 0.5, 1, 2, 4, 8.
demo_timescale 2— standard scan speed; you can read the kill feed and catch positioning without losing detaildemo_timescale 4— burn through setup phases and economy rounds you’re not reviewingdemo_timescale 0.5— slow-motion for exact crosshair placement, spray pulls, and counter-strafe timingdemo_timescale 8— maximum; gets through a full 3-minute half in under 25 seconds
The mechanism matters: timescale scales the tick stream, not the rendering framerate. At demo_timescale 2, the game processes two ticks per rendered frame — you see every event, just compressed in real time. You won’t miss anything the way you do when dragging the scrub bar with a mouse.
demo_togglepause
One-key instant pause. The Demo UI has a pause button, but you’ll never hit it precisely enough to stop on a specific frame. Binding this to a single key lets you freeze on the exact tick of a decision — the frame you chose to peek, the moment a smoke deployed, the tick a flash bounced. That precision is what separates demo review from just rewatching gameplay.
demo_goto [ticks] [relative] [pause]
Jumps by tick count from your current position. With relative 1, it moves relative to where you are now:
demo_goto 2000 1 0 // forward ~15 seconds at 128-tick
demo_goto -2000 1 0 // backward ~15 seconds at 128-tickAt 128-tick (Premier, Faceit), 2000 ticks equals 15.625 seconds. At 64-tick (standard Competitive), the same 2000 ticks equals 31.25 seconds. Adjust the tick value in your binds to match the server type you play on most — 1000 ticks is a reasonable 64-tick equivalent for the same real-world rewind distance.
Two optional extras worth adding: demo_marktick drops a bookmark at the current tick; demo_gotomark returns to it. Useful when you want to return to a specific round multiple times without hunting through the timeline each time.

Set Up These Binds Once, Use Every Session
Type the following into console, or add the block to your autoexec.cfg. The CS2 config file backup guide covers exactly where to find and load your autoexec if you haven’t set one up:
bind "P" "demo_togglepause"
bind "J" "demo_timescale 0.5"
bind "K" "demo_timescale 1"
bind "L" "demo_timescale 2"
bind ";" "demo_timescale 4"
bind "LEFTARROW" "demo_goto -2000 1 0"
bind "RIGHTARROW" "demo_goto 2000 1 0"
bind "M" "demo_marktick"The speed keys (J/K/L/;) sit adjacent on the right side of the home row — a one-hand ramp from 0.5x through 4x. Left and right arrows step the timeline in ~15-second chunks without touching the scrub bar.
The reason this layout matters: during active review you cycle constantly between pause → rewind → slow-mo → normal → scan. Running that entire cycle from one hand means no mouse-to-keyboard fumble while a death plays out at 0.5x speed. Every second you spend finding a button is a second you’re not watching the screen.
Add spec_show_xray 1 to this block too so X-ray activates automatically at the start of every demo session. This also pairs naturally with reviewing your CS2 crosshair settings — X-ray makes it easy to check whether your crosshair placement habits hold up when you can see exactly where the enemy was standing.
Visual Commands Worth Running
cl_draw_only_deathnotices 1 — strips the full HUD to just the kill feed. Removes radar, weapon readout, health bar — everything except deaths. Cleaner canvas for analyzing angles and positioning without visual noise.
Free camera. In the Demo UI panel, open the camera mode dropdown and select Free Camera (default shortcut: C). Movement: WASD to fly, Q/E for vertical, right-click-drag to look around, scroll wheel to adjust movement speed.
Use free cam to check utility landing spots from above, verify what an angle looked like from the defender’s side, or understand exactly what the enemy’s crosshair placement was at the moment of a peek — something the spectated POV never shows cleanly.
sv_cheats note. The core commands — spec_show_xray, demo_timescale, demo_togglepause, demo_goto — all work without sv_cheats. If a command you find elsewhere (FOV adjustment, fog removal) refuses to fire, run sv_cheats 1 after loading the demo. Some visual enhancement commands are gated behind it.
The 3-Phase Death Analysis Loop
Having the commands is step one. Using them with a repeatable structure is what turns a demo into a specific improvement action rather than 20 minutes of passive watching. This workflow pairs directly with the positioning and decision-making principles in the CS2 competitive cheat sheet and the buy-phase logic covered in the CS2 economy guide.
Phase 1 — Scan at 2x–4x: Tag Rounds Worth Reviewing
Start the demo. Hit demo_timescale 2 (L). Watch only the kill feed — not the gameplay, just the names on the right side of the screen. You’re filtering for rounds where you died early (first or second kill) in a way that probably swung the round against your team. Most 26-round matches have 3–5 such rounds. The other 20 can be ignored entirely.
At each flagged round, hit P to pause and note the round number. Then press the right arrow to jump ahead. A full half at 2x takes under 4 minutes to scan.
Phase 2 — Analyze at 0.5x: Diagnose the Death
For each flagged round: use the Demo UI round selector to jump to that round, then rewind 20 seconds before your death. Switch to your own POV. Hit J (demo_timescale 0.5). Watch with four questions active:
- Crosshair placement — was your aim at head height when you moved to the angle? The moment you peek a corner with crosshair at chest level is the moment the duel is already half-lost.
- Counter-strafe — were you fully stopped when you fired, or still moving?
- Information state — what did you actually know at the moment of the peek — confirmed sound cue, teammate call, or a guess?
- Utility — was there a grenade — smoke, flash, molotov — that would have changed the engagement outcome if used?
At the exact moment of death, press P. Hold on that frame as long as you need. This is what the pause bind is for.
Phase 3 — Switch Perspective: Understand What the Enemy Had
In the Demo UI player list, click the player who killed you. Rewind to the same moment in the round. Watch at 0.5x.
You’re looking for: what angle were they holding, was it a pre-aim or a reaction, what their crosshair placement looked like when the peek happened, and whether they had information you didn’t.
The goal is to categorize the death into one of two buckets:
- Mechanical error — you were in the right position making the right read, but aim or counter-strafe let you down. Fix: aim training, review your spray pattern reference.
- Strategic error — you were in a position you should never have been in. Wrong timing, exposed angle, or acting on bad information. Fix: positioning habits and information discipline.
Grinding CS2 without demo review reinforces wrong habits at full speed. Demo review shows you the exact frame the habit fires and gives you something specific to fix instead of replaying the same mistake across 50 games.
| Player type | Recommended session structure |
|---|---|
| Casual (Premier under 10k rating) | 2 rounds per session, one focus area only — mechanics OR positioning, never both at once |
| Competitive (Premier 13k–20k) | 4–5 rounds, one theme per session (e.g., “this week I only check crosshair placement”) |
| Hardcore optimizer | Full match at 2x with round numbers noted, then deep-dive 3 rounds with free-cam perspective analysis |
One session per loss, 20 minutes maximum. Focused review with a fixed theme beats open-ended watching every time — because it gives you exactly one thing to take to your next game and test.
Frequently Asked Questions
Can I skip through an entire half at once?
Yes. demo_timescale 8 is the maximum and gets through a 3-minute half in under 25 seconds. Use it when you only want to analyze one side — skip the other entirely using the max timescale, then drop to 2x when you reach the half you care about.
Why aren’t some commands working?
Run sv_cheats 1 after loading the demo. Visual enhancement commands (FOV adjustment, fog removal) are locked behind it. Core playback commands — timescale, toggle-pause, goto — never need it. If a command still fails after sv_cheats 1, it may be blocked on that specific demo type. Stick to the core set.
How do I find the tick number for a specific moment?
Run demo_info in console after loading. It prints the demo’s total tick count and match duration. The Demo UI timeline shows tick numbers on hover. For moments you’ll return to multiple times in one session, demo_marktick (bound to M in the block above) saves the current tick; demo_gotomark brings you straight back.
Does reviewing spray in demos actually help?
Yes — specifically at 0.5x with X-ray active. Slow a rifle engagement where you lost the duel, watch your bullet traces against the enemy position, and cross-reference against the CS2 spray pattern reference. The gap between your actual pull and the pattern grid shows exactly where your spray correction breaks down under pressure.
What’s the difference between demo_gototick and demo_goto?
demo_gototick jumps to an absolute tick number from the start of the demo. demo_goto with relative 1 jumps relative to your current position — which is what the arrow-key binds use. For timeline navigation during review, the relative version is more practical. For jumping to a specific round tick you noted earlier, use demo_gototick with the absolute number.
Putting It Together
Three commands, one bind block, one repeatable structure. Load the demo, Shift+F2 to open the UI, set X-ray, and the same match you used to scrub for 10 minutes becomes a focused 3-minute death analysis loop. Phase 1 tags the rounds. Phase 2 diagnoses the deaths. Phase 3 shows what the enemy had.
The commands are just tools — the structure is what turns them into improvement. Run the same three phases consistently and you’ll have specific, actionable fixes to bring into your next game instead of a vague sense that something went wrong.
Sources
- All CS2 Demo & Overwatch Commands — Total CS
- CS2 Replay Commands: Demo UI, Fast Forward & Binds — cs2.ad
- CS2 Match Analysis: How to Review Your Demos and Improve — CS2.eu
- CS2 Demo Commands You Need to Know — ESTNN
- All CS2 Demo Commands And How To Use Them — Power Up Gaming
I've been playing video games for over 20 years, spanning everything from early PC titles to modern open-world games. I started Switchblade Gaming to publish the kind of accurate, well-researched guides I always wanted to find — built on primary sources, tested in-game, and kept up to date after patches. I currently focus on Minecraft and Pokémon GO.
