Status Effects — Diagnostics¶
This folder contains lightweight performance smoke tests for the Status Effects system.
These scripts are designed to help you:
- spot obvious GC allocations
- profile core apply/tick/recompute paths
- sanity-check time control and controller behaviour under load
They are not gameplay systems, not benchmark guarantees, and not part of the supported runtime API surface.
Contents¶
| Script | Purpose |
|---|---|
StatusPerfSmoke | Smoke-tests core status application through StatusRegistry and StatusEffectController. |
StatusRecomputePerfSmoke | Smoke-tests RecomputePotencyForAll() and RecomputeDurationsForAll() across many active effects. |
StatusAuthorityTimePerfSmoke | Smoke-tests time-mode toggling and custom time-source behaviour. |
Important Notes¶
- These are diagnostics-only scripts intended for profiling in the Unity Editor.
- They use simple synthetic workloads, not production gameplay flows.
- Results will vary depending on:
- number of active statuses
- effect types used
- provider components present
- user-authored integrations and UI
- Clean results here do not guarantee that all custom effects or gameplay code are cheap.
Interpretation Guidance¶
If these smoke tests behave well but your game is still slow, the usual causes are:
- too many active effects on too many targets
- expensive custom effect logic
- heavy UI/event reactions
- extra work in integrations (Health, Movement, VFX, etc.)
- misuse patterns outside the Status core
Use the Unity Profiler as the source of truth.
Key Idea¶
These scripts exist to answer one simple question:
“Are we doing anything obviously stupid under load?”
They are a quick confidence check — not a certification suite.