How do these three work together?

Written By Philippe Chabot

Last updated About 1 month ago

Three things plug into every entity in a ruleset:

  • Properties describe what the entity is — the data tags. A spell carries SPELL_SCHOOL = Evocation, a longsword carries WEAPON_PROFICIENCY = Martial.

  • Requirements decide when the entity is available to a character. Power Attack requires abilities.strength.total >= 13; Cleave requires having Power Attack already.

  • Modifiers describe what the entity does once it applies. Toughness adds +3 to combat.hp.misc. A +1 longsword adds +1 to items.weapons.longsword.tohit.magic and +1 to items.weapons.longsword.damage.magic.

An entity uses any combination of the three — all three, just one, or none. The system models what fits.

Building Greater Weapon Focus: Longsword from scratch

Greater Weapon Focus uses all three.

PropertyFEAT_FAMILY = Greater Weapon Focus. This tag lets a downstream prestige class that wants "any Greater Weapon Focus" reference feats.greaterweaponfocus.*.possessed in a single requirement, and that wildcard expands to every Greater Weapon Focus variant — Longsword, Greatsword, or homebrew.

Requirements — two leaves AND'd:

  • feats.weaponfocuslongsword.possessed == true

  • classes.fighter.level >= 8

The level-up wizard reads these and greys the feat out for any character that doesn't qualify.

Modifier — one row: target items.weapons.longsword.tohit.misc, operator add, value 1.

A Fighter 8 with Weapon Focus: Longsword qualifies. Once picked, the +1 attack bonus appears on the longsword line of the character sheet automatically.

Building Improved Initiative from scratch

Improved Initiative is a modifier-only feat. No property tag, no prerequisite — just one effect.

Modifier — one row: target combat.initiative.misc, operator add, value 4.

Any character with Improved Initiative gets +4 to initiative on their sheet automatically.

Where the feat shows up in the level-up wizard — the General feat pool, the Fighter Bonus Feat pool — is set by the feat's aptitude link when you create it, not by a property. Properties tag the entity with engine-readable data; the aptitude link decides which pool the engine offers it from.