๐Ÿ—๏ธ My First Unreal Game ยท Episode 9 of 9 ยท See All Episodes
๐ŸŒ Episode 9 ยท Series Finale ยท Networked Blueprints

Online Arena!
Multiplayer Basics

The Unreal finale: the engine that runs Fortnite does networking natively. Listen servers, replication, RepNotify, server RPCs with validation, and a two-player coin arena you can actually play.

๐Ÿ‘ถ Ages 12+ โฑ๏ธ ~2.5 Hours ๐Ÿ—๏ธ Unreal Engine โœ“ Free
๐Ÿ“ก Listen servers ๐Ÿ” Replication ๐Ÿ”” RepNotify ๐Ÿ“ฃ RPCs & validation ๐Ÿ‘ฅ PlayerState ๐ŸŸ๏ธ Networked arena
โญ
0 XP
Level 1
๐Ÿ”ฅ0
Your Progress 0 / 6 steps
1
๐Ÿ“ก
Two Players in Editor
PIE multiplayer: the easiest network test in gamedev
Active
๐ŸŽฏ
Goal for this step

Run a listen server with two windows, inside the editor.

  • 1Unreal networking was built in from day one (1998!). Testing is absurdly easy.
  • 2Beside Play: dropdown โ†’ Number of Players: 2, Net Mode: Play As Listen Server. Press Play.
  • 3TWO windows appear: the server-player and a client, connected and running. Two mannequins, visible to each other. Zero setup.
  • 4Movement already syncs, the Character class replicates movement out of the box (with prediction Fortnite-grade).
  • 5Vocabulary check (from Unity Ep 8 if you did it): listen server = host; authority = the server owns truth. Same physics, different engine.
โœ๏ธ
Fill in the Blanks
+15 XP
Two-player testing sets Number of to 2 with Net Mode: Play As Server. The built-in class already replicates movement.
๐Ÿง 
Knowledge Check
+15 XP
The Character template syncing movement automatically tells you Unrealโ€™s networking isโ€ฆ
AAn afterthought
BFoundational, replication and prediction are built into the core gameplay classes
COnly for Fortnite
2
๐Ÿ”
Replication Basics
Replicated actors and variables
Locked
๐ŸŽฏ
Goal for this step

Understand and use the Replicates flags.

  • 1By default, an actor spawned on the server exists ONLY on the server. Tick Replicates (class defaults) โ†’ the server creates/destroys it on all clients too.
  • 2Variables: a plain variable changed on the server stays server-only. Set its Replication to Replicated โ†’ value flows server โ†’ clients automatically.
  • 3Direction matters: replication is one-way, server โ†’ client. Clients NEVER push variables up (that is what RPCs are for, step 4).
  • 4Test: a replicated BP_Ball with a replicated colour variable, changed server-side on a timer, both windows change together.
โœ๏ธ
Fill in the Blanks
+15 XP
An actor only appears on clients when its flag is on. Variable replication flows one way: from the to clients.
๐Ÿง 
Knowledge Check
+15 XP
A client changing a replicated variable locally results inโ€ฆ
AEveryone updating
BNothing propagating, replication is serverโ†’client only; the client just lied to itself
CA crash
3
๐Ÿ””
RepNotify: Reacting to Sync
Run code when a replicated value arrives
Locked
๐ŸŽฏ
Goal for this step

Trigger client-side effects the moment values replicate.

  • 1Syncing a value is half the job, clients usually need to REACT (update a health bar, flash a colour).
  • 2Set a variableโ€™s replication to RepNotify: Unreal auto-creates an OnRep_VariableName function, called on clients whenever the value lands.
  • 3Health example: Health (RepNotify) โ†’ OnRep_Health updates the health bar widget + plays a hit flash. Server changes Health once; every clientโ€™s UI reacts by itself.
  • 4This is Unityโ€™s OnValueChanged callback, Unreal-flavoured. Same architecture: state syncs, reactions are local.
โœ๏ธ
Fill in the Blanks
+15 XP
A variable set to generates an _ function that runs on clients when the new value arrives, perfect for updating health .
๐Ÿง 
Knowledge Check
+15 XP
Why put the health-bar update in OnRep_Health instead of Tick?
ATick is banned
BIt runs exactly when the value changes, event-driven, zero waste, no per-frame polling
CWidgets require it
4
๐Ÿ“ฃ
RPCs & Validation
Run on Server, Multicast, and trust nothing
Locked
๐ŸŽฏ
Goal for this step

