Character workshop settings
The Model settings panel near the top of the character workshop saves, restores
and resets everything you have changed on the loaded model. It is implemented in
src/review/astra-review.ts, with the file format in
src/review/character-workshop-profile.ts.
Export and import
Section titled “Export and import”- Export all settings downloads
planets-<race>-<sex>-workshop.json(orplanets-<base id>-workshop.jsonfor a base without race and sex). The file hasformat: "planets-character-workshop",version: 1, and holds:model: the name, race, sex, form, base id, body id, revision and publication it was made against;settings.character: the full character definition (body, stance, appearance, eyes, fabrics, equipment, name and identity);settings.tuning: every weapon, per-clip and animation adjustment, in theCharacterTuningschema;settings.preview: preview state (clip, time, speed, hands, cloth, wings, camera, inspection toggles);defaults: the published defaults the export is compared with;changes: a readable list of paths that differ from those defaults.
- Exporting also opens Copyable full settings. Some embedded browsers ignore Blob downloads, so the status line only says “Download requested”; Copy all settings gives you the same JSON, falling back to selecting the text for you when clipboard access is refused.
- Import settings parses and validates the file against the loaded source before
applying it. If the body parameters, tuning, clip or camera target are invalid, the
current character is restored unchanged. The
changeslist is recomputed on export and is never applied from an imported file. Files over 2,000,000 characters are rejected.
The Export JSON button in the tuning panel is different: it exports only the
CharacterTuning object (planets-character-tuning.json). The publish command accepts
either file, so a full workshop export is never needed just to publish grips.
Reset and undo
Section titled “Reset and undo”Reset everything returns the model to its published defaults: neutral body and stance, the default eye and skin appearance, the workshop outfit (every available garment slot plus the cape, no weapon), the published tuning profile, and the default preview. The character’s identity UUID is kept. Undo reset restores the state before the most recent reset in this session.
Narrower resets sit next to the controls they affect:
| Button | Resets |
|---|---|
| Reset proportions, and one per body group | body morph values |
| Reset stance | stance and foot pose |
| Reset both eyes / Reset selected eye | eye appearance |
| Reset skin tint | skin tint and detail colour |
| Reset hand states | hand poses |
| Reset equipped items | equipment |
| Reset cloth controls | cape simulation, wind, body movement, cloth backend and quality |
| Reset view & inspection | camera and surface inspection toggles |
| Reset wings | wing design, motion, growth level and fit |
| Reset all fabrics / Reset this fabric | garment fabric choices |
| Reset this weapon | the selected weapon’s grip, including all its per-clip adjustments |
| Reset this animation pose | the current clip’s pose tuning; weapon grips are kept |
Every narrower reset leaves the other groups untouched.
What is saved where
Section titled “What is saved where”- Every edit, reset and import updates the local working drafts (character draft,
tuning draft and per-model preview state in
localStorage). - The player save changes only when you press Save character or Play this character.
- Reloading the workshop restores the character draft, the tuning draft and the preview state for the same base and body revision.
Drafts live in the browser. Export before clearing site data.
Verification
Section titled “Verification”node scripts/verify-workshop-settings.mjs drives the workshop in a headless browser
and checks per-garment fabric reset, eye reset, undo, weapon and animation reset
isolation, full reset,
full export and import, rollback on an invalid import, a suppressed download that still
leaves the complete JSON copyable, and draft reload. It expects a dev server on
127.0.0.1:5187, for example
npx vite --host 127.0.0.1 --port 5187 --strictPort. Screenshots and the report go to
.gear-work/character-validation/workshop-settings/, a local folder that is not part of
the repository.
Written by release:site-sync from docs/character-workshop-settings.md at v2026.09.22. Edit the engine document, not this page.