| Concept | What it is |
|---|---|
| Achievement | A milestone or reward that players unlock while playing, like "First Win" or "Score 1,000 Points." You define them in the dashboard and unlock them from your game. |
| API key | A secret token that lets the CLI and other tools act on your behalf. Create one in Developer Portal → API Keys. |
| Build | A versioned snapshot of your game's files. Each upload — from the Developer Portal or wavedash build push — creates a new build. You can always roll back to an earlier one. |
| Cloud save | Per-player files Wavedash stores for you and syncs across devices. The SDK calls this Remote Storage (uploadRemoteFile, downloadRemoteFile, listRemoteFiles) — useful for save games, settings, and player progress. |
| Deferred events | An init() option (deferEvents: true) that queues lobby and multiplayer events until your game calls readyForEvents(), so handlers don't fire while you're still loading. |
| Developer Portal | The browser-based home for your team at wavedash.com/dev-portal. Manage API keys, builds, store pages, pricing, payouts, achievements, and leaderboards. |
| Document ID | The server-side ID returned when you create a stat or achievement with the CLI. CLI update/delete commands take this ID, while your game code uses the stable string identifier you chose (e.g. KILLS_TOTAL). |
| Entrypoint | The first HTML file Wavedash loads inside your upload_dir. Defaults to index.html; set it in wavedash.toml if your build uses a different filename. |
| Game ID | Your game's unique ID on Wavedash. Created in the Developer Portal or with wavedash project create, then stored as game_id in wavedash.toml (or passed via --game-id). |
| Gameplay token | A short-lived, game-scoped token Wavedash issues so the SDK can call platform APIs on the player's behalf. The SDK fetches and refreshes it for you — you don't read or store it in normal game code. |
| ICE restart | What the SDK does when a peer's WebRTC connection flaps. You'll see P2P_PEER_RECONNECTING and then either P2P_PEER_RECONNECTED or — after a few attempts — P2P_CONNECTION_FAILED. |
| In-game overlay | Wavedash's built-in UI that floats above your game — friends list, invites, settings, and so on. Show or hide it from your game with toggleOverlay(). |
init() | The one call every game makes once when it finishes loading. Reveals your game from behind the loading screen and marks it ready to play; also fires loadComplete(). |
| Launch params | Key/value data passed to your game when it opens, read with getLaunchParams() after init(). Wavedash strips the wvdsh_ prefix from query string keys (?wvdsh_lobby=abc becomes { lobby: "abc" }). Used for lobby invite links and similar deep-link flows. |
| Leaderboard | A scoreboard for your game. You pick the name, sort order, and format — your game submits scores through the SDK, and Wavedash handles ranking. |
| Load progress | The 0-to-1 value your game reports during boot with updateLoadProgressZeroToOne() so the platform shell can render its loading bar. Call it repeatedly as assets load — report it only once at the end and the bar jumps straight from 0% to 100%. Pair with loadComplete() to signal the player can interact (often called for you by init()). |
| Lobby | A room where players can gather before or during a game. Supports chat, invites, a member list, and connects to peer-to-peer networking automatically. |
| Lobby host | The lobby member treated as owner. Only the host can change certain lobby settings, and if they leave, hosting migrates to another member automatically. |
| Lobby invite | A friend-directed invite to join a lobby. Opening the invite link launches your game with the lobby ID delivered through launch params — your game just needs to call joinLobby() on startup. |
| Lobby metadata | Arbitrary key/value data attached to a lobby that all members stay synced on. The host updates it with setLobbyData, and members get a LOBB_DATA_UPDATED event when it changes. |
| Marketplace fee | The percentage Wavedash takes on paid game sales — currently 10%, separate from any payment-processor charges. See Pricing. |
| Metadata review | A light review Wavedash runs on store-page edits. Changes enter a pending state until approved; your previously-approved metadata stays live in the meantime. |
| P2P channel | One of up to eight numbered lanes (0–7) for binary peer-to-peer messages. Each send picks a channel and whether delivery is reliable (ordered, guaranteed) or unreliable (fast, lossy). |
| P2P networking | Once everyone's in a lobby, the SDK opens direct WebRTC data channels between all members in a full mesh — no dedicated game server. NAT traversal uses managed TURN credentials, so you don't host any infrastructure yourself. |
| Payouts | How money from paid games reaches you. Wavedash uses Stripe Connect — finish onboarding in Developer Portal → Payouts and earnings land in your Stripe balance on Stripe's payout schedule. |
| Player | Someone with a Wavedash account. They have a username, avatar, friends list, and game library. Your game can read their info with Wavedash.getUser(). |
| Presence | Status and activity the signed-in player exposes to friends, set with updateUserPresence(). Includes hooks like lobbyId so the platform shell can show "Join Game" from the friends list. |
| Project | A game record under a team. wavedash project create makes one and returns the game_id you store in wavedash.toml; wavedash project list shows everything your team owns. |
| Promote | The verb used in CLI and intro copy for what the glossary calls Publish — choosing which uploaded build players see. Done in the Developer Portal today (the CLI handles uploads only). |
| Publish | Choosing which build players see when they open your game. Publish a new build to update, or publish an older one to roll back. |
| Sandbox | A local version of Wavedash that runs on your machine when you use wavedash dev. Great for testing SDK features like leaderboards and achievements before going live. |
| Secret achievement | An achievement hidden from the player's list until they earn it. Set with --secret on wavedash achievement create, or via the Developer Portal. |
| Session | The time between a player opening your game and leaving. Wavedash tracks sessions automatically so you can see how people play. |
| Slug | A short, URL-safe identifier. Your game's slug is the part of its store URL and stays fixed even if you rename the title; teams and projects also expose slugs in CLI tables. |
| Stat | A number your game tracks per player — things like total kills, distance traveled, or games played. Stats persist between sessions and can automatically unlock achievements. |
| Stat-triggered achievement | An achievement that unlocks automatically when a configured stat crosses a threshold — no unlockAchievement() call needed. Wired up with --triggered-by-stat-id and --threshold on the CLI, or via the Developer Portal. |
| Store page | What players see when they find your game — the title, description, screenshots, trailers, tags, and price. You can update it anytime without pushing a new build. |
| Team | A group of developers who work on games together. Team members share access to builds, analytics, and settings. Manage members, billing, and payouts in the Developer Portal. |
| UGC | User-generated content. Things players create and share — custom levels, replays, screenshots, mods. Your game decides what players can upload, and other players can browse and download it. |
| UGC type & visibility | Two enums on every UGC item. Type classifies it (SCREENSHOT, VIDEO, COMMUNITY, GAME_MANAGED, OTHER). Visibility controls who can see it (PUBLIC, PRIVATE). |
| upload_dir | The folder on your computer that contains your game's built files. Set it in wavedash.toml — the CLI uses it for local testing and uploads. |
| User JWT | A short-lived signed JWT for the signed-in player, fetched with getUserJwt(). Forward it to your own backend and verify it against Wavedash's public keys for trusted identity (payload.sub is the stable user ID). |
| Wavedash CLI | The wavedash command-line tool. Authenticates your machine, runs your game locally in the sandbox (wavedash dev), manages teams and projects, and uploads new builds (wavedash build push). |
| Wavedash Dev app | The local desktop app the CLI launches when you run wavedash dev. It hosts your build inside the Wavedash sandbox; the CLI downloads it the first time you need it and reuses it after. |
| Wavedash SDK | How your game talks to Wavedash at runtime. The Wavedash global is injected automatically in the browser; Godot and Unity have native bindings, and @wvdsh/sdk-js provides optional typed access in JavaScript/TypeScript projects. |
| wavedash.toml | A small config file in your project that tells the CLI your game ID, where your build files are, and any engine-specific settings. |
| WAVEDASH_TOKEN | Environment variable that holds an API key. When set, the CLI uses it instead of saved credentials — the standard way to authenticate in CI runners and other headless environments. |
Glossary
Key terms used across the docs, the Developer Portal, and the CLI.