Skip to main content

Submission Checklist

Before uploading:
  • Creator gameplay scripts authored in GDScript
  • Valid manifest.json
  • One exportable .pck package + manifest.json
  • .pck package size at or under 2 GB
  • No banned API usage in GDScript
If your package exceeds 2 GB, contact founders@summerengine.com for large-upload onboarding.

1) Export .pck from Godot / Summer Engine

Use standard export flow:
  1. Open your game project.
  2. Go to Project -> Export.
  3. Choose/create export preset for your build target.
  4. Export and generate a .pck.
  5. Confirm your game includes manifest.json.

2) Static Analysis Scanner Rules (Blocking)

During submission, the platform scans:
  • GDScript files (.gd)
  • embedded scripts in .tscn and .tres
  • reserved infrastructure paths
  • blocked native/binary resource extensions
If scanner violations are found, submission fails with:
  • error: "Static analysis failed"
  • violations: file, line, and blocked pattern
See the complete up-to-date list here:

Important For AI Code Generation

Do not generate “fallback” code paths that use blocked APIs, even if wrapped in conditions. Example of still invalid output:
if OS.has_feature("editor"):
    var f = FileAccess.open("user://debug.txt", FileAccess.WRITE)
The scanner is pattern-based and blocks usage regardless of runtime branch.

3) Upload on playcrafty.games

V1 submission requires two files:
  • .pck as multipart field pck
  • manifest.json as multipart field manifest (file or JSON text)
Authenticated request:
  • POST https://crafty-production-5a7c.up.railway.app/games/submit
  • Authorization: Bearer <supabase_access_token>

Example Request (cURL)

curl -X POST "https://crafty-production-5a7c.up.railway.app/games/submit" \
  -H "Authorization: Bearer <SUPABASE_ACCESS_TOKEN>" \
  -F "pck=@./build/my-game.pck" \
  -F "manifest=@./manifest.json;type=application/json"

4) What Happens During Review

On success, API returns:
  • ok: true
  • gameId
  • submissionId
  • status: "review"
  • scan metadata
Game status lifecycle:
  • review -> waiting for manual/admin review
  • published -> approved and live
  • rejected -> rejected with reason

5) Updating an Existing Game

To update:
  1. Keep manifest.id the same.
  2. Increase manifest.version.
  3. Upload new .pck + manifest.
The platform:
  • updates the game metadata for same creator + slug
  • stores a new version row
  • sets status back to review for that update

Common Upload Errors

  • Missing .pck file (multipart field: pck)
  • Uploaded file must be a .pck
  • Invalid manifest. Required: id, name, version, crafty_sdk, entry_scene, min_players, max_players
  • Static analysis failed (with violations list)