Send events across the network with authority checks.

  • 1Custom events gain a Replicates dropdown: Run on Server (client asks server) and Multicast (server tells everyone).
  • 2The pattern (Unity Ep 8 dรฉjร  vu): client presses F โ†’ RunOnServer event โ†’ server VALIDATES โ†’ Multicast event โ†’ effect on all screens.
  • 3Validation is not optional: the server re-checks range/cooldown/permission. "Never trust the client", every online cheat ever is a client that was trusted.
  • 4Build it: a door only the server opens (F โ†’ Server_RequestOpen โ†’ distance check โ†’ Multicast_OpenDoor animating on every screen).
โœ๏ธ
Fill in the Blanks
+15 XP
A client-to-server event is set to Run on ; a server-to-everyone broadcast is a . Between them the server must always the request.
๐Ÿง 
Knowledge Check
+15 XP
The server re-checking the door distance (even though the client already checked) preventsโ€ฆ
ALag
BCheating, a hacked client can skip ITS check, but it cannot skip the serverโ€™s
CDouble doors
5
๐Ÿ‘ฅ
PlayerState: Who Is Everyone?
Names and scores that everyone can see
Locked
๐ŸŽฏ
Goal for this step

Store per-player data where the network expects it.

  • 1Where does a SCORE live in multiplayer? Not the pawn (dies/respawns), not the controller (server-only for others). Answer: PlayerState, per-player, replicated to everyone, survives respawns. Built for exactly this.
  • 2Create BP_MyPlayerState (add Score, RepNotify), set it in the Game Mode.
  • 3The server grants points: get the scoring playerโ€™s PlayerState โ†’ add Score.
  • 4A scoreboard widget (Tab) lists every PlayerState via Get Game State โ†’ PlayerArray, names and scores of ALL players, replicated for free.
  • 5Framework tour: GameMode (rules, server-only) / GameState (match data, shared) / PlayerState (per-player, shared) / Pawn (the body). Learn the homes, networking gets easy.
โœ๏ธ
Fill in the Blanks
+15 XP
Per-player replicated data (score, name) belongs in , which survives respawns. Every playerโ€™s state is listed through the GameStateโ€™s . Match rules live server-side in the .
๐Ÿง 
Knowledge Check
+15 XP
Why not store score on the character pawn?
APawns are too small
BPawns get destroyed on death, the score would die with them. PlayerState persists across respawns
CPawns cannot hold ints
6
๐ŸŸ๏ธ
The Coin Arena & Series Wrap
A complete networked mini-game, then the victory lap
Locked
๐ŸŽฏ
Goal for this step

Assemble the two-player coin race and close the series.

  • 1Assemble: your Ep 1 arena + replicated coins (server destroys on overlap + adds to the toucherโ€™s PlayerState score) + RepNotify scoreboard + a Multicast win banner at 10.
  • 2Test at Players: 2. Then the real thing: package the game (Platforms โ†’ Windows) and try LAN play with a friend.
  • 3Nine episodes of Unreal: editor, Blueprints, events, interfaces, dispatchers, components, saves, streaming, profiling, and networked play. That is a serious skill stack.
  • 4Blueprint has taken you this far; C++ is the natural next mountain (the Top-Down Shooter episode touches it). Either way: you build in the engine that builds blockbusters. GG, developer. ๐Ÿ—๏ธ
โœ๏ธ
Fill in the Blanks
+15 XP
Coins are destroyed by the , scores live in , and the win banner reaches all screens via a event.
๐Ÿง 
Knowledge Check
+15 XP
Across Unity AND Unreal multiplayer, the ONE unshakeable principle wasโ€ฆ
AUse more RPCs
BServer authority: the server owns the truth, clients request and display, cheat-resistance by architecture
CAlways use 2 players
๐ŸŽ‰๐Ÿ†๐ŸŽฎโœจ๐ŸŽ‰
Workshop Complete!
Replication, authority, RPCs, in the engine that runs Fortnite. Nine episodes complete: you are an Unreal developer. ๐Ÿ—๏ธ๐Ÿ†
0
Total XP
1
Level
0
Best Streak
0%
Accuracy
โญ View My Progress & Certificates

This workshop was free and took many hours to build. If it helped you learn something new, consider supporting the project.

☕ Support on Ko-fi