Skip to content

b0ink/CS2-VoiceProximity-Client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

551 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CS2 Voice Proximity (Client)

Electron-based client for proximity voice chat in Counter-Strike 2, featuring 3D positional audio with server-side raycast occlusion using Three.js.

Links

Screenshots

Installation

Option 1: Use the pre-built installer

Download the installer setup from the latest release

Option 2: Build from source

Clone the repo & install dependencies:

git clone https://github.com/b0ink/CS2-VoiceProximity-Client.git
cd CS2-VoiceProximity-Client
npm install

Build for Windows and generate a setup installer:

npm run build:win

Develop with UI hot reloading (src/main changes require restart):

npm run dev

Develop with multiple app instances (each requires a valid JWT; use window.saveAuth(steamid, token) in the console to set manually):

npm run dev:multi 2

How it works

The CS2 plugin sends player position data and server-computed occlusion data to an API, which broadcasts listener-specific updates to connected clients in a voice room.

The client uses these updates to render positional audio and apply audio filtering in real time.

Occlusion

Occlusion is calculated on the game server with raycasts between each listener and other players.

A listener-specific blocked-vs-clear ray fraction is sent to each client, which applies the value to low-pass filtering and distance falloff so players behind cover sound muffled.

Diagram of server-side raycast patterns by quality level:

Concept inspired by this video.

Voice Relay Server

Voice data is relayed through a TURN server by default to protect user IPs. For lower latency, you can disable this in private rooms — P2P will only work if both you and the other player(s) disable relaying.


Project development started in April, 2025.

PayPal this

About

Proximity voice chat client for Counter-Strike 2 built with Electron and Three.js. Simulates 3D voice chat via WebRTC with spatial positioning, occlusion, and reverb.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors