# Changelog

AfterPrime Systems

All notable changes to this product will be documented in this file.
Format follows Keep a Changelog.


# [1.0.0] — 2026-03-10

# Initial Release

# Core System

  • Server-authoritative StatusFX component (UAP_StatusFXSuiteComponent) with full replication support.
  • FastArray delta serialization for bandwidth-efficient effect state replication.
  • Late-join state reconstruction — clients joining mid-game receive correct effect state.
  • TimerManager-based duration and tick engine — no Tick dependency.

# Effect Definitions

  • UAP_StatusEffectDefinition data asset — designers create and configure effects in the Content Browser with zero code.
  • Three duration types: Timed, Infinite, Instant.
  • Configurable tick intervals for periodic effects (DoTs, HoTs).
  • Per-definition interaction rules: RemovesEffectsWithTags, BlockedByEffectsWithTags.
  • Per-definition immunity grants on expiration.
  • Icon property for UI integration.
  • Editor validation warnings for invalid configurations.

# Stacking System

  • Five built-in stacking policies: None (Refresh), Stack Duration, Stack Intensity, Independent Instances, Custom Resolver.
  • Per-definition MaxStacks cap.
  • Global MaxIndependentStacks safety cap via Project Settings.
  • UAP_StackingResolver abstract base class for Blueprint-extensible custom stacking logic.

# Event System

  • Six BlueprintAssignable delegates: OnEffectApplied, OnEffectRemoved, OnEffectRefreshed, OnEffectStackChanged, OnEffectTick, OnEffectExpired.
  • Delegates fire on both server and client where applicable.
  • Snapshot data provided with Applied and Tick events for immediate UI consumption.

# Query API

  • HasEffect, HasEffectMatchingQuery, IsImmuneToEffect.
  • GetStackCount, GetActiveEffectCount, GetRemainingDuration, GetElapsedTime, GetRemainingRatio.
  • GetEffectSnapshot, GetAllActiveEffectSnapshots, GetEffectSnapshotsByQuery, GetActiveEffectTags.
  • All queries work on both server and client via replicated state.

# Immunity System

  • Tag-based temporary immunity with configurable duration.
  • Automatic immunity grants from interaction rules (DataTable).
  • Automatic immunity grants on effect expiration (per-definition).
  • Manual GrantImmunity/RevokeImmunity API.

# Interaction Rules

  • Per-definition tag-based removal (RemovesEffectsWithTags).
  • Per-definition tag-based blocking (BlockedByEffectsWithTags).
  • DataTable-driven interaction rules with immunity grants via Project Settings.
  • Supports mutual cancellation patterns (e.g., Frozen/Burning).

# Blueprint Integration

  • 100% of functionality accessible via Blueprint nodes.
  • UAP_StatusFXBlueprintLibrary with 5 static helper functions.
  • IAP_StatusFXSuiteTarget interface for standardized component lookup.
  • UAP_StatusFXSettings for project-wide configuration via Project Settings.
  • Organized Blueprint categories under AP > StatusFX.

# Demo Content

  • 31 effect definitions across Buff and Debuff categories.
  • 6 core effects: Poison, Regeneration, SpeedBoost, Burning, Frozen, Shield.
  • 25 extended effects: Bleed, Blind, Charm, Confusion, Curse, Disease, Fear, Petrify, Shock, ShieldBreak, Silence, Sleep, Slow, Stun, Weaken, Antidote, ArcaneIntellect, Beacon, Fortify, Innervate, Invulnerability, Renew, Reveal, Stealth, Strength, Thorns.
  • 64x64 PNG icons for all effect types.
  • DataTable with example interaction rules.
  • Demo character with keyboard-triggered effects and Server RPCs.
  • Buff bar UI with icon display, countdown timers, and stack count overlay.
  • Effect trigger volumes (overlap-based application with optional reapply timer).
  • Effect dispenser actors (interaction-based buff granting with single-use option).
  • Fully built demo map with labeled zones showcasing all features.
  • GameMode Blueprint for plug-and-play demo testing.

# Documentation

  • Quick Start Guide — 5-minute integration walkthrough.
  • Full API Reference — all classes, methods, delegates, enums, and structs.
  • Changelog with version history and roadmap.

# Technical

  • Two modules: APStatusFXRuntime (shipping) and APStatusFXEditor (editor-only).
  • 21 source files (10 headers, 11 implementations).
  • Gameplay Tag registration via plugin Config/Tags/StatusFXTags.ini.
  • UE 5.7+ compatible. Windows platform support.
  • All file paths under 170 characters from plugin root.
  • Copyright notices in all source files.

# Known Limitations (v1.0)

  • Client removal reason: Clients always receive RemovedManually — the specific removal reason is server-only state. Planned fix in v1.1.
  • Client stack change events: Clients fire OnEffectRefreshed instead of OnEffectStackChanged for stack count changes. Bind both delegates for correct display. Planned fix in v1.1.
  • OnEffectTick is server-only: TimerManager callbacks don't run on clients. Clients read bIsTicking from snapshots for UI indicators. Client tick simulation planned for v1.1.

# [1.1.0] — Planned

# Planned Features

  • Replicated removal reason field for accurate client-side removal events.
  • Client-side previous stack count caching for accurate OnEffectStackChanged on clients.
  • Client tick simulation evaluation.
  • Inspector overlay widget (UMG debug ListView of all active effects).
  • Effect source tracking ("who poisoned me?" queries).
  • AP Timer Suite integration module (optional cross-product bridge).

# [2.0.0] — Future Roadmap

# Planned Features

  • Lightweight attribute system (Health, Mana, Armor as replicated float pairs).
  • Attribute modifiers (Add/Multiply/Override) driven by effects.
  • Gameplay Cue integration (event-driven VFX/SFX hooks).
  • Client-side effect prediction for instant UI feedback.
  • DataTable/CSV bulk import for effect definitions.
  • Custom editor details panel with visual stacking preview.
  • Save/Load serialization for active effects.

AfterPrime Systems — Building the Gameplay Foundation