04 — Replication and authority
Intent
Section titled “Intent”Server-authoritative Online; Solo local authority. Never trust client packets for power. Match Lyra 5.8 Tick discipline — default Tick off.
Anchors
Section titled “Anchors”- FS §2.4 Replication authority · FS-ARCH-012 threads · FS-ARCH-013 hit auth · FS-ARCH-014 Tick
- Architecture Map client vs server + threads
- Lyra host:
ALyraCharacter/ULyraHealthComponentshipbCanEverTick = false - Docker DS work in
CHANGES.md
Server-authoritative (never trust the client)
Section titled “Server-authoritative (never trust the client)”Combat hits (final), damage/GE apply, inventory mutations, economy ledgers, progression grants, crafting, InvokeEligible, trust actions, match recap freeze. Any of this that “needs a loop” runs on the server (timer / event / rare server-only Tick) — not every client Tick.
Client-allowed (prediction / presentation; server reconciles)
Section titled “Client-allowed (prediction / presentation; server reconciles)”Camera, HUD chrome, cosmetic attach, local VFX/audio, input prediction for movement (server sim owns truth). Client Tick only for presentation bookkeeping — never power.
Tick / timer rules (Lyra 5.8)
Section titled “Tick / timer rules (Lyra 5.8)”| Do | Don’t |
|---|---|
| Leave Actor/Component Tick off by default (Lyra character pattern) | Enable Tick on every GFP component “for convenience” |
| Use timers, Anim Notifies, Gameplay Messages, GAS | Poll world state every frame |
Gate gameplay mutations with HasAuthority() |
Apply GE / Flow / loot / Credits from client Tick |
Enable server-only Tick in BeginPlay if authority |
Set Tick from Role in the constructor (CDO has no Role) |
| Replicate results; clients react | Assume client Tick “won’t matter” on listen-server / DS |
Empty Ticks scale with pawn count and hurt clients; client-side gameplay Tick often does not match server truth.
- Linux dedicated server Docker path
- Network version override for heterogeneous NetCL
- Net CVars for DS handshake in
DefaultEngine.ini
- Stock Lyra replication / EOS hooks
- FS lock FS-ARCH-014 + Lyra Tick-off verified on host character/health
- TFA domain RPCs: request → validate → mutate → multicast pattern per system
- Fail-closed economy and Apex Invoke (Architecture Map)
- Document Solo listen-server vs Online dedicated per feature as they land
- Enforce Tick-off on remade TFA* components (AC-ARCH-004)
Hybrid hit auth detail → chapter 05 (FS-ARCH-013). Tick discipline → FS-ARCH-014.