How Favade works
An end-to-end walkthrough of the Favade architecture - the client publisher, the WebSocket transport, and the browser-rendered radar.
Last updated: 2026-05-08
Favade ships two surfaces from one client: an in-game ESP overlay drawn directly on your CS2 viewport, and a web radar served to your browser on a second screen. Both run from a single Windows client that reads CS2 state, renders the in-game overlay locally, and publishes the same snapshot to a transport layer for the browser viewer to subscribe to. Three pieces, one license.
1. The client (in-game ESP + publisher)
The Windows client runs alongside Counter-Strike 2 and does two things from one process:
- Renders the in-game ESP overlay directly on your CS2 viewport - boxes, skeletons, health, names, weapons, and distance labels, drawn on top of the normal scene. Player positions are visible through walls because the overlay draws them over the world geometry. You toggle features in the in-app menu.
- Publishes match state - the same player positions plus bomb, utility, and round phase - to our backend as compact snapshots, so the web radar viewer can render the top-down view on your second screen or a friend's browser.
On startup, the client authenticates with our backend using your license key. The license is bound to your hardware (CPU, disk, machine GUID); see how HWID licensing works for the details.
2. The transport
Snapshots are sent over a persistent WebSocket connection to ws.favade.org. The
transport is one-way for live state - the publisher emits, the backend forwards.
State is fanned out to subscribers: your own browser, plus any stream-share viewers you've authorised. End-to-end latency is typically sub-second on a normal connection.
3. The viewer
The viewer is a browser SPA hosted at radar.favade.org. When you open it and sign
in (or load a stream-share code), it subscribes to your live channel over WebSocket and renders:
- The map's top-down geometry, with callout regions
- Each player as a coloured icon, with optional ESP labels (name, weapon, distance, health)
- The bomb (carried, planted, or defusing)
- Live utility - smoke volumes, molotov burn areas, drops
- A latency readout
Because the viewer is a webpage, you can run it anywhere - second monitor, phone, tablet, or a teammate's laptop.
Why both surfaces from one client
The in-game ESP and the web radar are different views of the same match state. Both ship from the same client process so they stay in sync without a second login. You pick which surface you want active in a given session:
- In-game ESP only: features toggled in the in-app menu.
- Web radar only: publish enabled, in-game overlay disabled - the lowest-footprint mode.
- Both: in-game ESP for your main view, radar on a second screen or shared to a friend.