Before you submit
- Creator gameplay scripts authored in GDScript
- Valid
manifest.jsonat the pack root - Entry scene root
extends SummerGame - No banned APIs or reserved paths
- Local testing passes
The two deployed submission paths
Path A — the release API (recommended; agents and CI)
Four JSON/HTTP calls againsthttps://summercraft.ai: create game → presigned upload URL → PUT the .pck → finalize with server-side sha256 verification. Artifact limits: 1024 bytes – 512 MiB. Each write step is limited to 1 request per hour per account.
Full request/response reference: Exporting and Uploading Your Game. Agent bootstrap: /agent-setup.
Path B — the browser submit page
Go to summercraft.ai/submit signed in, and upload two files:- the
.pck(multipart fieldpck) manifest.json(multipart fieldmanifest, file or JSON text)
- auth and creator identity,
- required manifest fields and basic typing,
- max upload size (2 GB on this path),
- automated static analysis of
.gdfiles and scripts embedded in.tscn/.tres: banned APIs, reserved paths, blocked binary/native extensions. Failures returnerror: "Static analysis failed"with aviolationslist (file, line, pattern).
ok: true, gameId, submissionId, status: "review".
The static scanner is pattern-based. A banned API inside a dead branch, an editor-only check, or a comment-adjacent string still fails. Do not generate “fallback” code paths that use blocked APIs. On Path A there is no automated scanner at upload time — the same rules are enforced by human review instead, so a violation costs you a review round-trip rather than an instant error.
Review lifecycle — both paths
Every submission is reviewed by a human. No auto-publish.
On Path A, approval re-verifies the stored artifact against the checksum pinned at finalize
before the game’s active version moves — verification at upload is not trusted at approval
time. A rejected update leaves the previously approved catalog release active.
Honest status: approval publishes your game on the platform and makes its release
downloadable through the authenticated
download endpoint. Playing
uploaded Summer games in the browser or desktop shell, and hosted dedicated game servers,
automatic matchmaking, and the runtime sandbox are not live yet — do not tell players
otherwise. See the canonical
platform capability status.
Updating an existing game
Released versions are immutable.- Keep
manifest.id(and on Path A thegameId) stable. - Bump
manifest.version; on Path A pass the same new version string to upload-url and finalize. - Re-export and re-submit.
Common submission errors
Path A errors are self-describing JSON ({ "error", "detail" }) — the detail names the fix. The full table is in Exporting and Uploading. Path B errors:
Missing .pck file (multipart field: pck)Uploaded file must be a .pckPCK file too large (... max 2GB)— trim assets, or contact founders@summerengine.com for large-upload onboardingInvalid manifest. Required: id, name, version, summer_sdk, entry_scene, min_players, max_playersStatic analysis failed(with violations list)
Previous: Export and upload
Return to pack creation and the release API reference.
Next: Update an existing Summer game
Keep the identity stable, bump the version, retest, and resubmit.

