Gamehub
Make yourself at home.

Sign in to your Playmos account.

For developers
and publishers
Appearance
Developers Host and publish your game
Documentation Host and publish your game

Upload your game. Playmos hosts the client; you keep your backend.

Publish free practice from the publisher workspace without a repository checkout.

From draft to playable listing#

  1. Create a draft and choose Free practice · no contest required. Add the name, description and preview art, then save.
  2. ZIP your browser build with a root index.html and relative asset paths. In Hosted practice builds, upload it, declare the entry HTML, optional practice query and public HTTPS score/API origins.
  3. Run draft checks and submit. Preview the exact uploaded build at Phone and Desktop sizes.
  4. Playmos reviews the draft and exact build. An independent reviewer records security scan evidence, both playtests, backend score calls, lifecycle signals and practice-only behavior.
  5. With approval, select Publish free practice. The publication receipt identifies the exact artifact and environment. The game then appears in the Hub catalog.

Practice needs no paid contest, treasury or payment receipt. IAP is disabled for this track. ZIP checks validate structure and a limited credential heuristic; they do not constitute a malware scan or game test. Hosting must be configured on the Hub before publication is available.

ZIP and hash contract#

ItemRequirement
Build SHA-256The exact uploaded ZIP bytes. Not a script, HTML file, tarball or unpacked folder.
Limits10 MB ZIP, 20 MB expanded, 512 entries. Standard stored/deflated ZIP.
Client filesHTML, JS, CSS, JSON, WASM, images, fonts, audio/video. Relative paths; bundle dependencies. Workers are disabled.
ExcludedServer source, hidden files, links, credentials, source maps, encryption and ZIP64.
ManifestZIP hash plus every file hash/size/path, entry/query, backend origins, listing and practice mode.

Your score server stays yours#

Keep replay validation, scores, database and private SDK/operator credentials on your backend. Declare its exact public HTTPS origin for browser connections and configure CORS for the exact UUID origin of each reviewed build. Hosted builds use separate origins to isolate studio storage and private preview cookies. API sessions must work with browser cross-site restrictions. The Hub does not run your server code. Use SDK/lab hooks at real ready/start/end and server-confirmed score boundaries; browser events do not prove scores or payment.

For Lane Crash, preserve ?host=playmos. Launch and separate-game URLs also include playmosMode=practice. The reviewer must verify that practice actually disables money features.

Compete and contest control#

Studio-owned games and pools are the intended model. This practice flow does not enable Compete; the current paid launch switch remains limited to configured first-party games. A studio release needs SDK game/pool/treasury binding, reviewed terms and complete paid-admission, settlement, fee-routing and withdrawal proof before paid enablement. Integrate the SDK entry popup/forms or your in-game entry with a trusted score backend. Proposed winner shares are not payout proof.

Your studio proposes entry price, duration, board and prize shares. Approval covers recurring rounds under that plan. A new price, duration, split or pool requires a new reviewed plan/series for future entries; existing rounds retain their terms. Contest plan review is separate from build review, so a terms-only change does not require identical client bytes to be uploaded again.

Updates and recovery#

Upload an updated ZIP on the approved draft and obtain a new exact-build review. The previous build stays active until replacement. Restore a previously published approved build or withdraw the listing from the same panel. Changed listing declarations need a new draft review. Use the existing preview artwork; extra icon/screenshots/tagline are optional presentation work.

One-hour sessions#

Sessions last one hour without sliding renewal. The draft editor warns five minutes before expiry. Keep your form tab open, sign in in another tab, then retry saving. Failed saves retain the current form in that tab; refreshing or closing it can lose unsaved changes.

Keep buildingYour first payment