Skip to content
unreal · networking

Iris-ready entity replicationKBVENet

The shared networking layer for KBVE games. It provides Iris-ready replication primitives for streaming a server-authoritative simulation (Mass ECS swarms, etc.) to clients that render it locally.

Iris-ready, transport-agnostic

UKBVENetEntityReplicator holds a delta-compressed FFastArraySerializer of lean per-entity snapshots. FastArrays ride Iris when the ReplicationSystem is on, the classic NetDriver otherwise — the consumer writes no Iris-specific code.

  • Depends on — KBVESupabase, KBVEWorld, KBVEGameplay.
  • Snapshot — Id, quantized Location, packed yaw, Frame, StateByte.
0.1.0Version
UE 5.7+Engine
Win64 · Linux · MacPlatforms
KBVELicense

Replication primitives

Features

Delta-compressed snapshots

An FFastArraySerializer of lean per-entity snapshots — Id, quantized Location, packed YawQ, Frame, and a StateByte.

Transport-agnostic

FastArrays ride Iris when the ReplicationSystem is on, the classic NetDriver otherwise — consumers write no Iris-specific code.

Server-authoritative streaming

Streams a server-authoritative sim (Mass ECS swarms, etc.) to clients that render it locally.

Wire format

Entity-snapshot replicator

UKBVENetEntityReplicator holds a delta-compressed FFastArraySerializer of lean per-entity snapshots — Id, quantized Location, packed YawQ, Frame, and a StateByte. FastArrays are transported by Iris when the ReplicationSystem is on, by the classic NetDriver otherwise — the consumer writes no Iris-specific code.

// server
Rep->ServerUpsert(EntityId, WorldPos, MoveYawDeg, Frame, bMoving ? 1 : 0);
// client
for (const FKBVENetEntitySnapshot& S : Rep->GetSnapshots()) { /* render */ }

Per game: bUseIris = true; in each *.Target.cs, and Net.Iris.UseIrisReplication=1 under [ConsoleVariables] in Config/DefaultEngine.ini.

Users & plans

Consumers & roadmap

Consumers

  • chuck slime swarm — server runs the Mass sim and pushes each slime’s position/yaw/frame; clients render the swarm from snapshots into a local ISM. Direction row + billboard are computed per-client from the local camera so facing stays view-correct.

Roadmap

  • Push-model dirty tracking on the replicated array.
  • Per-entity Iris NetObjects (replacing the single-actor FastArray) for very large swarms.
  • Relevancy / spatial culling so clients only receive nearby entities.

Questions

Frequently asked

What does the KBVENet plugin do?

KBVENet is a shared Unreal Engine 5 networking layer that streams a server-authoritative simulation, such as a Mass ECS swarm, to clients using a delta-compressed entity-snapshot replicator so clients render the sim locally.

How does KBVENet replicate entities?

UKBVENetEntityReplicator holds a delta-compressed FFastArraySerializer of lean per-entity snapshots — Id, quantized Location, packed yaw, animation Frame, and a StateByte. FastArrays ride Iris when the ReplicationSystem is on and the classic NetDriver otherwise, so consumers write no Iris-specific code.

How do you enable Iris replication with KBVENet?

Per game, set bUseIris = true in each Target.cs and add Net.Iris.UseIrisReplication=1 under the ConsoleVariables section of Config/DefaultEngine.ini. KBVENet supplies the replication primitives; turning Iris on stays a per-target configuration choice.