Games
Your health on the number row, your clip or your mana on the function keys, the keyboard white when a flashbang goes off, red while the bomb ticks or while your hero waits to respawn. Counter-Strike 2 and Dota 2 tell Candeo what happens in your game, and your keyboard shows it.
Connect Counter-Strike 2
- In Settings, tick Valve's game state integration: a Games tab appears.
- In Games, click Connect next to Counter-Strike 2: its effect on your keyboard during a match, your usual effect back after it.
- Start the game — or restart it if it was running: it reads the connection when it starts.
To try it without a real match: Play › Practice › With bots. With the developer
console on and sv_cheats 1, give weapon_flashbang or, playing
terrorist, give weapon_c4 tries the flash and the bomb.
The Counter-Strike 2 effect
- Your health fills the number row, from green to red as it drops.
- The clip of the weapon in hand fills the function row.
- A flashbang turns the keyboard white, as it turns your screen.
- Fire turns it orange.
- The planted bomb makes the whole keyboard pulse red.
Every colour is a setting, and so is the flash's strength. Before the game says anything, both bars glow faintly: waiting, not broken. Effects made for a game stay out of the gallery's main list: they are in its Games group, folded, and on the game's card.
Dota 2
Connected the same way, in Games, with one step more: Dota 2 reads the
connection only when started with -gamestateintegration. In Steam, open Dota
2's Properties and add it to its Launch options, then start the game.
- Your hero's health fills the number row, from green to red.
- Mana fills the function row, in blue.
- The day and the night tint what is left, warm or blue.
- A stun makes the keyboard flicker yellow; smoke dims it.
- Dead, the keyboard breathes red until your hero respawns.
Make it your own
What the game says arrives as signals, so everything signals do works with it — a rule, a setting following a value, an effect of your own:
| Signal | Value |
|---|---|
cs2.health cs2.armor | 0 to 100 |
cs2.ammo | the clip of the weapon in hand, 0 to 100 % |
cs2.flashed cs2.burning | 0 to 100 |
cs2.bomb | none, planted, defused or exploded |
cs2.phase | freezetime, live or over |
dota2.health dota2.mana | 0 to 100 |
dota2.respawn | the seconds before respawning, while dead |
dota2.stunned dota2.silenced dota2.smoked | yes while it lasts |
dota2.daytime | day or night |
dota2.phase | pre_game, game_in_progress, post_game… |
When cs2.bomb is exploded · on the keyboard · show Lightning · for 3 seconds
The one Connect makes, While playing Counter-Strike 2, is such a rule — while cs2.phase is set — listed in Automations with the others, where its priority can be changed.
Only your own values: while you spectate a teammate, theirs are not shown as yours. They last fifteen seconds and the game renews them every five, so quitting the game leaves nothing frozen on the keys.
How it works
Counter-Strike 2 has a feature of its own, Valve's game state integration: a small file in the game's folder names where to send its state, and the game sends it there as it changes. Connect writes that file, pointing at Candeo on your computer. Nothing reads the game's memory or its screen — it is the game telling what it chooses to tell, which is why it is safe with anti-cheat.
It goes to Candeo's local signals API, behind a token of its own, and stays in memory: nothing of your game reaches the disk or the log, and nothing leaves your computer. Disconnect removes the file.
Dota 2 has the same integration, and is next. The design is in docs/design/game-state-integration.md.