Publishing

Publish a Game

Publishing puts your game on the Metaloot portal where players can discover and play it. There are two paths: deploy to Metaloot hosting with the CLI (recommended — hosting, auth, and multiplayer in one command), or register an externally hosted game and add Sign in with Metaloot to it.

Path 1: Deploy on Metaloot#

The CLI creates the portal listing for you on first deploy — there is no separate registration step:

npm install -g @metaloot/cli
metaloot login
metaloot deploy        # from your game folder

You get:

  • Instant hosting at https://<your-game>.metaloot.app on a global CDN.
  • Sign in with Metaloot built in — the game page and domain are wired to OAuth automatically; await window.metaloot.session just works.
  • Multiplayer ready — rooms are live at /mp/rooms/<roomId> on your domain.
  • Atomic updates — re-run metaloot deploy any time; new versions go live in seconds.

The /publish page on the portal walks through these exact steps with your account signed in.

Path 2: Register an External Game#

If your game is hosted elsewhere, create its portal page from the form on /publish:

Game TitleRequired, up to 80 characters.
DescriptionRequired, up to 500 characters.
Game URLOptional. If provided, Metaloot immediately issues OAuth credentials for the game and derives the redirect URI from it: <your-url>/auth/metaloot/callback.
TagsComma-separated, lowercased, up to 5.

With a URL set you receive a client ID (mtl_client_…) and a client secret (mtl_secret_…) shown once — copy it immediately. The result screen also includes a pre-filled integration prompt you can paste into a coding agent to wire up @metaloot/auth end to end. Without a URL, the game page shows a coming-soon Play button until you either set a URL or deploy with metaloot deploy --game <game-id>.

Game Settings#

Every game has an owner-only settings page at /game/<id>/settings:

  • Game details — edit the name (80 chars) and description (1000 chars).
  • Game URL & playable toggle — change the hosted URL (the auth redirect URI is re-derived and re-synced automatically) and control whether the Play button is live.
  • Publish & sign-in— the deploy command for this game, an "Enable Metaloot Auth" button for external games, the credentials card (client ID, redirect URIs, one-time secret), and the agent integration prompt pre-filled with your values.
  • Analytics — plays and sign-ins at /game/<id>/analytics.
Client secrets are shown once at issuance and stored hashed — if you lose one, rotate it from the game settings rather than hunting for the old value.

Listing Tips#

  • Games are discovered from the portal home and topic pages — accurate tags matter.
  • Keep the description focused on what the player does in the first minute; it doubles as the social embed text for shared links.
  • Upload media on the game page — a good cover image is the single biggest driver of plays.