Before every release
Games with a server
- Your server starts its server scene. See check 1.
- Online join works with the version you release. See check 2.
Games with online play
- Players can find online play without changing a setting, or you decided on purpose that they can’t. See check 3.
- Online progress is saved by your server, not only on the player’s device. See check 4.
- Players can get back to the title from inside the game. See check 5.
Every game that uses Summer
- Your game doesn’t hard-code its Game ID. See check 6.
The checks
Run the checks on the file you upload: your summer.games.zip. Export it
as usual, in the editor (Project → Export, the summer.games preset) or
with your agent, and take the server out of it:
.zip fails.
1. Your server starts its server scene
Summer starts your game’s server with no scene named. The server pack’s own main scene decides what runs. Your server preset carries the custom featuresummer_authority, and project.godot sets that feature’s main scene to
your server scene:
project.godot
export_presets.cfg (your server preset)
summer_authority, the server starts your
players’ main scene instead, usually the title screen. That scene never
tells Summer the server is ready, so every online join fails.
Check it. Start the server from your .zip the way Summer does, with no
scene named:
<summer> is the Summer Engine executable. Stop it after a few seconds and find the first Completed load for: 'res://…tscn' line. It
must be your server scene, such as res://authority/main.tscn. If it shows
your title or client scene, add summer_authority to the server preset’s
Custom Features and export again.
Local Play always starts your server scene by name, so a game can work
there and still fail this check.
2. Join online with the version you release
The check above runs on your computer. Players use a hosted server, so also test there: right after you promote a new version, open your game in a Summer Games app, join online and play until you’re in the game. Do it before you tell players about the update. If the join fails, see Players can’t join online.3. Players can find online play
A new player should reach online play without changing a setting. If online play is off by default, for example behind a grown-ups setting, make that a deliberate choice. Then join online yourself before every release, because no player will find it broken for you.4. Your server saves online progress
In online play, your server saves each player’s progress with player progress and loads it when they join. Progress kept only on the player’s device is lost when they reinstall or switch device, and players can edit it. To test, play online, earn something, leave, then join from another device.5. Players can get back to the title
Inside a game, players need a way back to the title screen, such as a pause menu or a Leave button, online and offline. Without one, the only way out is to close the app.6. Your game doesn’t hard-code its Game ID
Start Summer with no Game ID:.zip is
portable, so its summer.build.json has no gameId. If your code reads
gameId from that file and falls back to a made-up ID such as
"game.my-game", the hosted server refuses it with
game_identity_mismatch. Your server then stops before it is ready, and
players’ online joins fail. The Summer Games app refuses it the same way.
Check it. Search your project for Summer.initialize. Every call passes
no ID, or an ID your game received from Summer, never a fixed string or a
fallback. Then join online with the released version (check 2). Local Play
and a local run of server.pck don’t run under a hosted identity, so they
can’t catch this.
Troubleshooting
Players can’t join online
Every online join waits and then fails withworld_start_timeout, while the
game works in Local Play.
Most likely causes:
- Your server pack starts the wrong scene. Run
check 1. If it loads your title or
client scene, add
summer_authorityto your server preset’s Custom Features, export a new version, upload it and promote it. - Your game passes a fixed Game ID. Run
check 6. Call
Summer.initialize()with no ID, export a new version, upload it and promote it.
Ask your agent
Check my game is ready to release. Your agent runs every check on this page and tells you what fails.
Does this not help you? Reach out on Discord!

