Skip to content

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 under Resources/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.

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.

  • 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 / .lua editing 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” lookup
    • girlsx-schema.md: fields for Girls.girlsx
    • items-reference.md: item effect types with examples
    • traits-reference.md: trait schema and the core trait list
    • image-types.md: the 86 image types and how fallbacks work
    • lua-scripting.md: script lifecycle, triggers, and the wm.* API
    • when-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: full effects.xml grammar 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 from jobs-reference.md <GainTrait> (v1.14+)
    • pricing.md: how the engine derives girl ask-prices and job wages — the formulas behind Cost= on items, AskPrice on girls, and wage.xml on 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 there
    • jobs-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 to pack-validator.exe and how to run it.

The kit doesn’t duplicate content that already ships with the game. Seven sample packs sit under Resources/Packages/ covering every pattern:

FolderShows
Sample_FullEverything in one pack (girls, traits, items, random templates)
Sample_GirlsOnlyGirls and images only
Sample_ItemsOnlyItems with no girls
Sample_TraitsOnlyTraits with no girls
Sample_WithDepsA pack that requires another pack
Sample_AddonAn addon extending another pack
Sample_BuildingA 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.

This kit is the friendly version. If anything here turns out to be wrong in the engine, tell us and we’ll fix it.

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.

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.