A stat system that shows its work. Every number explains where it came from - base, gear, buffs, curses - as text or in an editor window. Zero dependencies, 403 tests included.This package contains no shaders, materials, textures or any other renderingassets, and no reference to any render pipeline. It is plain C# plus editorwindows, so the render pipeline in your project does not affect it in any way.It was developed in a URP project and verified in a Built-in Render Pipelineproject. It has no package dependencies of any kind.Every number in your game comes from somewhere. Attack is 46 because thecharacter has 20 base, an iron sword adds 20, and Rage adds 15%. Most statsystems can compute that number. Almost none can tell you afterwards where itcame from.Smart Stats System is built the other way around. The breakdown is not a debugfeature bolted on top, it is produced by the calculation itself, every time.Ask a stat for its value and you get a number. Ask it for its breakdown and youget every stage, every modifier, every source, and exactly what each onecontributed.THE ORDER PROBLEMA +15% buff and a +20 sword do not commute. Apply the percentage first and thesword never gets buffed - the number is wrong, and nothing tells you. Which onehappens first is a design decision, and most stat assets leave it to whateverorder things happened to be added in.Here it is fixed and documented: base, then flat, then percent-add, thenpercent-multiply, then override, then clamp. Same inputs, same result, always,no matter what order you added them in or which frame they arrived on.WHAT YOU GET- Stats with deterministic modifier stacking and live, readable breakdowns.- Derived stats. Max Health = Constitution x 10, recalculated when anythingunderneath it moves, with cycle detection that prints the path it found.- Resources - health, mana, stamina - with maximums driven by stats, so ahealth bar can explain its own capacity. Regeneration, limits, and a recordof what happened: the potion says 30, the bar moved 12, and here is why.- Timed effects with four stacking policies and optional pulses, so poisonticks a resource on its own clock. Stacks are real copies of the modifiers,not a number multiplied by a count, so three stacks of x1.2 are x1.728.- Save and load. Base values, resource balances, and live effects includingremaining time and stack counts. Loading returns a report that names anythingit could not restore instead of failing silently.- Authoring in the Inspector. Build a derived stat as a row of steps and theinspector prints both the formula it produced and the number it gives youright now - without entering Play mode.- Validation before Play. One window walks every character in your open scenes,including disabled ones, and tells you what is wrong in a full sentence.- Two connectors. Equipment as a named bundle of modifiers that attaches anddetaches cleanly, and stat requirements that return a reason rather than abool - including the full breakdown of the number that fell short.NO DEPENDENCIESNo packages to install, no third-party libraries, no art, no fonts, no renderpipeline requirement. The core is plain C# with no reference to UnityEngine atall, which is why the entire system can be verified without entering Play mode- and why your CI can run it.ON TESTING403 tests ship inside the package. Every code example in the documentation isone of them: if a snippet in the manual says the answer is 46, there is a testasserting 46. Import the package, open the Test Runner, and run them yourselfon day one.WHAT THIS IS NOTNot a combat system. It computes numbers; it does not decide how damage isapplied. Not an RPG kit, not an ability or skill system, not a charactercontroller, not a UI framework. It does not own your game loop, your item data,or your save format.Known limits are written out in the FAQ rather than left for you to discover:there are no PlayMode tests, no netcode testing, and no project-wide balancingtools. What is promised is what is proven.- Engine-free core: the entire calculation layer is plain C# with zeroUnityEngine references. Testable, CI-friendly, and portable.- Five-stage deterministic pipeline: base, flat, percent-add, percent-multiply,override, plus a clamp stage. Modifiers are kept in canonical order, sofloat addition and multiplication cannot drift with insertion order.- Breakdowns produced by the calculation, not reconstructed after it. Value andbreakdown can never disagree.- Derived stats with dependency tracking, automatic invalidation, and cyclerejection that names the path.- Resources with stat-backed maximums, three explicit policies for what happensto the current value when the maximum changes, regeneration, all-or-nothingand partial spending, and depleted/filled events that fire on crossing.- Timed effects: four stacking policies, independent expiry and pulse clocks,frame-rate independent tick accounting, and a result object for everyapplication - including the ones that did nothing.- Change notification contract: derived stats are invalidated before listenersare told, and one logical operation announces once per stat.- Serialization: capture and restore stats, resources, and live effects to aplain text format you can open in a text editor. Culture-invariant andround-trip safe. No JsonUtility, no attributes, no dependency.- Inspector authoring for stats and resources, with validation produced by thesame build path the game uses at runtime - there is no second validator todrift out of sync.- Editor windows: Explain the Number (stats, resources, effects, plus ascratch area) and Check the Scene (scans open scenes, includes disabledobjects, and states what it cannot check).- Connectors: ModifierBundle returns a handle that removes exactly what itadded, and StatRequirement distinguishes "not met yet" from "this conditionis broken" when a stat name is misspelled.- 403 EditMode tests included, covering every example in the documentation.- Zero forced dependencies, zero art assets, zero fonts, render pipelineassumptions.- Unity 2022.3 LTS and newer.AI (Claude) was used throughout development as a design, implementation, andreview partner: discussing architectural trade-offs, drafting implementationsand tests, and reviewing code. Every decision and every line was reviewed andaccepted by me before it went into the package.The package is verified independently of how it was written. 403 automatedtests ship inside it, every code example in the documentation is one of thosetests, and the test suite itself was checked with a mutation pass - the codewas deliberately broken, one change at a time, to confirm the tests actuallyfail when the behaviour is wrong. That pass found real gaps three separatetimes.The package contains no AI-generated art, audio, models, textures, or fonts.It contains no art assets of any kind. It makes no calls to any AI service atruntime and has no dependencies.

