dotOverlay is a highly customizable, feature-rich external overlay for Counter-Strike 2. It uses Valve's Game State Integration (GSI) to display real-time game events with "hype" style feedback, including Street Fighter-style combo counters, MLG hitmarkers, and custom kill banners.
- Street Fighter Combo Counter: Visual combo streak that updates with every kill in the round.
- MLG Hitmarker: Classic "X" hitmarker animation on every kill.
- Custom Kill Banners & Audio: Plays specific images and sounds based on your kill count (1 kill, 2 kills, etc.).
- Bomb Timer: Visual 40-second countdown timer when the bomb is planted.
- Health HUD: Clean, readable status display.
- Settings Panel:
- Toggle individual features (Sounds, Images, Combo, Health, Bomb, Hitmarker).
- Adjust volume.
- Reposition Mode: Drag and drop HUD elements to customize your layout.
- GUI Launcher: Easy-to-use Electron app to manage the server and select asset folders.
To let the overlay receive data from the game, you must place a config file in your CS2 cfg folder.
- Navigate to your CS2 cfg folder:
C:\Program Files (x86)\Steam\steamapps\common\Counter-Strike Global Offensive\game\csgo\cfg - Create a new file named
gamestate_integration_custom.cfg. - Paste the following content into it:
"MyCustomIntegration"
{
"uri" "http://127.0.0.1:3000"
"timeout" "5.0"
"buffer" "0.0"
"throttle" "0.0"
"heartbeat" "10.0"
"data"
{
"provider" "1"
"map" "1"
"round" "1"
"player_id" "1"
"player_state" "1"
"player_weapons" "1"
"player_match_stats" "1"
"bomb" "1"
"phase_countdowns" "1"
}
}- Start the launcher via this command or just open the dotOverlay_1_0.exe
npm start
- The dotOverlay Manager window will appear.
- (Optional) Click Browse to select a custom folder containing your kill images/sounds.
- Click Start Server.
- Open your game (you can't use fullscreen windowed)
- Open Shift+Tab menu and open web browser
- Go to
http://localhost:3000/in the web browser. - If you done everything correctly you should be in this page.
- Pin the browser using the button on the top right.
- Double click anywhere to fullscreen it.
- Press Esc or Shift+Tab again to close the Steam layout. (This should remove the icons on the top) (❗❗ DO NOT SKIP THIS ONE OR IT WON'T WORK CORRECTLY ❗❗)
- Alt+Tab twice to re-open the CS2
- It should work now
You can provide your own images and sounds for kills. The server looks for files matching this pattern in your selected kills folder:
- Images:
*_<number>_kill.pngor*_<number>_kills.png - Audio:
*_<number>_kill_audio.mp3or*_<number>_kills_audio.mp3
Examples:
- 1 Kill:
reaver_1_kill.png,reaver_1_kill_audio.mp3 - 3 Kills:
mytheme_3_kills.png,mytheme_3_kills_audio.mp3
Note: The prefix (e.g., "reaver", "mytheme") does not matter; the system matches based on the number and suffix.
After running the script this GUI will appear.
In this GUI you should input your killbanner folder to Kills Asset Folder section.
I suggest you to use Valorant killbanners from this website.
Your killbanner folder should look like this:

- Open Settings: The settings panel is visible by default. Double-click anywhere on the background to toggle fullscreen (settings hide in fullscreen).
- Reposition HUD:
- Open the Settings panel.
- Click the Reposition button.
- Drag elements (Health, Combo, Bomb, Kill Banner) to your desired location.
- Click Save at the bottom of the screen to persist your layout.
To create a standalone executable for the server (console-only version):
- Node.js (v18 or later recommended)
npm run buildThis generates dotOverlay.exe.
- Overlay not updating?
- Ensure the GSI config file is in the correct CS2 folder.
- Check if the server log in the Manager app shows "New Kill Detected" or "Round changed".
- Audio not playing?
- Browsers block auto-playing audio. Click anywhere on the overlay page once to enable audio context.
- Check the volume slider in the Settings panel.
MIT