Multiplayer guide
Everything network-related in one place.
The net driver
The framework replaces Unreal's default GameNetDriver with AFPNetDriver, installed via
AFS_Libraries/Config/Engine.ini. It changes exactly one thing: objects implementing
IOutsidePawnRPCInterface may call server RPCs even though they are not the player's pawn. Multicast
and client RPCs are unaffected.
If this is not active, server RPCs from state and select components are silently dropped. Nothing errors — the interaction simply does not replicate. This is the most common multiplayer problem.
Replicating transforms
Add BPC_Replication_Actor for a whole actor, or BPC_Replication_Component with a Component
Tag for a single component. Both interpolate on remote clients, replicate with SkipOwner so the
manipulating player is not corrected by their own data, and switch sample rate based on whether the
object is moving.
Authority follows possession: CheckIfOwnerChanged re-evaluates ownership so the player holding an
object drives it.
Replicated UI
BPC_ReplicatedUI on a pawn plus BFL_ReplicatedUI.ReplicatedUI_SetReplication lets other players
see a player's interface. URenderTargetReplicatorComponent handles the underlying transfer by
JPEG-compressing a render target and multicasting it — adjust JPEG Quality to trade fidelity for
bandwidth.
Testing
Use Play In Editor with two clients and Run Dedicated Server off for the fastest loop. The
AFM_Replication example map is set up for exactly this.