A modern, lightweight, and VAC-safe custom music kit player for Counter-Strike 2.
Powered by Valve's official Game State Integration (GSI) framework.
π₯ Download Release β’ β¨ Features β’ π Quick Start β’ π΅ Music Kit Guide β’ π οΈ Build from Source
Demo.mp4
Download community-created kits or share your own on our official subreddit:
π r/CSJukeboxV2Kits
CS-Jukebox V2 lets you bring your favorite custom soundtracks directly into Counter-Strike 2. By leveraging Valve's official Game State Integration (GSI), the player reacts dynamically to live match events such as round start, bomb plants, clutch 10-second warnings, and MVP anthems without modifying game files or memory.
Important
100% VAC & Anti-Cheat Safe
CS-Jukebox operates purely as a local HTTP listener receiving JSON telemetry natively broadcasted by CS2. It does not hook processes, inject DLLs, read/write game memory, or modify CS2 executable binaries.
- Real-Time Match Synchronization: Instantly reacts to freeze time, round start, bomb plant, 10-second defuse warnings, player death, round outcome, and MVP anthems.
- Zero Risk / VAC Safe: Built strictly on Valve's documented GSI protocol. Fully safe for Premier, competitive matchmaking, and third-party platforms.
- Independent Audio Engine: Powered by NAudio for low-latency playback without relying on legacy Windows Media Player components.
- Smart Steam Discovery: Automatically scans all connected Steam libraries (
libraryfolders.vdf) across your drives to locate CS2 and configure the integration file. - Intuitive Kit Dashboard: Easily create, manage, switch, and test custom audio kits using
.mp3and.wavformats. - Comfortable Dark Theme: Switch the complete interface to a soft blue-graphite palette from the main window; the preference is remembered automatically.
- Download the latest compiled release archive:
π Download CS-Jukebox V2 (Latest Release) (Windows only) - Place
CS-Jukebox.exein any writable folder on your PC.
- Launch
CS-Jukebox.exe. (To avoid problems, place the application in a separate, empty folder.) The application createsproperties.json,debug_log.txt, and thekitsfolder beside the executable. Keep these items together when moving an existing portable installation. - The application will automatically scan your Steam libraries and detect your CS2 installation directory.
[!TIP] If automatic detection fails, click Browse and manually select your CS2
gamefolder:
...\Steam\steamapps\common\Counter-Strike Global Offensive\game - Launch Counter-Strike 2, open the developer console (
~), and run:(This mutes default in-game music kits while keeping sound effects, gunshots, footsteps, and voice chat intact).snd_music_volume 0 - Restart Counter-Strike 2 if it was already open to initialize the integration config.
Note
Tracks exceeding the ideal duration will automatically cut off or fade smoothly when the next gameplay event triggers. In the Music Selector, enable Limit preview to event duration to simulate the fixed preview window below. Start At changes the source offset, not the length of that window. The option also applies to previews in Extra tracks.
| Event / Track | Minimum Length | Ideal Duration | Limited Preview | Behavior & Engine Context |
|---|---|---|---|---|
| Main Menu | Loopable | Ambient / Seamless | Until file ends | Loops continuously while in the main menu or lobby. |
| Freeze Time | 10 sec | 10β15 sec | 15 sec | Plays during the pre-round buy phase (15s timer). |
| Round Start | 5 sec | 5β10 sec | 5 sec | Plays at round start; automatically fades out after ~5s. |
| Bomb Planted | 30 sec | 30 sec | 30 sec | Plays on bomb plant (Premier bomb timer is 40s total). |
| 10-Sec Warning | 10 sec | Exactly 10 sec | 10 sec | Plays when exactly 10s remain on round or bomb timer. |
| MVP Anthem | 7 sec | 7 sec | 7 sec | Plays when you earn round MVP; fades into the next freeze time. |
| Round Won / Lost | 7 sec | 7 sec | 7 sec | Fallback round-end track played when you are not the MVP. |
| Player Death | 3 sec | 3β5 sec | 5 sec | Secondary audio cue triggered immediately when you die. |
- Open the CS-Jukebox dashboard and click Add.
- Enter a unique name for your custom music kit.
- Click Browse next to each match event to assign your
.mp3or.wavaudio files. - Click Save and select your newly created kit from the active list.
βββββββββββββββββββ HTTP POST (JSON) ββββββββββββββββββββ Audio Output
β Counter-Strike β βββββββββββββββββββββββββββββ> β CS-Jukebox β βββββββββββββββββββ> Speakers /
β 2 β Valve GSI (Localhost:Port) β (NAudio Engine)β Headphones
βββββββββββββββββββ ββββββββββββββββββββ
- Native Game State Integration: CS2 natively sends JSON payloads containing real-time match events (round phases, bomb timers, player health, MVP states) to a local HTTP endpoint.
- Event Parsing: CS-Jukebox receives these payloads asynchronously with zero impact on game performance.
- Dynamic Audio Routing: The internal NAudio playback engine triggers, crossfades, or cuts off custom audio tracks based on current match conditions.
Make sure you have the following installed:
- .NET 8.0 SDK
- Git
- Visual Studio 2022 (with .NET desktop development workload) or VS Code
# 1. Clone the repository
git clone https://github.com/TYFALY/CS-Jukebox-V2.git
cd CS-Jukebox-V2
# 2. Publish the compressed, self-contained single-file release
dotnet publish ./CS-Jukebox/CS-Jukebox.csproj -c ReleaseAfter a successful publish, the only distributed file will be available at:
CS-Jukebox/bin/Release/net8.0-windows/win-x64/publish/CS-Jukebox.exe
The GSI configuration is embedded in the executable and installed into the CS2 configuration directory automatically. Runtime settings and music kits remain portable beside CS-Jukebox.exe.
π Automatic game detection failed
CS-Jukebox scans your Steam directories via libraryfolders.vdf. If automatic detection does not find your game:
- Click Browse in the directory selection window.
- Manually select your CS2
gamefolder that contains bothbin\win64\cs2.exeandcsgo\cfg(typically located at...\Steam\steamapps\common\Counter-Strike Global Offensive\game).
π No music plays during matches
- Ensure
CS-Jukebox.exeis running while playing. - Verify that the GSI config file was created at:
...\Counter-Strike Global Offensive\game\csgo\cfg\gamestate_integration_jukebox.cfg - Restart Counter-Strike 2 so the game engine loads the integration file.
- Verify your audio tracks are valid, uncorrupted
.mp3or.wavfiles.
π In-game music overlaps with custom tracks
Disable CS2 default music kits by opening the in-game developer console (~) and running:
snd_music_volume 0π Audio format & codec support
.mp3 and .wav are fully supported out-of-the-box via NAudio. Formats such as .m4a, .aac, or .wma rely on Windows Media Foundation codecs installed on your operating system.
If you enjoy using CS-Jukebox V2 and want to support ongoing development, maintenance, and future updates, donations are greatly appreciated!
- TYFALY β V2 architecture redesign, .NET framework upgrade, self-contained builds (embedded dependencies), kit import/export system, UI redesign, and general QoL maintenance.
- rakijah (CSGSI) β Original CSGSI library architecture.
- TimosCodd β CS2 GSI endpoint updates and schema references.
- alextmsv β Added multi-track support, NAudio integration, player death triggers and dynamic volume controls.