Search documentation

Find pages, sections, and content across all docs.

WavedashDocs

Glossary

Key terms used across the docs, the Developer Portal, and the CLI.

ConceptWhat it is
AchievementA milestone or reward that players unlock while playing, like "First Win" or "Score 1,000 Points." You define them in the Developer Portal or with the CLI and unlock them from your game. See Achievements & stats.
API keyA secret token that lets the CLI and other tools act on your behalf. Create one in Developer Portal → API Keys.
BuildA 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 savePer-player files Wavedash stores for you and syncs across devices. The SDK calls this Remote Storage (uploadRemoteFile, downloadRemoteFile, listRemoteDirectory) — useful for save games, settings, and player progress. See Cloud saves.
Deferred eventsAn init() option (deferEvents: true) that queues all SDK events until your game calls readyForEvents(), so handlers don't fire while you're still loading.
Developer PortalThe browser-based home for your team at wavedash.com/dev-portal. Manage API keys, builds, store pages, monetization, payouts, achievements, and leaderboards.
Document IDThe 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).
EntrypointThe first file Wavedash loads inside your upload_dir: an HTML page (.html/.htm) or a JavaScript file (.js). Defaults to index.html; set it in wavedash.toml if your build uses a different filename.
Game IDYour 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 tokenA 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 restartWhat the SDK does when a peer's WebRTC connection flaps. You'll see P2P_PEER_RECONNECTING, then either P2P_PEER_RECONNECTED or P2P_CONNECTION_FAILED.
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 paramsKey/value data passed to your game when it opens, read with getLaunchParams() (available as soon as the game starts; init() isn't required first). 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.
LeaderboardA scoreboard for your game. You pick the name, sort order, and format — your game submits scores through the SDK, and Wavedash handles ranking. See Leaderboards.
Leaderboard entry metadataSmall key/value data submitted alongside a score — the character used, deaths taken — that reads back with the entry. String, number, and boolean values; replaced by each saved score; capped at 16 keys and 2048 bytes. See Attaching metadata.
Load progressThe 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()).
LobbyA 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 hostThe lobby member treated as owner. Only the host can change certain lobby settings, and if they leave, hosting migrates to another member automatically.
Lobby inviteA 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 metadataKey/value data attached to a lobby that all members stay synced on — string, number, and boolean values. The host sets it with setLobbyData; members get LOBBY_DATA_UPDATED when it changes. See Metadata.
Marketplace feeWhat Wavedash takes on each Paid Content purchase and donation: 10% plus a $0.50 flat fee. See Monetization.
P2P channelOne 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 networkingOnce 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.
Paid ContentSomething players buy inside your game. A durable is purchased once and never expires, like a base game or downloadable content; it gates build files, and Wavedash fulfills it. A consumable can be bought repeatedly, and your game fulfills it. You set the price and paywall copy in Developer Portal → Monetization, and your game opens the paywall and handles purchases through the SDK. See Paid content.
PayoutsHow money reaches you. Wavedash pays out through Stripe Connect on the 1st of each month once your team's available balance reaches $20. The team owner connects Stripe under Team → Earnings → Payouts. See Getting paid.
PlayerSomeone with a Wavedash account. They have a username, avatar, friends list, and game library. Your game can read their info with Wavedash.getUser(). See Players.
PresenceStatus and activity the signed-in player exposes to friends, set with updateUserPresence(). See Players.
ProjectA 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.
PromoteAnother word for Publish — choosing which uploaded build players see.
PublishChoosing which build players see when they open your game. Publish a new build to update, or publish an older one to roll back. You can publish from the CLI or the Developer Portal.
SandboxA separate server-side environment for your game's SDK data — leaderboards, achievements, saves — that wavedash dev and playtest builds use, so testing never touches production data.
Secret achievementAn achievement hidden from the player's list until they earn it. Set with --secret on wavedash achievement create, or via the Developer Portal.
SessionThe time between a player opening your game and leaving. Wavedash tracks sessions automatically so you can see how people play.
SlugA short, URL-safe identifier. Your game's slug is the part of its store URL. Renaming the title doesn't change it, but you can edit it under Metadata → Game URL, which breaks existing links. Teams and projects also expose slugs in CLI tables.
StatA number your game tracks per player — things like total kills, distance traveled, or games played. Stats persist between sessions and can automatically unlock achievements. See Achievements & stats.
Stat-triggered achievementAn achievement that unlocks automatically when a configured stat crosses a threshold — no setAchievement() call needed. Wired up with --triggered-by-stat-id and --threshold on the CLI, or via the Developer Portal.
Store pageWhat players see when they find your game: the title, description, cover art, preview video, and tags. You can update it anytime without pushing a new build.
TeamA 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.
UGCUser-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. See User-generated content.
UGC type & visibilityTwo enums on every UGC item. Type classifies it (SCREENSHOT, VIDEO, COMMUNITY, GAME_MANAGED, OTHER). Visibility controls who can see it (PUBLIC, PRIVATE).
upload_dirThe 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 JWTA 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 CLIThe wavedash command-line tool. Authenticates your machine, runs your game locally in the sandbox (wavedash dev), manages teams and projects, uploads new builds (wavedash build push), and publishes uploaded builds (wavedash publish).
Wavedash SDKHow your game talks to Wavedash at runtime. The Wavedash global is injected automatically in the browser; Godot, Unity, and Defold have native bindings, and @wvdsh/sdk-js provides optional typed access in JavaScript/TypeScript projects.
wavedash.tomlA small config file in your project that tells the CLI your game ID, where your build files are, and any engine-specific settings.
WAVEDASH_TOKENEnvironment 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.