#
Quick Start Guide
AP Timer Suite is a lightweight, multiplayer-correct timer system built around a single replicated component that manages many timers identified by Gameplay Tags. It supports server-authoritative countdown timers, pause/resume, looping, threshold events, late-join safety, and an optional UMG inspector overlay.
API Reference Concepts View on FAB
#
1. Install
Purchase and install via the FAB Marketplace. The plugin will be available in your Epic Games Launcher library.
Copy the plugin folder into your project's Plugins/ directory:
YourProject/Plugins/AfterPrimeTimerSuite/
- Enable the plugin in Edit → Plugins and restart the editor.
- Ensure Gameplay Tags are enabled and your required tags are registered (Project Settings → Gameplay Tags).
#
2. Add the Component
Add AP Timer Suite Component to a replicated Actor.
Replication Required
The owning Actor must have Replicates enabled for multiplayer use.
#
3. Authority Rules
Critical — Read This Before Writing Code
Only the server should start/stop/pause/resume timers.
Clients should read replicated state (queries/snapshots) to drive UI and respond to replicated transitions. Never call mutation methods from a client without a Server RPC.
#
4. Minimal Server-Authoritative Countdown
On the Server (authority only):
- Call
AddTimer(TimerTag)to register the timer entry. - Call
StartTimerSimple(TimerTag, Duration, StartDelay, bLooping)to start it.
On both Server and Clients:
Bind to OnTimerStarted, OnTimerThresholdReached, and OnTimerFinished to drive gameplay and UI responses.
Do Not Gate Event Binding
Bind delegates on both server and client unconditionally. Do not wrap bindings inside HasAuthority() checks.
#
5. Advanced Start (Thresholds, Range, Delay)
- Build the advanced params struct (refer to the API Reference for field names).
- Configure:
- Duration or enable UseRange for a randomized Min/Max duration
- ThresholdRatios — e.g., fire events at 25%, 50%, and 75% elapsed
- Optional: StartDelay, bLooping
- On the Server, call
StartTimerAdvanced(Tag, Params).
#
6. Late-Join Behavior
Late-joining clients automatically compute an elapsed baseline so previous thresholds do not replay, while future thresholds still fire correctly.
UI on Late Join
Client UI should use snapshot/query functions (GetTimerSnapshot, GetRemainingTime) to display current state — do not rely on catching all events from the start.
#
7. Verify Quickly (Recommended)
- Set up PIE: Dedicated Server + 2 Clients.
- Start a timer on the server.
- Connect a client late (or restart a client mid-timer).
- Confirm remaining time and threshold state match expectations on all clients.
#
Next Steps
- Concepts — timer identity, thresholds, replication model
- API Reference — full method and event documentation
- Troubleshooting — common issues and solutions
- UI Inspector — debug overlay setup
AfterPrime Systems — Building the Gameplay Foundation