Skip to content
PEERLESSDocs

Troubleshooting

Fixes for the problems creators run into most often.

The game shows a blank screen

  1. Open the browser console on your game page and look for failed requests.
  2. Check that the entrypoint sits at the ZIP root and that paths match exactly, including letter case.
  3. Make sure assets load with relative paths, not from localhost or your file system.
  4. Test the unzipped build from a local web server, not file://.

A request is blocked

The hosted runtime only allows origins you declared. Add the exact HTTPS or WSS origin to the build's allowed origins and upload a new build. Then allow the game's origin in your server's CORS settings: declaring an origin doesn't configure your server.

Sound doesn't play at first

Browsers block audio until the player interacts with the page. Start or resume your AudioContext from the first click or key press. If players report silence later, check the player's volume and mute control; your game can read it with Peerless.audio.state().

The game doesn't start on its store page

Free games load on their page for signed-in players and guests. Games with managed servers, creator-hosted pages and threaded builds wait for Play on purpose. Paid games always wait for purchase and Play. See Free play and libraries.

Threads don't work

Mark the build Threaded and make sure every cross-origin resource sends Cross-Origin-Resource-Policy or CORS headers. Check crossOriginIsolated in the console of the player page. See Cross-origin isolation.

init() rejects

A rejection inside PEERLESS means the launch was refused or expired; show the message and let the player reopen the game. Outside PEERLESS, init() resolves in standalone mode. If you forced mode: "peerless", also pass parentOrigin.

The SDK changes don't show up

Uploaded releases keep the SDK they were built with. Rebuild with the new peerless-sdk.js, upload a new release, pass checks and review, and activate it.

Keys stay pressed after a panel closes

The SDK releases held keys and pointer lock when a panel opens. Also clear your engine's own input state in your overlay listener, including controllers and touch gestures. See overlay events.

Still stuck?

Check the errors reference, then contact PEERLESS support from your account page with your game, release number and what you tried.