World Streaming multiplayer

Optional WorldStreaming.Multiplayer synchronizes cell and layer interest between dedicated server and clients. Server shards (authority ownership) are not the same as editor collaboration shards.

Integration checklist

  1. Build with the Multiplayer Gem present so WorldStreaming.Multiplayer compiles.
  2. Place WorldStreamingSyncNetworkComponent on the networked player Prefab. Without it, clients do not receive activation authority.
  3. Ship the same Manifest on server and clients (worldGuid + manifestVersion + contentHash handshake). Mismatch → reject; client gets zero authorized cells.
  4. Configure authority mode, interest CVars, and optional server shards.

Server authority modes

Runtime/ServerAuthoritySemantics
ServerDriven (default)Local client sources may warm cells only up to Loaded; Activated requires server authorization
ClientPredictedClients may load/activate static content themselves; networked entities remain server-authoritative

Query from script: IsServerAuthorityEnforced / GetServerAuthorizedCellCount.

State sync and interest

The sync component carries cell / layer state server → client. The server filters relevant cells by interest:

CVar / settingDefaultRole
sv_worldStreamingInterestUpdateMs250 msInterest refresh period
sv_worldStreamingInterestRadius512 mInterest radius
sv_worldStreamingPeriodicSnapshotPushes20Periodic snapshot pushes
ws_entityCellRefreshMs0 (off)Entity→cell refresh
ws_gateReplicatedEntitiesOnCellLoadedfalseGate replication on cell Loaded
m_maxReplicatedEntitiesPerConnection / m_perCellReplicationBudget0 / 0Replication budgets (0 = off)
FilterForcedRelevantByCellfalse

Replication-load gate: unexpected / Failed / HLOD cells always pass (no deadlock). Client NetworkEntityTag alias Disable: networked entities arrive only via replication.

Network instantiation modes

Runtime/NetworkInstantiationMode:

ValueSemantics
StaticAliasAutoInstantiate (default)Replace-alias auto-spawns networked entities
ExplicitNetSpawnExplicit network spawnable; spawn = activate (single tier)
ExplicitImmediateSpawnCreateEntitiesImmediate(DoNotActivate); supports two-tier activation + double-precision anchors

Server residency

Runtime/ServerStreamingMode: StreamInOut (default) / StreamInOnly / FullyResident.

Server shards (multi-authority)

Distinct from editor shards:

  1. Set .wsworld m_shardSize > 0 at bake time.
  2. Configure OwnedShardCoords in setreg (for example "0,0;1,0").
  3. Set ws_installCellEntityDomainOnHost = true on hosts that own cells.
  4. sv_worldStreamingShardAuthorityUpdateMs default 500 ms.

Query: GetCellShardAtPosition / IsCellOwnedByThisServerAtPosition (script) or C++ GetCellShard / IsCellOwnedByThisServer.

Content Layer network roles

Layers may be ClientOnly or ServerOnly and are clamped by the local network role. See Content Layers.

Content Bundles in multiplayer

Mount state is not in the handshake. ServerDriven clients should mount the same bundles as the server. Chunked roots cannot mount bundles (v1).

Next steps


Copyright © 2026 DawnEngine. All rights reserved.

DawnEngine is a commercial 3D engine distributed under the DawnEngine end-user license agreement. Engine binaries and source are proprietary and are not covered by the licenses below.

Documentation only: the prose and templates on this site are a derivative work of Open 3D Engine (O3DE) documentation by the O3DE Contributors, used under CC BY 4.0 (documentation content), Apache 2.0 (site code), and the MIT license (inline code samples).

The open-source 3D engine that DawnEngine is built on top of is Open 3D Engine . DawnEngine is not affiliated with, endorsed by, or sponsored by The Linux Foundation or the O3DE project. “O3DE” and “Open 3D Engine” are trademarks of The Linux Foundation.