Smart Stats System View on Asset Store (opens in new tab)

Package details

Latest version
1.0.0
Last updated
First released
Unity version
2022.3.0 or later
Package size
177 KB
Files
59
Favorites
2
Views in the past week
11

Price tracking

Last checked
Tracked since
Lowest recorded
$27.99 on

Keywords

Smart Stats System

by RealCut (opens in new tab)

No ratings yet

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.

Price $39.99

Buy on Asset Store (opens in new tab)

Affiliate link · Purchases support this site

Price history

Last 6 months

USD
Price history for Smart Stats System, 6 months Current $39.99; lowest $27.99; highest $39.99 in this period. $0 $25 $50 Oct Nov

Asset preview

1 / 12

Smart Stats System screenshot 1

Smart Stats System screenshot 1

About this asset

Every number in your game comes from somewhere. Attack is 46 because the

character has 20 base, an iron sword adds 20, and Rage adds 15%. Most stat

systems can compute that number. Almost none can tell you afterwards where it

came from.

Smart Stats System is built the other way around. The breakdown is not a debug

feature 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 you

get every stage, every modifier, every source, and exactly what each one

contributed.

THE ORDER PROBLEM

A +15% buff and a +20 sword do not commute. Apply the percentage first and the

sword never gets buffed - the number is wrong, and nothing tells you. Which one

happens first is a design decision, and most stat assets leave it to whatever

order things happened to be added in.

Here it is fixed and documented: base, then flat, then percent-add, then

percent-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 anything

underneath it moves, with cycle detection that prints the path it found.

- Resources - health, mana, stamina - with maximums driven by stats, so a

health bar can explain its own capacity. Regeneration, limits, and a record

of what happened: the potion says 30, the bar moved 12, and here is why.

- Timed effects with four stacking policies and optional pulses, so poison

ticks 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 including

remaining time and stack counts. Loading returns a report that names anything

it could not restore instead of failing silently.

- Authoring in the Inspector. Build a derived stat as a row of steps and the

inspector prints both the formula it produced and the number it gives you

right 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 and

detaches cleanly, and stat requirements that return a reason rather than a

bool - including the full breakdown of the number that fell short.

NO DEPENDENCIES

No packages to install, no third-party libraries, no art, no fonts, no render

pipeline requirement. The core is plain C# with no reference to UnityEngine at

all, which is why the entire system can be verified without entering Play mode

- and why your CI can run it.

ON TESTING

403 tests ship inside the package. Every code example in the documentation is

one of them: if a snippet in the manual says the answer is 46, there is a test

asserting 46. Import the package, open the Test Runner, and run them yourself

on day one.

WHAT THIS IS NOT

Not a combat system. It computes numbers; it does not decide how damage is

applied. Not an RPG kit, not an ability or skill system, not a character

controller, 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 balancing

tools. What is promised is what is proven.

From the publisher's Asset Store listing.

Technical details

- Engine-free core: the entire calculation layer is plain C# with zero

UnityEngine 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, so

float addition and multiplication cannot drift with insertion order.

- Breakdowns produced by the calculation, not reconstructed after it. Value and

breakdown can never disagree.

- Derived stats with dependency tracking, automatic invalidation, and cycle

rejection that names the path.

- Resources with stat-backed maximums, three explicit policies for what happens

to the current value when the maximum changes, regeneration, all-or-nothing

and 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 every

application - including the ones that did nothing.

- Change notification contract: derived stats are invalidated before listeners

are told, and one logical operation announces once per stat.

- Serialization: capture and restore stats, resources, and live effects to a

plain text format you can open in a text editor. Culture-invariant and

round-trip safe. No JsonUtility, no attributes, no dependency.

- Inspector authoring for stats and resources, with validation produced by the

same build path the game uses at runtime - there is no second validator to

drift out of sync.

- Editor windows: Explain the Number (stats, resources, effects, plus a

scratch area) and Check the Scene (scans open scenes, includes disabled

objects, and states what it cannot check).

- Connectors: ModifierBundle returns a handle that removes exactly what it

added, and StatRequirement distinguishes "not met yet" from "this condition

is 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 pipeline

assumptions.

- Unity 2022.3 LTS and newer.

Compatibility

Render pipelines supported in each Unity version
Unity version Built-in URP HDRP Custom
2022.3.0f1 Compatible Compatible Compatible Compatible

This package contains no shaders, materials, textures or any other rendering

assets, and no reference to any render pipeline. It is plain C# plus editor

windows, 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 Pipeline

project. It has no package dependencies of any kind.

As listed on the Asset Store.