A free OBS / StreamElements overlay that shows your CS2 Premier rating, rank badge,
stats, and recent match history live on stream — powered by the Leetify API.
A clean stats card that stays up to date on its own. Point it at your Steam profile, pick what to show, and drop the URL into OBS, Streamlabs, or StreamElements. Stats come live from Leetify and refresh automatically — no software to run, no account to make here.
✨ New features
- FACEIT support — show FACEIT ELO and skill level
- Live tracking on Kick & YouTube — not just Twitch
- HS% and ADR added to the stats you can show
What viewers see:
- Premier rating with a rank badge, or a plain rank-coloured number
- Rank-point change from your last match (e.g.
+250) - Win / loss pills and stats: win rate, aim rating, K/D
- Recent match history (W / L / T)
- Live session W/L (optional, Twitch / YouTube / Kick)
- Transparent background
Everything's toggleable.
Nothing to install — the hosted customizer builds your URL.
Pick a source — Premier (via Leetify) or FACEIT. Use either, or both.
Everyone: your Steam profile link or Steam64 ID. FACEIT stats are looked up from the same profile.
For Premier: a Leetify account linked to Steam, plus a matchmaking share code so it syncs matches:
- Get your Authentication Code from Steam
- Enter it on Leetify's Data Sources page under the Matchmaking tab
For FACEIT: a FACEIT account linked to the same Steam account — no Leetify needed. Flip the FACEIT toggle in the customizer.
- Open the customizer
- Paste your Steam profile link or Steam64 ID (can be found on SteamID I/O)
- Pick your source with the PREMIER / FACEIT toggle — same Steam profile either way:
- Premier — CS Rating, rank badge, K/D, AIM, win %
- FACEIT — FACEIT ELO, skill level, K/D, ADR, HS%, win rate, and (for Challenger players) your leaderboard position
- Toggle what to show — avatar/flag, name, rank badge/dial, rank/ELO change, stats, match history
- Set how many recent matches to show and how often it refreshes
- (Optional) For a per-stream win/loss, switch the Win/Loss source to Live Session and add a profile link (Twitch, YouTube, or Kick)
- Copy the generated widget URL (or download the StreamElements bundle — see below)
- Add a new Browser Source
- Paste your widget URL
- Set the size to about 660 × 180 (adjust to taste)
That's it — the overlay refreshes on its own.
Use the Download Zip for StreamElements button under the widget URL. It
builds a Custom Widget bundle (widget.html, widget.css, widget.js,
fields.json, data.json, plus widget-url.txt and README.txt). Paste each
file into its matching tab in the Custom Widget editor (HTML / CSS / JS / FIELDS
/ DATA). Fields come pre-filled and stay editable inside StreamElements —
Steam ID, toggles, stats, font, background — so you can tweak it there without
returning to the customizer.
By default the W/L pills tally every match in Leetify's recent window. Paste a Twitch, YouTube, or Kick link and they become a per-stream record:
- Resets to
W0 L0when your channel goes live - Counts only matches finished during that stream
- Freezes the last stream's record when you go offline
The platform is detected from the link. Your session is saved in the browser, so refreshing the OBS source mid-stream doesn't lose it. It only reads the public "is this channel live?" status — you never log in.
Relies on a small per-platform proxy the project owner hosts. If yours isn't available, the pills fall back to the rolling-window behaviour.
To hand-craft the URL, the widget accepts:
| Parameter | Default | Description |
|---|---|---|
steamId |
— | Steam64 ID (required) |
live |
— | <platform>:<channel> → session-scoped W/L (e.g. twitch:kapowhi, youtube:@handle, kick:slug) |
twitch |
— | Legacy Twitch login (still accepted; equivalent to live=twitch:<login>) |
avatar |
1 |
Show avatar (0 to hide) |
name |
1 |
Show player name |
badge |
0 |
Show in-game styled rank badge (1) instead of the plain number |
change |
1 |
Show rank-point change (+/-) |
stats |
1 |
Show WIN%, AIM, K/D |
history |
1 |
Show W/L/T match history |
matchCount |
10 |
Number of recent matches |
refresh |
60 |
Refresh interval in seconds |
Local dev, self-hosting, the optional Cloudflare Workers, analytics, and env vars are in docs/DEVELOPMENT.md; the analytics event reference is in docs/ANALYTICS.md.
Built with Claude Code from a Figma design, with security in mind. No login, no accounts, nothing personal to hand over — a static site that only reads your public CS2 stats. PRs are very welcome!
MIT © Sid
0 comments
log in to comment.