One table instead of version notes scattered across every page. “Parsed”
means the game accepts the syntax without complaint; “acts” means a shipped
system actually reads it during play. Declare the highest version you rely on
as RequiresEngine in package.xml so the validator checks against it, and
say it in your README, because the game itself does not warn players.
| Feature |
Needs |
Parsed |
Acts |
Content Editor |
Structured packs under resources/packages/ with package.xml |
1.12 |
yes |
yes |
create, edit metadata |
Lowercase resources/ tree (resources/packages/, resources/characters/) |
1.17.1 |
yes |
yes |
follows the game’s layout |
| Drag-and-drop pack install in the Content Manager |
1.16 |
n/a |
yes |
n/a |
Jobs-only packs (manifest plus jobs/) |
1.17.2 |
yes |
yes |
create pack jobs |
ArtStyle= on <Package> and Style= on images (genai included) |
1.17.2 |
yes |
shown when browsing |
edit |
Type="Defaults" packs under packages/defaults/, Type="Addon" reach rules, installer role checks |
1.20 |
yes |
yes |
no (read-only) |
Pack-root image-fallback.xml overlay |
1.20 |
yes |
yes |
no |
RandomGirlNaming / NamePool |
1.15 |
yes |
yes |
shown in the random-template form |
| Feature |
Needs |
Parsed |
Acts |
Content Editor |
Typed <Stat> / <Skill> / <Trait> / <Gold> children in .girlsx |
1.15 |
yes |
yes |
edit |
<Inventory> starting items |
1.15 |
yes |
yes |
no |
Virgin= attribute replacing the Virgin trait |
1.15 |
yes |
yes |
edit |
Multi-token filename inference (preg_foot_01.jpg) |
1.15.5 |
yes |
yes |
shown as inferred tags |
Digits split off words in filenames (Oral1.jpg) |
1.15.7 |
yes |
yes |
n/a |
images.xml manifest (Type, Participants, Pregnant, Futa, TiedUp, Style) |
1.15 |
yes |
yes |
edit |
| Lesbian and group scenes only use participants-tagged art |
1.18.1 |
n/a |
yes |
tag participants |
Interact-menu scenes request act tags (masturbate, spanking, rape, torture…) |
1.19 |
n/a |
yes |
tag types |
Trait InheritChance honoured at birth |
1.18.1 |
yes |
yes |
edit |
| Feature |
Needs |
Parsed |
Acts |
Content Editor |
| `<Effect What=“Stat |
Skill |
Trait |
PregAdvance“>` |
1.12 |
<Effect What="GirlStatus">, Controlled with unequip semantics |
1.18.1 |
yes |
yes |
preserved, not editable |
<When> on a single <Effect> |
1.15.5 |
yes |
yes |
preserved, not editable |
Consumable <use> block, Charges=, <auto_use>, <refusal>, <on_use_count> |
1.12 |
yes |
yes |
preserved, not editable |
<auto_use phase="turn_end" source="either" priority=...>, <HasTrait>, remove_trait |
1.15.6 |
yes |
yes |
preserved, not editable |
<on_use_script> running a pack Lua script |
1.15.6 |
yes |
yes |
preserved, not editable |
<Tag> children read by <HasItemTag> |
1.15.6 |
yes |
yes |
preserved, not editable |
| Feature |
Needs |
Parsed |
Acts |
Content Editor |
.traitsx definitions shipped in a pack |
1.12 |
yes |
yes |
create, edit, move |
<effects> types stat, skill, skill_cap, enjoyment, modifier, delta_cap, preg_duration |
1.12 |
yes |
yes |
edit (modifier and delta_cap preserved) |
<Excludes>, <Implies>, <Categories> |
1.15 |
yes |
yes |
edit excludes and implies |
<MutexGroup> |
1.15 |
yes |
yes |
preserved, not editable |
<OnGenerate> / <Periodic> StateFlag rules |
1.15 |
yes |
yes |
preserved, not editable |
| Feature |
Needs |
Parsed |
Acts |
Content Editor |
Job data directories (job.xml, effects.xml, performance.xml, wage.xml, gains.xml, messages) |
1.15 |
yes |
yes |
metadata fields and pay settings |
Pack jobs under <pack>/jobs/ with <pack>:<folder> ids; message overlays |
1.17.1 |
yes |
yes |
create, metadata, pay, delete |
<DefaultImage> and per-<Text> Image= |
1.15.5 |
yes |
yes |
DefaultImage only |
Participants= on <Text> |
1.18.1 |
yes |
yes |
no |
<Filter> and <Phase> |
1.17.1 |
yes |
yes |
edit |
wage.xml channel="earnings" and <Salary> |
1.19 |
yes |
yes |
edit |
messages/refuses.xml, <RefusalReason>, <Dignity> / <Fear> / <Obedience> |
1.17.1 |
yes |
yes |
no |
messages/banks.xml fragment composition (${pick:...}) |
1.15.6 |
yes |
yes |
no |
<RandomChoice> event branches and <Outcome> in a work bank |
1.20 |
yes |
yes (arena jobs for <Outcome>) |
no |
<Stock>, <BrothelStat>, <HasItemTag>, <HasStateFlag>, <BrothelScratch> leaves |
1.15.6 |
yes |
yes |
no |
<JobState scope="customer"> |
1.15.6 |
yes |
no shipped job establishes a customer scope yet |
no |
<Mod name="work.*"> synergy hooks |
1.15.6 |
yes |
most are placeholders (see the effects reference) |
no |
<GainTrait> / <LoseTrait> with <Curve> and minShifts |
1.15.6 |
yes |
yes |
no |
| Job expectations model (requirements, fit, preparedness) |
not shipped |
no |
no |
no |
| Feature |
Needs |
Parsed |
Acts |
Content Editor |
triggers.xml with Type="Meet" / Type="Talk" and a per-character .lua |
1.12 |
yes |
yes |
no |
wm.create_named_girl, wm.give_player_random_special_item |
1.15.6 |
n/a |
yes |
n/a |
wm.is_tortured / wm.mark_tortured |
1.18.1 |
n/a |
yes |
n/a |
Pack validator on every platform, --autofix, VS Code tasks, scaffold-new-pack.py |
1.15.6 |
n/a |
n/a |
n/a |
WhoreMasterRenewal --video-probe |
after 1.20.0 |
n/a |
n/a |
n/a |
| Gang mission outcome tables |
core only |
n/a |
n/a |
no |
| Building packs |
not an authoring surface |
partial |
core Bank only |
no |
If a feature you rely on is missing from this table, it has not been
verified against a version and should be treated as undocumented.