Before you start
- The game folder your previous deploy was linked from. In a fresh checkout, link the folder to the game first.
- A signed-in CLI, or a creator token with access to that game.
Ship an update
1
Deploy a new private preview
2
Play it in your private preview
Confirm that the preview’s release ID is the one you mean to submit.
opengame status --watch shows its checks and review state.3
Submit that release for review
4
Wait for approval
When a reviewer approves and publishes the release, it replaces the live one.
Keep edits made on the website
The game’s title, description, cover and the other product fields can be edited on opengame.io as well as inopengame.json. A reviewer can also correct a game’s kind, for example from game to mod, and opengame pull brings that into opengame.json like any other edit. The server keeps a revision number for them, and .opengame/project.json records the revision of your last deploy or pull.
- Keep the website’s values. A plain
opengame deploydoes this. When the website is newer, the deploy still succeeds and lists the fields it kept. - Bring them into
opengame.json. Runopengame pull. It keeps your build and SDK settings and, when anything changed, backs up the old file to.opengame/manifest-before-pull.json. A cover lands inopengame-assets/; commit it. Pull only after any deploy from this folder has finished. - Replace them with yours. Run
opengame deploy --metadata=local.
Link a new checkout
.opengame/ is git-ignored, so a fresh clone is not linked, and deploying it unlinked creates a second game. Clone the repository, then find the game’s ID with opengame games and link the folder to it:
Deploy from CI
1
Make a deploy-only token pinned to the game
2
Set the job's variables
Store the token as a CI secret and expose it to the job as
OPENGAME_TOKEN. Set OPENGAME_API_URL to the internal origin.3
Link and deploy from the game folder
Link each fresh checkout before deploying:Use the game ID you pinned the token to. A game-restricted token cannot create a different game from an unlinked checkout.
submit scope, and certifying always happens in a person’s browser. A token made in settings does not expire, so revoke it in settings when you are done. Only a token from opengame login lapses, after 90 days without a request. opengame token revoke --id <id> opens that page.
Know what is kept
When a release’s bytes are deleted, its record stays as history with its check results.
Fix a problem
The deploy kept the website's title or cover
The deploy kept the website's title or cover
The game was edited on opengame.io after your last deploy or pull. Run
opengame pull to bring those values into opengame.json, or deploy with --metadata=local to replace them with yours.Pull stops because a deploy is unfinished
Pull stops because a deploy is unfinished
The error is
deploy_in_progress. This folder has an unfinished deploy. Run opengame status, let that deploy finish, then pull.A second game appeared
A second game appeared
The folder was deployed unlinked, which linked it to a new game. Run
opengame link --game <id> --replace with the original game’s ID before the next deploy.Link stops because the folder is linked to another game
Link stops because the folder is linked to another game
The error is
already_linked. This folder is linked to another game. Add --replace to link the one you selected.CI cannot submit
CI cannot submit
A deploy-only token cannot submit. Give the job a token with the
submit scope, or submit from your own signed-in CLI. Either way, a person certifies in a browser.Where next
Enter a jam
Submit a release, pick a track and certify it.
Read the CLI reference
Look up every flag for deploy, pull, link and token.