Recording Server-Side Demos and Reviewing Them

May 21, 2025 Daemon666 8 min read 17 vizualizări

Admins ask for "server-side demos" to catch cheaters after the fact, and the first thing to understand is that GoldSrc CS 1.6 has no built-in server-side demo. The engine records demos on the client that runs record. What people mean in practice is one of three things: recording on your own client while spectating, running an HLTV proxy that captures the match, or forcing suspects to record their own client with a plugin. This walks through all three and how to play the files back.

1. The client-side record command

Any player, including you while spectating, records their own view with two console commands:

record mymatch
stop

This writes mymatch.dem into the cstrike/ folder of the machine that ran record. It captures only what that client received from the server — you cannot record a player's screen from the server. If you connect as a spectator and follow a suspect, you record what the server sent about them, which is enough to review positioning and obvious wall/aim tells but not their raw inputs.

2. Play a demo back

Put the .dem file in cstrike/ and run either command from the console:

playdemo mymatch
viewdemo mymatch

playdemo plays it inline; viewdemo opens the demo player overlay with a timeline, pause, and free-look camera. During viewdemo playback you can detach the camera and orbit the recorded player, which is exactly what you want when reviewing a suspected wallhack — watch whether their aim tracks enemies through geometry before line of sight exists.

3. Use HLTV as a dedicated recorder

HLTV (the standalone hltv proxy that ships with the dedicated server tools) connects to your server as a spectator client and can record the whole match to a demo on the HLTV machine. Started from the HLTV console:

connect 127.0.0.1:27015
record match_2026_07_15

Because HLTV sees every player with a configurable delay, its demo is the closest thing to a true "server" recording: one file, all players, reviewable with viewdemo afterwards. The cost is that HLTV is a second process consuming a player slot and bandwidth, and its delay and maxrate must be tuned so it does not choke. Run it on the same box or a nearby one to keep the feed clean.

4. Force a suspect to record with a plugin

The genuinely "server-driven" option is an AMX Mod X plugin that issues the record command on a target client and later pulls the file up via the upload channel or asks the player to send it. The engine lets the server run client commands through the standard client-command forward, so a plugin can start and stop a recording on a chosen SteamID. This is how anti-cheat admin suites implement "demo a player": they are scripting the client's own record, not capturing frames on the server. If you go this route, a maintained admin suite such as the CSB Admin Menu is safer than a raw one-off plugin, and you still need the player's cooperation to retrieve the resulting .dem.

5. Keep demos small and named sanely

Demos grow fast — a busy 30-minute round can be tens of megabytes. Record only when you have a reason, name files with the date and the suspect (2026-07-15_nova.dem), and delete them once reviewed. Cross-reference the demo with the server logs so you can tie a moment in the demo to a kill line and a SteamID; the log gives you the identity, the demo gives you the evidence.

Common errors

  • record does nothing / no file appears — you were already in a demo, or the name collided. Run stop first, then record with a fresh name, and check cstrike/ on the recording machine, not the server.
  • "Can't record during multiplayer games" — on some builds recording is blocked unless you start it before the map fully loads; reconnect and issue record right after connect, or use HLTV instead.
  • Demo plays but the camera is stuck to the recorder — use viewdemo, not playdemo, and detach the camera from the overlay to free-look.
  • HLTV shows nothing / times outsv_lan or a password is blocking it, or its maxrate is too low. HLTV connects like any client and obeys the same rules; see the essential cvars.
  • Expecting to record a cheater's raw aim from the server — impossible in GoldSrc. You only ever have what the server sent about them; interpret demos accordingly.

Verification

Record a short clip while spectating, run stop, confirm the .dem exists in cstrike/, then viewdemo it and detach the camera to orbit a player. If that works, your review workflow is sound. For a whole-match capture, stand up HLTV, record one map, and confirm the single demo contains every player — that is the file you keep when you need to justify a ban.

Contribuitori: Daemon666 ✦
Distribuie: