unreal-replication

Designs and debugs server-authoritative multiplayer replication in Unreal Engine 5.8.

Updated May 28, 2023
One-click install
npx skills add https://github.com/steveulrich/ProjectB --skill unreal-replication-steveulrich
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: unreal-replication
Source: https://github.com/steveulrich/ProjectB/tree/main/.cursor/skills/unreal-replication
Command: npx skills add https://github.com/steveulrich/ProjectB --skill unreal-replication-steveulrich

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Multiplayer features in Unreal Engine fail when authority, ownership, relevancy, and dormancy are conflated, causing RPCs that never fire, state that desyncs for late joiners, and bandwidth spikes that only appear at scale. This Skill provides a structured methodology for designing, implementing, testing, and profiling server-authoritative replication in UE 5.8. ## Core Features & Use Cases - Network contract design: Defines authority/ownership tables, client intent, server validation, and canonical state mutation for every multiplayer action before writing code. - Mechanism selection: Guides choices between replicated properties, RepNotify, Server/Client/NetMulticast RPCs, Fast Arrays, replicated subobjects, and conditions like COND_OwnerOnly. - Scale and system selection: Compares Generic Replication, Replication Graph (Beta), and Iris (Experimental) with trace-based adoption gates. - Testing and profiling: Provides dedicated-server test matrices, packet emulation scenarios, and Network Insights workflows. - Use Case: A client reports that a networked door works on the listen server host but not for remote clients. Use this Skill to trace the ownership chain, fix the dormancy wake-before-mutate order, and convert the one-shot multicast into durable replicated state. ## Quick Start Use the unreal-replication skill to design the authority and ownership model for a replicated inventory system with server validation and Fast Array delta updates.

Frequently Asked Questions about unreal-replication

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I replicate actor properties in Unreal Engine 5?▼

Mark the property UPROPERTY(Replicated) or ReplicatedUsing with a RepNotify, then register it in GetLifetimeReplicatedProps with DOREPLIFETIME or a condition macro. Mutate the canonical value only on the server; clients apply received values through the RepNotify handler.

When should I use RPCs versus replicated properties in Unreal Engine?▼

Use replicated properties for durable state that late-joining or re-relevant clients must learn, and Server RPCs for client intent on actors owned by that client's connection. Use NetMulticast sparingly for transient effects, since repeated property writes collapse to the latest state.

Replication Graph vs Iris vs Generic Replication in UE 5.8?▼

Generic Replication is the default and should be used unless profiling proves otherwise. Replication Graph (Beta) suits large actor-by-connection counts but lacks console split screen; Iris remains Experimental and requires a migration plan with registered subobject lists.

Why does my Server RPC never execute on the server?▼

A client-called Server RPC runs only when invoked through an actor or component owned by that client's connection. Verify the actor replicates, the ownership chain reaches the client's PlayerController, and the call is made on the client copy.

Why do replicated properties stop updating when an actor goes dormant?▼

Dormant actors skip replication until woken. Call FlushNetDormancy, ForceNetUpdate, or set DORM_Awake before mutating replicated state, then return to DORM_DormantAll after the state settles.

Can clients call NetMulticast RPCs to all players in Unreal Engine?▼

No. A client-called NetMulticast executes only on the invoking client. Only server-invoked NetMulticast RPCs reach currently relevant clients, and they should be used sparingly for transient effects rather than durable state.