Bring your game to Playmos.
Try it first
Prepare one build for review#
You need An existing browser export and permission to edit your studio game.
- From My Games → Add a game, enter the details, select a browser ZIP and choose Create & test game.
- Test the exact uploaded version on desktop and a real phone.
- Open Review & release to follow the submitted build review and resolve requested changes.
Check your result You can identify the reviewed build and its review state. Approval alone does not publish it.
Already have a browser game? Keep your engine, source and development tools. Upload a ZIP or test your existing URL, play it in the portal, then follow review and release. No agent required.
For Unity, export a Web/WebGL build and ZIP the exported folder with its HTML entry, Build and TemplateData assets. Uncompressed assets, gzip, Brotli and Unity decompression-fallback files are supported. Keep the generated filenames together; do not upload the Unity editor project or a desktop executable.
Add your game → Test a game URL →1. Bring a playable game#
| You have | Start here | Release path |
|---|---|---|
| A browser build folder | Open My Games → Add a game. Enter a name and description, select the ZIP and choose Create & test game. To upload later, choose Create draft. | Playmos hosts the reviewed client build. |
| A game already hosted at a URL | Open Developer tools → Use a URL. Paste the playable page URL, not iframe HTML. | URL testing is available now. New external runtime publication needs Playmos configuration and review; a simulator connection does not create a listing. |
| A game already on Playmos | Open its game project for a replacement ZIP, or Apps & versions → Manage game for a configured-runtime update. | Keep the existing version active while its replacement is reviewed. |
For a ZIP: export your engine’s browser/WebGL build. Put index.html at the ZIP root and keep asset paths relative. Upload client files only; keep servers, private keys and databases on your own backend. See build limits and supported files and engine integration.
For an iframe: serve the game on a separate origin from the portal. Use HTTPS for hosted builds; HTTP is supported only on localhost for development. Your server’s Content-Security-Policy: frame-ancestors and X-Frame-Options must allow the actual portal origin. If the frame is blank, check the browser console and these response headers. A page opening in a browser tab does not prove it permits embedding.
2. Play the exact build#
- For an uploaded ZIP, open the game’s Upload & test tab and preview the uploaded build. Or open Developer tools → Upload ZIP, choose your game draft and select a build.
- For a hosted URL, open Developer tools → Use a URL, enter the URL and select Connect game.
- Choose Phone and Desktop. Play from start to finish, check touch and keyboard controls, win/loss, replay, loading, audio and layout. Confirm assets and any backend requests work inside the frame.
- If you use integration events, open Activity & diagnostics. The adapter instructions are under Connect an older game or add simulator events. Missing events do not by themselves mean the game is unplayable; a frame loading does not prove SDK integration.
Testing on testnet: which test do you need?#
| Goal | Where to go | What proves it worked |
|---|---|---|
| Play my game in the portal | Developer tools → Use a URL, or Upload ZIP for an uploaded game. | A completed playthrough of the chosen build at the target screen sizes. No blockchain transaction is needed. |
| Try an SDK payment | Your first payment, then SDK playground in Base Sepolia mode. | The same saved payment ID verifies with chain provenance and a transaction hash. Offline/mock mode is a simulation. |
| Connect my own payment backend | Manage → Keys & webhooks; use studio test keys and server-side verification. | Your backend verifies the expected player, product and amount, then grants once. Keep secret keys off the client. |
| Test contest rules | Contest testing, then the contest integration guide. | A rehearsal shows expected results only. Paid admission and settlement require separate chain and backend evidence. |
Base Sepolia is the test network (chain ID 84532); payment tests use test USDC. Check Sandbox readiness in the console before SDK testing. If a test needs funds or configuration, resolve that requirement first. A successful free preview is not a payment test, and a testnet payment does not enable live payments.
3. Submit, review and release#
- Open your game project’s Game details tab. Save the details. They are included in the build submission; there is no separate listing approval.
- Upload the final ZIP in Upload & test and test that exact build. The upload submits that exact build for review and opens its private preview; you do not need to submit the listing separately.
- Open Review & release for feedback. Resolve requested changes. If Mo! agent is unavailable, your submitted game is flagged for approval by a Playmos team member. Mo! reviews eligible complete-source game builds and records its decision against the exact build. Issues, unavailable reviews and builds needing human inspection appear in Notifications. Source review does not claim browser playtests or a malware scan. Studio vetting always remains with a live Playmos reviewer.
- When the build is approved and hosting is available, an authorized publisher selects Publish free practice. Keep the publication receipt and open the public game link to verify the release.
For a new externally hosted runtime, Playmos must configure and review the integration before publication. For an existing configured game, use Apps & versions → Manage game → Launch a new version with its configured build URL and exact SHA-256. Playmos completes release verification before activation. See the hosted-runtime update guide.
Paid contests and IAP have their own integration and approval requirements. Start with a free release if you do not need them. See updates, restore and withdrawal for your next version.
If you get stuck#
| What you see | Next action |
|---|---|
| No uploaded builds | Save a game draft first, then upload its browser ZIP in Upload & test. |
| Two uploads already in progress | Keep your selected ZIP. The recovery panel appears beside it: wait for active transfers, or choose Cancel interrupted upload for one of your own interrupted transfers and retry. Ask a teammate to finish or cancel their own transfer. |
| Preview expired or session ended | Reopen the build preview. For an expired sign-in, sign in in another tab before retrying unsaved work. |
| Build approved, but no public game | Open Review & release and publish the approved build. Approval alone does not make a game public. |
| Waiting for Playmos | Read and reply in Review & release with the build or URL being reviewed and the blocker. |
If it did not work#
Keep the failed check and build version together; uploading different bytes requires another build review.
Try one variation Change one asset in a new build. Explain why the earlier approval cannot approve these new bytes.
Continue with the next guide →