> ## Documentation Index
> Fetch the complete documentation index at: https://summer-18f03259-codex-native-multiplayer-entry.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Agent Setup

> Point an AI coding agent at the canonical Summer Engine prompt: build a multiplayer Summer game in GDScript and submit it for review.

<Note>
  This page covers the public Summercraft SDK submission contract. For a supplied native
  multiplayer development build, first read [Native multiplayer development](/knowledge-base/source-status#native-multiplayer-development)
  and the API reference shipped with that build. Public production playback remains not
  live; this does not establish whether your separately configured staging environment
  supports an online test. Do not mix the two integration paths.
</Note>

An AI coding agent can use Summer Engine to build a multiplayer **Summer game** in
**GDScript**, integrate the **Summer SDK**, validate it locally, and submit it through the
live submission API. A human reviews every submission before its catalog status can become
`published`; published catalog status does not make an uploaded game playable yet.

## Point your agent at Summercraft

Paste this into any coding agent:

```text theme={null}
Fetch https://docs.summerengine.com/agent-setup/prompt.md and follow it exactly,
top to bottom. It is the canonical instruction set for building a multiplayer
Summer game in GDScript with Summer Engine and the Summer SDK, then publishing
it to Summercraft.

Context you need before you start:
- Summercraft (https://summercraft.ai) accepts Summer SDK games for review.
  The submission API lives at https://summercraft.ai/api/*; uploaded games are
  not playable on the platform yet.
- You will install and use Summer Engine, build a GDScript-only game that
  extends SummerGame, export a .pck with the Summer Engine binary, and publish it in four
  API calls: create game -> get presigned upload URL -> PUT the .pck ->
  finalize (the server re-verifies your sha256).
- Publishing needs a Summercraft access token in SUMMERCRAFT_ACCESS_TOKEN.
  Build and export first; stop and ask me for the token before the publish step.
  The prompt contains the instructions to show me for getting one.
- Each publish step is limited to 1 request per hour per account, so validate
  everything locally before touching the API.
- After finalize the release is "pending_review" in a manual human review
  queue. There is no auto-publish, and browser/desktop play of uploaded Summer
  games is not live yet - say so honestly when you report back.
- Any docs page is fetchable as raw markdown by adding .md to its URL; the
  index is at https://docs.summerengine.com/llms.txt.

If the prompt URL is unreachable, stop and tell me instead of improvising.
```

The prompt at [/agent-setup/prompt](/agent-setup/prompt) is the canonical, always-current version — served as plain markdown at `https://docs.summerengine.com/agent-setup/prompt.md` so agents can fetch it directly. It contains a complete, export-verified multiplayer game template (king-of-the-hill, host-authoritative, 1–8 players), the local validation steps, the exact publish calls with every error explained, and the honest post-submission status.

## What the agent will do

1. **Check prerequisites** — Summer Engine for local validation/export, `curl`, a sha256 tool, and (only at publish time) your access token.
2. **Build a multiplayer-native game** — `extends SummerGame`, all gameplay authority on server paths, player state via `set_synced`, local SDK stubs so everything parses and smoke-runs without the platform runtime.
3. **Validate locally** — headless smoke run, banned-API self-check, pack-content check. The upload budget is 1/hour, so the prompt front-loads every check.
4. **Export a game-only `.pck`** — the preset excludes stubs and project config; ships GDScript as readable source.
5. **Publish through the live API** — create game → presigned upload → server-verified finalize. See [Exporting and Uploading](/api-reference/summer-sdk/exporting-and-uploading-your-game) for the full reference.
6. **Report honestly** — release `pending_review` in the manual queue; approval changes its catalog status to `published`, but does not make it playable yet. Rejection comes with a reason on [summercraft.ai/creator](https://summercraft.ai/creator).

## The one thing the agent cannot do: sign in

Agents must never handle your password. Create your account and session yourself:

1. Sign up / sign in at [summercraft.ai](https://summercraft.ai).
2. In that tab, open dev tools → Application → Cookies → `summercraft.ai` and find the cookie whose name ends in `-auth-token` (possibly chunked into `.0`/`.1` — concatenate the values in order).
3. URL-decode the value; if it starts with `base64-`, base64-decode the rest. The JSON inside has an `access_token` field — that string is the Bearer token.
4. Hand it to your agent as the `SUMMERCRAFT_ACCESS_TOKEN` environment variable. It expires after about an hour — enough for one publish. Re-extract it when it expires.

There is no dedicated token page yet; this manual step is the current path. The publish API accepts `Authorization: Bearer <token>` on every endpoint.

## Platform status

The release API, browser submission with static scanning, manual review queue, and
authenticated release downloads are deployed. That does not make an approved game playable.

Use the single canonical [Product source & platform status](/knowledge-base/source-status)
table for every Live / Scaffold / Planned decision. It covers playback, hosted servers,
matchmaking, the runtime sandbox, and the transport contract without duplicating a second
status table here. If documentation and reality disagree, trust the API's own error text and
mail [founders@summerengine.com](mailto:founders@summerengine.com).

## For agents reading this page directly

Fetch `https://docs.summerengine.com/agent-setup/prompt.md` and follow it. Every page here is markdown-addressable: append `.md` to any URL. Index: `https://docs.summerengine.com/llms.txt` (or `llms-full.txt` for full content).
