A Mewjector mod that exposes
CatData fields to the GON ability system. Formula variables, X_is bindings, and
Conditional_ gates are all usable from .gon.append files with no C code required.
- Install Mewjector v3.0+
- Drop
ExposeCatData.dllinto yourmods/folder - Create a
.gon.appendmod that uses the new variables - Launch the game — check
mod_logs/ExposeCatData.txtto verify
Requires MSVC (Visual Studio Build Tools or full Visual Studio).
cl /LD /O2 /GS- /W3 /D_CRT_SECURE_NO_WARNINGS ExposeCatData.c /Fe:ExposeCatData.dll
Or use build.bat, which auto-detects your VS install via vswhere.
Available anywhere the game evaluates a formula string (damage, cost, tooltip_values, etc.). These read from the casting cat's CatData at eval time.
| Variable | What | Type | Range |
|---|---|---|---|
inbreeding |
Inbreeding coeff | double | 0.0 – 1.0 |
generation |
Generation count | int | 0+ |
sexuality |
Sexuality | double | 0.0 – 1.0 |
aggression |
Aggression | double | 0.0 – 1.0 |
libido |
Libido | double | 0.0 – 1.0 |
lover_attraction |
Lover attraction | double | 0.0+ |
hater_attraction |
Hater attraction | double | 0.0+ |
age |
Cat age | int | 0+ |
For enemies (no CatData), all variables resolve to 0.
Example: damage that scales with aggression:
damage_instance {
damage "aggression * 20"
elements [ Fire ]
}
Custom X_is targets for the ability system. Set in the target block.
Same 8 names as the formula variables.
Doubles are multiplied by 100 and truncated to int (sexuality 0.73 → X=73).
generation and age pass through as-is.
Example: spell damage scaling with sexuality via X:
target {
X_is sexuality
max_range 4+bonus_spell_range
}
damage_instance {
damage "max(X/10,1)"
elements [ Holy ]
}
Tooltip substitution uses {v0}, {v1}, etc. The formulas in tooltip_values
have access to X just like damage formulas.
meta {
desc "Deals {v0} damage based on gayness."
tooltip_values ["max(X/10,1)"]
}
Custom Conditional_ names for ability effect gating. When a conditional fires,
ExposeCatData evaluates it and either applies the child effects or skips them.
These are based on the in-game UI labels applied by the vanilla game.
| Conditional | True when... |
|---|---|
Conditional_IsLover |
Target is the caster's lover |
Conditional_IsHater |
Target is the caster's hater |
Conditional_HasLover |
Caster has a lover |
Conditional_HasHater |
Caster has a hater |
Conditional_IsInbred |
Caster's inbreeding > 0.1 |
Conditional_HighAggro |
Caster's aggression > 0.7 |
Conditional_LowAggro |
Caster's aggression < 0.3 |
Conditional_IsStraight |
Caster's sexuality < 0.1 |
Conditional_IsGay |
Caster's sexuality > 0.9 |
"Caster" is the source entity. "Target" is the owner entity. If either side has no CatData (enemies), the conditional returns false. Else blocks work normally.
Writes to mod_logs/ExposeCatData.txt. Check this file to verify the DLL
loaded and your abilities are being picked up.
- All custom names are registered with Mewjector's namespace registry. If another mod collides, both sides get a warning in their logs.
- CatData fields are static during combat. X_is values are computed once at ability init and remain correct for the full fight.
- Formula variables update every eval, so mid-combat changes to CatData (if any) would be reflected in formulas but not in X.