Skip to content

Latest commit

Β 

History

29 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

CS-Jukebox V2 Banner

CS-Jukebox-V2 🎧

A modern, lightweight, and VAC-safe custom music kit player for Counter-Strike 2.
Powered by Valve's official Game State Integration (GSI) framework.

Release Platform Target VAC Safe

πŸ“₯ Download Release β€’ ✨ Features β€’ πŸš€ Quick Start β€’ 🎡 Music Kit Guide β€’ πŸ› οΈ Build from Source

🎬 Showcase

Demo.mp4

🎡 Community Custom Kits

Download community-created kits or share your own on our official subreddit:

πŸ‘‰ r/CSJukeboxV2Kits


πŸ’‘ About the Project

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.


✨ Features

  • 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 .mp3 and .wav formats.
  • Comfortable Dark Theme: Switch the complete interface to a soft blue-graphite palette from the main window; the preference is remembered automatically.

πŸš€ Getting Started

Prerequisites & Download

  1. Download the latest compiled release archive:
    πŸ‘‰ Download CS-Jukebox V2 (Latest Release) (Windows only)
  2. Place CS-Jukebox.exe in any writable folder on your PC.

πŸ“¦ Installation & Setup

  1. Launch CS-Jukebox.exe. (To avoid problems, place the application in a separate, empty folder.) The application creates properties.json, debug_log.txt, and the kits folder beside the executable. Keep these items together when moving an existing portable installation.
  2. 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 game folder:
    ...\Steam\steamapps\common\Counter-Strike Global Offensive\game

  3. Launch Counter-Strike 2, open the developer console (~), and run:
    snd_music_volume 0
    (This mutes default in-game music kits while keeping sound effects, gunshots, footsteps, and voice chat intact).
  4. Restart Counter-Strike 2 if it was already open to initialize the integration config.

🎡 Custom Music Kit Guide

Audio Duration & Timing Reference

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.

How to Create & Assign Kits

  1. Open the CS-Jukebox dashboard and click Add.
  2. Enter a unique name for your custom music kit.
  3. Click Browse next to each match event to assign your .mp3 or .wav audio files.
  4. Click Save and select your newly created kit from the active list.

βš™οΈ How It Works

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”        HTTP POST (JSON)        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”        Audio Output
β”‚  Counter-Strike β”‚ ─────────────────────────────> β”‚    CS-Jukebox    β”‚ ───────────────────> Speakers /
β”‚       2         β”‚   Valve GSI (Localhost:Port)   β”‚   (NAudio Engine)β”‚                      Headphones
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                                β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
  1. 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.
  2. Event Parsing: CS-Jukebox receives these payloads asynchronously with zero impact on game performance.
  3. Dynamic Audio Routing: The internal NAudio playback engine triggers, crossfades, or cuts off custom audio tracks based on current match conditions.

πŸ› οΈ Building from Source

Prerequisites

Make sure you have the following installed:

Clone & Build

# 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 Release

Output Location

After 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.


❓ Troubleshooting

πŸ” Automatic game detection failed

CS-Jukebox scans your Steam directories via libraryfolders.vdf. If automatic detection does not find your game:

  1. Click Browse in the directory selection window.
  2. Manually select your CS2 game folder that contains both bin\win64\cs2.exe and csgo\cfg (typically located at ...\Steam\steamapps\common\Counter-Strike Global Offensive\game).
πŸ”‡ No music plays during matches
  1. Ensure CS-Jukebox.exe is running while playing.
  2. Verify that the GSI config file was created at:
    ...\Counter-Strike Global Offensive\game\csgo\cfg\gamestate_integration_jukebox.cfg
  3. Restart Counter-Strike 2 so the game engine loads the integration file.
  4. Verify your audio tracks are valid, uncorrupted .mp3 or .wav files.
πŸ”Š 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.


❀️ Support the Project

If you enjoy using CS-Jukebox V2 and want to support ongoing development, maintenance, and future updates, donations are greatly appreciated!

Donate with PayPal


πŸ‘₯ Credits & Acknowledgments

  • 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.

Disclaimer: Counter-Strike, CS2, and Valve are trademarks and/or registered trademarks of Valve Corporation. This project is open-source and is not affiliated with, endorsed by, or connected to Valve Corporation.

About

Play custom reactive music kits in Counter-Strike 2 using official, 100% VAC-safe Game State Integration (GSI). Fixed V2 release.

Topics

Resources

Stars

6 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages