CS Demo Manager (CS:DM)

website·Indexed 32 days ago

https://cs-demo-manager.com

A tool for downloading, analyzing, and managing Counter-Strike 2 demos from Valve, FACEIT, Renown, and 5EPLAY. It features a 2D viewer, video generation capabilities, a command-line interface (CLI), and a PostgreSQL database for data export and analysis.

Tokens
27.3K
Snippets
104
Records
253
Agent score
62%

What's inside CS Demo Manager

  1. Overview of CS Demo Manager features

    CS Demo Manager is a companion application for Counter-Strike demos that provides the following capabilities:

    • Statistics Extraction: Extract detailed stats from demo files.
    • Grenade Finding: Quickly locate smokes, flashbangs, and other utility usage.
    • Heatmap Generation: Generate and export player/action heatmaps.
    • VAC Tracking: Track VAC bans associated with demos.
    • Video Generation: Create video clips directly from demo data.
    • Demo Downloading: Automate the download of recent Valve or third-party demos.
    • Advanced Search: Search for specific gameplay events such as 5K rounds, 4K rounds, or ninja defuses.
    • Data Export: Export extracted data to XLSX or JSON files, or query the underlying database directly using SQL.
  2. Overview of CS:DM video generation

    CS:DM allows users to generate videos, images, and audio from match demos via the Video tab. The process typically involves starting Counter-Strike, playing the demo, and executing game commands to create raw files (.tga images and .wav audio), which are then processed into video files using FFmpeg or VirtualDub. If using HLAE with FFmpeg and selecting 'video' as the output, raw files are bypassed to save disk space and time.
  3. Overview of CS Demo Manager features

    CS Demo Manager is a companion application for Counter-Strike demos that provides the following capabilities:

    • Statistics Extraction: Extract detailed stats from demo files.
    • Grenade Finder: Quickly locate smokes, flashbangs, and other utility.
    • Heatmaps: Generate and export player/action heatmaps.
    • VAC Tracking: Track VAC bans associated with demos.
    • Video Generation: Create video clips directly from demo data.
    • Demo Downloading: Automate the download of Valve and third-party demos.
    • Search: Search for specific game events such as 5K rounds, 4K rounds, or ninja defuses.
    • Data Export: Export data to XLSX or JSON files, or query the underlying database directly using SQL.
  4. Use boiler-writter to retrieve Steam matchmaking data

    boiler-writter is a C++ based CLI tool used by CS:DM to retrieve matchmaking data for the currently logged-in Steam account from the Steam Game Coordinator. It is distributed via an NPM package and is automatically placed in the static folder when the vp i command is executed, which is the default location where the application expects the binary to be.
  5. CS Demo Manager V3 Feature Overview

    CS Demo Manager V3 is a complete rewrite of the application featuring:

    • CS2 Support: Now supports Counter-Strike 2 (with some current limitations compared to CSGO).
    • Cross-platform Compatibility: Runs on Windows, Linux, and macOS.
    • Automatic Demo Downloads: Includes a dedicated UI to automatically download the latest Matchmaking (MM) demos.
    • External Demo Analyzer: Uses a separate program for demo analysis, which can be used independently of CS:DM.
  6. Understand the CS:DM Server Plugin architecture

    CS:DM uses a custom library (plugin) loaded into the game at launch to communicate with the CS:DM WebSocket server. This allows the application to trigger game actions and control demo playback without requiring a game restart. Because the plugin relies on game implementation details, it may require updates following game patches (particularly for CS2).
  7. Reveal log files using the CS Demo Manager UI

    You can quickly open the folder containing the log files directly from the application interface by navigating to Settings > About and clicking the Reveal log file buttons.
  8. Understand the application process architecture

    The application is built with Electron. To prevent the UI from becoming unresponsive, heavy operations (database/filesystem access, demo analysis) are offloaded to a separate Node.js process that hosts a WebSocket server. The main and renderer processes communicate with this server via WebSocket clients. During development, the WebSocket server is created from a BrowserWindow instead of a Node.js process to allow debugging via Chrome DevTools.
  9. Use CS Demo Analyzer (CSDA) for demo data extraction

    CS Demo Analyzer (CSDA) is a Go-based CLI tool used by CS:DM to analyze game demos and extract data. It is distributed via an NPM package and is automatically placed in the static folder when the vp i command is executed, which is the default location where the application expects the binary to be.
  10. Contribute code to CS Demo Manager

    Developers can contribute by submitting bug fixes or new features. Before submitting pull requests, developers should review the architecture guide located at /docs/development/architecture. Bug fixes are accepted at any time, but new features should first be discussed regarding use cases and implementation details in the GitHub Discussions forum.
  11. Use Player Mode to auto-generate recording sequences

    Player mode (--mode player) allows the CLI to automatically generate recording sequences based on specific player events rather than manual tick ranges. When using this mode, startTick and endTick are not required.
    # Example: Record all kills for specific players from a player perspective
    --mode player --steamids 76561198000000000,76561198000000001 --event kills --perspective player