# Concepts

Core concepts behind AP Timer Suite's design.


# Timer Identity: Gameplay Tags

Each timer is keyed by a Gameplay Tag (example: Timer.Cooldown.Dodge).


# Thresholds

Thresholds are ratios in the range [0..1] representing elapsed progress.

Example: 0.75 fires when 75% of duration has elapsed.

Threshold ratios are treated as data — they are clamped, sorted, and deduplicated automatically. Configure multiple thresholds per timer for granular callbacks (e.g., at 25%, 50%, 75%, and 100% elapsed).

Ratio Meaning
0.0 Timer just started
0.5 Half the duration has elapsed
1.0 Timer has finished

# Replication Model (FastArray)

Timer state replicates via FastArraySerializer delta replication — only changed timers replicate each network update, keeping bandwidth usage minimal regardless of total timer count.


# Server-Authoritative Model

Server                    Client
  |                         |
  |-- StartTimer ---------->|  (replicates via FastArray)
  |                         |
  |-- OnTimerStarted ------>|  (fires on both)
  |                         |
  |-- OnTimerFinished ----->|  (fires on both)

# Late Join (No Replay)

On initial replication, late-joining clients compute which thresholds have already elapsed and set a baseline — prior thresholds are not replayed.


AfterPrime Systems — Building the Gameplay Foundation