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 dashboard and unlock them from your game.
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, listRemoteFiles) — useful for save games, settings, and player progress.
Deferred eventsAn 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 PortalThe browser-based home for your team at wavedash.com/dev-portal. Manage API keys, builds, store pages, pricing, 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 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 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 and then either P2P_PEER_RECONNECTED or — after a few attempts — P2P_CONNECTION_FAILED.
In-game overlayWavedash'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().
Launch paramsKey/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.
LeaderboardA scoreboard for your game. You pick the name, sort order, and format — your game submits scores through the SDK, and Wavedash handles ranking.
Load progressThe 0-to-1 value your game reports during boot with updateLoadProgressZeroToOne() so the platform shell can render its loading bar. 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 metadataArbitrary 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 feeThe percentage Wavedash takes on paid game sales — currently 10%, separate from any payment-processor charges. See Pricing.
Metadata reviewA 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 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.
PayoutsHow 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.
PlayerSomeone with a Wavedash account. They have a username, avatar, friends list, and game library. Your game can read their info with Wavedash.getUser().
PresenceStatus 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.
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.
PromoteThe 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).
PublishChoosing which build players see when they open your game. Publish a new build to update, or publish an older one to roll back.
SandboxA 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 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 and stays fixed even if you rename the title; 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.
Stat-triggered achievementAn 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 pageWhat 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.
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.
UGC type & visibilityTwo enums on every UGC item. Type classifies it (screenshot, video, community, game_managed, other). Visibility controls who can see it (PUBLIC, FRIENDS_ONLY, 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, and uploads new builds (wavedash build push).
Wavedash Dev appThe 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 SDKHow 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.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.