Stop hard-coding stats. StatSystem is a data-driven stat & attribute framework: you
define your stats as data in a ScriptableObject catalog — id, type, default,
min/max/clamp, category — and one click generates a type-safe StatId enum. No more
editing the package to add a stat, and no stringly-typed access.
Each entity gets its own live stat set from a drop-in component, so 100 NPCs share one
catalog but keep independent values. Works for any genre — RPG, sim, survival, tower
defense, crafting — and any render pipeline, with zero dependencies and full C# source.
Everything is push-based: subscribe to a stat, bind a field with [SubscribeToStat], or
read a live StatRef<T>. Modifiers are additive + multiplicative and source-tagged, so a
buff or a piece of equipment removes cleanly. Collection stats hold inventories. A
generic OnGUI HUD renders any catalog with no hard-coded names.
Seven playable demos (each with an in-scene usage guide that shows the exact API call),
six ready catalogs, an offline RTF manual with a step-by-step guide, and 157 EditMode
tests are included.
Questions or Feedback?
Drop by the Discord channel for direct support, feature requests, or just to show off your game's stat setup! https://discord.gg/wVM3kz44jH