Submission Checklist
Before uploading:- Valid
manifest.json - Exported
.pck - No banned API usage in GDScript
1) Export .pck from Godot / Summer Engine
Use standard export flow:
- Open your game project.
- Go to Project -> Export.
- Choose/create export preset for your build target.
- Export and generate a
.pck. - Confirm your game includes
manifest.json.
2) Static Analysis Scanner Rules (Blocking)
During submission, platform API scans.gd files in your .pck.
The following patterns are blocked:
| Blocked Pattern | Why It Is Blocked |
|---|---|
OS.execute | Prevent arbitrary process execution on servers. |
OS.shell_open | Prevent shell/URL process escape vectors. |
OS.create_process | Prevent unmanaged process spawning. |
FileAccess | Prevent uncontrolled filesystem reads/writes. |
DirAccess | Prevent directory traversal/manipulation. |
HTTPRequest | Prevent untrusted outbound network calls from game scripts. |
HTTPClient | Prevent low-level custom network egress from untrusted scripts. |
JavaScriptBridge | Prevent browser-context escape/injection surface. |
ClassDB.instantiate | Prevent dynamic instantiation bypassing allowed surfaces. |
Thread.new | Prevent unmanaged concurrency abuse and sandbox evasion patterns. |
error: "Static analysis failed"violations: file, line, and blocked pattern
3) Upload on playcrafty.games
V1 submission requires two files:.pckas multipart fieldpckmanifest.jsonas multipart fieldmanifest(file or JSON text)
POST https://crafty-production-5a7c.up.railway.app/games/submitAuthorization: Bearer <supabase_access_token>
Example Request (cURL)
4) What Happens During Review
On success, API returns:ok: truegameIdsubmissionIdstatus: "review"scanmetadata
review-> waiting for manual/admin reviewpublished-> approved and liverejected-> rejected with reason
5) Updating an Existing Game
To update:- Keep
manifest.idthe same. - Increase
manifest.version. - Upload new
.pck+manifest.
- updates the game metadata for same creator + slug
- stores a new version row
- sets status back to
reviewfor that update
Common Upload Errors
Missing .pck file (multipart field: pck)Uploaded file must be a .pckInvalid manifest. Required: id, name, version, crafty_sdk, entry_scene, min_players, max_playersStatic analysis failed(with violations list)

