CrimsonCombatText · Lesson 3 of 8
Create the Motion Set & Style Registry
Before you start
- Completed: Enable the Plugin
Chapters
1. Create both assets
Content Browser → right-click → Crimson → Combat Text. Make a Motion Set (DA_CrimsonCombatTextMotions) and a Style Registry (DA_CrimsonCombatTextStyles), then set the registry's MotionSet to the motion asset. The motion set arrives pre-seeded with five editable presets — FloatUp, ArcOut, Burst, CritPunch, Static — so it's usable immediately.
DefaultCrimsonCombatText.ini already points at DA_CrimsonCombatTextMotions and DA_CrimsonCombatTextStyles — match the names and you can skip the settings step entirely.2. Add a style
In the registry, add a row to `Styles` keyed by the tag your gameplay code sends — Damage is the obvious first one. Set its MotionPreset to CrimsonCombatText.Motion.ArcOut and leave the rest at default. DefaultStyle catches anything unmatched.
Damage.Fire.Burn falls back to Damage.Fire, then Damage, then DefaultStyle. You author only the specificity you care about — one Damage row already covers every damage type.3. Modifiers, not more rows
Conditions that cut across types — Crit, Blocked, Absorbed — go in `Modifiers`, not in Styles. Every modifier whose key is present in the event's tags layers onto whichever style matched, in ApplyOrder: a FormatWrapper can wrap the text ("{0}!" turns 123 into 123!), and a MotionPresetOverride can swap the motion wholesale — point a Crit modifier at CrimsonCombatText.Motion.CritPunch and every crit punches, whatever it hit.
Damage.Fire.Crit, Damage.Ice.Crit, and so on forever. With them it grows as styles + conditions. If you need a genuine query with priorities, AdvancedRules is still there and wins outright when it matches.