Add shared community events to your game
Lynx is designed for developers who want the feel of live events without building a full live-ops backend.
You register a game, connect it to public events, integrate the Godot SDK, and decide how shared milestones become in-game rewards.
Good fit
- single-player indie games
- Godot games
- demos and festival builds
- RPGs and roguelites
- action games
- idle/incremental games
- community challenges
Basic integration flow
- Get your Game ID, Game Key, and Game Admin Password from Lynx.
- Use the developer join page to connect your game to a public event. This is an admin/developer action, not runtime game code.
- Configure the Game ID, Game Key, and the same relay/event IDs in your Godot project.
- Register a local installation, sync relay state, and send player contributions through the SDK.
- Convert claimable milestone versions into local reward offers.
const TRACKED_RELAYS := ["sunfall"]
func _ready() -> void:
await LynxRelay.register_installation(TRACKED_RELAYS)
await LynxRelay.sync_relay("sunfall")
Player actions can contribute to the shared event:
await LynxRelay.increment_relay("sunfall", 1)
Runtime contribution requests are limited to 30 increment requests per minute per player installation, per game, per event. This limit protects Lynx from accidental request spam while still allowing multiple players in the same game to contribute independently. The Godot SDK queues contributions and retries after cooldowns, so developers should trigger increments from meaningful gameplay actions rather than every frame.
Reward offers can be handled by a helper:
LynxRewards.configure(["sunfall"])
func _on_offer_available(relay_id: String, offer: Dictionary) -> void:
spawn_or_update_lynx_chest(relay_id, offer)
When the player opens the reward chest:
var result := await LynxRewards.prepare_offer_claim("sunfall")
if result.get("ok", false):
var offer: Dictionary = result["offer"]
give_reward(offer)
save_game()
LynxRewards.complete_offer("sunfall")
Developer control
Lynx does not decide your reward table. Your game decides what Reward #49 means.
Each event defines a multiplier per reward met. If the first reward is 1, and the growth is 0.2, the second reward is worth 1.2, the third is 1.44 and so on. You can use this to increase the reward offered at each milestone.
Credentials
Game Admin Passwords are private admin/developer credentials. They are used for trusted actions such as connecting a registered game to an event, not for shipped game runtime code.
Do not publish Game Admin Passwords or backend secrets in your game, website, screenshots, logs, or public repository. A public game build should use the Game ID, Game Key, event IDs, and SDK-managed per-installation state. The Game Key is for runtime relay/reward requests only; it is not the Game Admin Password and must not grant admin actions.
