AI tools: Export, publish and the store
Exporting your game, publishing it, and the asset store. 6 tools. You see every step your AI takes and can undo any of them.
asset_store_install
Install an Asset Store pack into the open project: free packs, or paid packs this account already owns (it never buys). Downloads, checks the checksum and unpacks into Assets/<pack_id>/ (the pack's own folder, so packs never collide), adds its demo scene as Scenes/<pack_id>-<name>, and refreshes the Content panel. Use the files by their paths inside Assets, e.g. "<pack_id>/knight_live/knight_live@2x.png". starter: true installs the packs chosen for new projects (the free Starter Library) instead. HTTP calls return a job_id immediately; read progress and the final result with tool_job instead of repeating the tool.
| Argument | Type | What it does |
|---|---|---|
pack_id | string | From asset_store_search |
starter | boolean | Install the new-project packs (Starter Library) that aren't installed yet |
asset_store_search
Search the Arcwright Asset Store: asset packs of sprites, tilesets, animations, 3D models, materials, sounds, UI and effects (free Starter Library packs and paid packs). Filters: query words, price (free | paid), dimension (2d | 3d), style (pixel, painted, realistic ...), category. Shows each pack's id, price, contents, whether it's owned and whether it's already installed in this project. Install a free or owned one with asset_store_install. Works offline from the cached catalog.
| Argument | Type | What it does |
|---|---|---|
category | string | |
dimension | any / 2d / 3d | |
limit | integer | Default 12 |
price | any / free / paid | |
query | string | Words to match in titles, tags, styles |
style | string |
creator_open
Open the character creator screen in Play for a player (default the first): Body, Face, Skin, Hair, Eyes and Presets tabs with sliders, swatches and Randomize over a turning view of the character; Done wears the look (and the run keeps it). Needs Play running. A project with no game UI gets the minimal one first (the creator is a game UI screen; Play restarts once to show it).
| Argument | Type | What it does |
|---|---|---|
entity | string | The player (name or #id; default the first player). |
export_game
Start one standalone game export. Mac copies the editor's shipped prebuilt player and your game files, checks it from a clean root and signs it (seconds; never compiles). Returns a durable job receipt, not a success claim; poll ui_report with export_job. Web exports a 2D WebGL2 player as index.html, WASM and assets for static hosting. Mac app has its own name/icon and main menu, no editor. Linux uses the existing Deck packaging route over the preconfigured deck SSH connection, in an isolated export workspace; Windows uses the Windows editor’s adjacent native player and saves a durable folder-export receipt.
| Argument | Type | What it does |
|---|---|---|
build | boolean | Default true. Mac exports always use the editor's prebuilt player when it has one (every installed editor does: seconds, no compiler, no source code); true only lets a developer source build compile a player when none exists. False requires a prebuilt player on Mac, or TTR_WEB_RUNTIME with a prepared web player. |
icon | string | Optional absolute .icns/.png file |
name required | string | |
output | string | |
platform | mac / linux / web / windows | |
request_id | string | Stable UUID for retries. Reuse unchanged arguments. |
scene | string | |
sign_identity | string | Mac only: opt-in Developer ID signing identity (hardened runtime). Default: local ad-hoc signature. |
export_web
Export the current (or named) 2D scene as a browser game: one self-contained folder (index.html, TTRWebPlayer.wasm, the page's scripts, game.json and the scene's own files) that any static host serves as a playable link, phone or desktop. Keyboard, touch buttons for the keys the game's scripts read, and gamepads. Returns a durable job receipt; poll ui_report with export_job. Hosting is a separate step (see Platforms/Web/SHARE.md); nothing is uploaded.
| Argument | Type | What it does |
|---|---|---|
build | boolean | Default true: builds the WASM player when no prepared runtime exists. False requires TTR_WEB_RUNTIME or the editor's bundled GameExport/web. |
name required | string | The game's title on its page |
output | string | Folder to write (default: <project>/Exports/<name>.web) |
request_id | string | Stable UUID for retries. Reuse unchanged arguments. |
scene | string |
publish_game
Publish the open game to Arcwright Play (the Arcwright game store), or a new version of a game already there. Packages exactly what the start scene uses, then runs the automatic checks the store requires: the game boots, 30 s of bot play with no script errors, no executable code beyond sandboxed game scripts, size limits. It captures a cover and screenshots from the running game and uploads with the listing. The store re-checks everything; low-risk games go public, others wait for a person. dry_run packages and checks without uploading. content is the age-rating questionnaire (every key required). HTTP calls return a job_id immediately; read progress and the final result with tool_job instead of repeating the tool.
| Argument | Type | What it does |
|---|---|---|
changelog | string | |
content | object | Questionnaire: blood: none|some|gore; drugs: none|reference|use; fear: none|mild|intense; gambling: none|simulated; language: none|mild|strong; online: none|chat; sexual: none|suggestive|explicit; violence: none|cartoon|realistic|intense |
description | string | What the game is, 20+ characters |
dry_run | boolean | |
game_id | string | Existing store game id to publish a new version of |
genre | Action / Adventure / Platformer / Puzzle / RPG / Shooter / Strategy / Simulation … | |
handle | string | Creator handle for the local store's account stub when not signed in (the live store needs the Store tab's sign-in) |
price_cents | integer | |
pricing | free / paid / pwyw | |
scene | string | Start scene; default the open scene |
tagline | string | |
tags | list of string | |
title required | string |