Skip to content

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.