Pack Authoring Kit
Everything a modder needs to start building packs for WM: Crossgate.
Start here: Where packs go covers the two valid drop locations (new structured format under
Resources/Packages/vs. legacy loose files underResources/Characters/) and which one to pick.Want a complete worked example? A complete pack, end to end walks through every file in a minimal one-girl pack.
What a pack is
Section titled “What a pack is”A pack is a folder of files the game loads at startup: one or more girls, plus optional custom traits, items, and images. Packs live under Resources/Packages/ and each pack is its own subfolder.
You don’t need to ship all of it. A girls-only pack, an items-only pack, a traits-only pack, and anything in between are all valid.
What’s in the kit
Section titled “What’s in the kit”where-packs-go.md: which folder to drop your pack into and how the loader picks them up.AUTHORING_GUIDE.md: the walk-through. Read this first if you’re new.reference/editor-setup.md: read this before anything else: VS Code and other IDE setup so.girlsx/.luaediting is not painful.reference/: one-topic pages you’ll keep coming back to:filename-cheatsheet.md: the one-page “what do I name this image” lookupgirlsx-schema.md: fields forGirls.girlsxitems-reference.md: item effect types with examplestraits-reference.md: trait schema and the core trait listimage-types.md: the 86 image types and how fallbacks worklua-scripting.md: script lifecycle, triggers, and thewm.*APIwhen-conditions.md: full<When>condition language for job XML (v1.11+)jobs-reference.md: complete schema reference for job data directories (v1.11+)effects-reference.md: fulleffects.xmlgrammar including the<Mod>registry of synergy hooks (v1.13+)visible-synergies.md: discipline for visible synergies, the four partner-direction shapes, and a worked Bouncer example (v1.13+)gains.md: trait-gain rules — the progress-accumulator schema referenced fromjobs-reference.md<GainTrait>(v1.14+)pricing.md: how the engine derives girl ask-prices and job wages — the formulas behindCost=on items,AskPriceon girls, andwage.xmlon jobs
snippets/: copy-paste skeletons for each pack file.examples/: worked patterns (“I want a potion that does X”, “I have these images, how do I tag them”, common mistakes).complete-pack-walkthrough.md: end-to-end walkthrough of a minimal one-girl pack: every file, every line, why each one is therejobs-cookbook.md: three worked job recipes: pure-effect, performance+wage, parameterized multi-slot (v1.11+)unique-scenes-cookbook.md: personality-, status-, and named-girl-gated scenes via<When>and the<Girl name=>leaf (v1.15+)
tools/: a pointer topack-validator.exeand how to run it.
Where the real samples live
Section titled “Where the real samples live”The kit doesn’t duplicate content that already ships with the game. Seven sample packs sit under Resources/Packages/ covering every pattern:
| Folder | Shows |
|---|---|
Sample_Full | Everything in one pack (girls, traits, items, random templates) |
Sample_GirlsOnly | Girls and images only |
Sample_ItemsOnly | Items with no girls |
Sample_TraitsOnly | Traits with no girls |
Sample_WithDeps | A pack that requires another pack |
Sample_Addon | An addon extending another pack |
Sample_Building | A building definition pack |
Read these alongside the kit. Every field you see in a snippet is used for real in one of them.
Note: 1.14 ships the Arena as a built-in engine building (combat, crafting, and support jobs). It’s not a pack and doesn’t appear under Resources/Packages/; the Sample_Building pack remains the template for player-authored building packs.
The authoritative spec
Section titled “The authoritative spec”This kit is the friendly version. If anything here turns out to be wrong in the engine, tell us and we’ll fix it.
Tag editor
Section titled “Tag editor”The Rust authoring tool (Content Manager) includes a tag editor for per-girl images. Open a girl in Content Manager, then go to the Images tab to see every image with inferred tags pre-filled. You can override any tag and save; the tool writes a minimal images.xml covering only the entries that differ from inference. If every image matches inference, the tab shows a “no manifest needed” notice and Save is disabled.
Feedback
Section titled “Feedback”If something in this kit was wrong, confusing, or missing, open an issue or tell us on the patron Discord. The kit improves when modders push back.