quest'n'click 4.5.0 · r1

Built for quest'n'click 4.5.0, revision r1. Whether it is published, and which one is current, is recorded at publication.json.

Exporting the game and leaving the installation

Français · Type: how-to · Audience: admin · Context: hosted Studio · Status: ready · Applies from: 4.2.3

The Studio Server (hosted team Studio) · contract: experimental · verified by CI (support matrix of 4.4.0, 2026-10-23): Postgres, S3 and Keycloak in CI; Chromium and Firefox (job studio-hosted); WebKit on macOS, by hand only · automated checks: jobs studio-hosted, studio-install-smoke; CI plan studioHosted; 3 test files · people's passes: studio-hosted not run (#149), studio-collab not run (#150), studio-preview not run (#166), studio-assets-hosted not run (#167), studio-mcp-remote not run (#196), studio-oidc-generic not run (#197) · known limits: export-is-files

How to take everything out of a hosted Studio on Clever Cloud: the game's files as a folder you can open in a local Studio, and the rest of the project (members, comments, history) in a form you keep. Then you can delete the installation.

What you get

Context and versions

Prerequisites

Where to run the commands

On your machine, in the engine repository at the studio app's version, with STUDIO_DATABASE_URL pointing at a drill add-on, never at production's.

Steps

  1. Tell the members, and agree on a last write: what is written after the backup of step 2 is in the journal shipped to the bucket, and comes back with the replay, but nobody should keep working on an installation being left.
  1. Take a backup to the bucket (npm run -s studio-server -- backup --to-bucket in clever ssh), then copy the whole bucket to storage of yours with an S3 tool: backups/, sha256/ (the contents) and journal/. A backup without its blobs restores nothing (Backups).
  1. Restore that backup into a new, empty PostgreSQL add-on, following the restore drill steps 2 to 4. You now have a copy of the project that is not production.
  1. Export the game at its head from that copy, into a new folder:

    # on your machine, in the engine repository, STUDIO_DATABASE_URL and the Cellar keys exported as in the drill
    npm run -s studio-server -- export ./my-game-export --config drill.config.json
    

    It writes every file of the head, checks each one's hash against the head (a mismatch stops it: "the content does not match the head"), and writes export-manifest.json (game, epoch, revision, files). Its last line is {"event":"exported","revision":…,"files":…}. It refuses a folder that is not empty.

  1. Open the exported game in a local Studio: copy the folder as games/my-game of a created project (or the engine repository) and run its Studio there (Overview and launch).
  1. If the Studio pushes to a Git repository (git in its configuration), a last push from the Studio gives the same files with their history as commits (The game in Git): keep that repository too.

Limit · export-is-files The export holds the game's files only. Members, invitations, comments, the audit log, personal undo, the previews, the published builds and the prepared assets are not in it; they are in the backup's JSON (step 2), which keeps them readable but which only a Studio Server of the same version restores.

Expected result, and how to check it

export-manifest.json's revision is the head you noted (GET /api/revision before leaving), its files list as many entries as the folder holds, and the local Studio opens the game and validates it.

Common errors

SymptomCauseFix
export: an empty or new folder is requiredThe folder exists and holds filesA new folder
STUDIO_DATABASE_URL (or POSTGRESQL_ADDON_URI) is requiredNo database URI in the shellExport the drill add-on's URI
<path>: the content does not match the headA blob in the bucket differs from what the head namesStop; check the bucket and the Cellar credentials
The local Studio says the game does not loadThe game imports files outside its folder, or the engine version differsUse the engine at the studio app's version

Files or data changed

The export folder and the bucket copy on your side; a drill add-on in Clever Cloud (delete it afterwards). Production is only read, for the backup.

Recovery or going back

Nothing in production is changed. To come back to a hosted Studio later, restore the kept backup and bucket copy into a new installation of the same version (restore drill), or import the exported folder into a new one (npm run studio-server -- import, First deployment): an import starts a new history.

References


Edit the source of this page · Report an error