World Streaming configuration and debugging

Runtime Settings Registry keys are runtime tuning only—they do not enter Manifest contentHash. Defaults reproduce “unconfigured” behavior. Full ship defaults: Gems/WorldStreaming/Registry/WorldStreaming.setreg.

Top-level keys

KeyDefaultDescription
/WorldStreaming/EnabledfalseMaster switch
/WorldStreaming/DefaultManifest"".wsmanifest path auto-loaded at startup
/WorldStreaming/PolyPartitionSignatureMismatchKick0PolyTerrain signature mismatch kick (advanced)

Runtime streaming core

Key (Runtime/)Default
MaxConcurrentLoads / MaxConcurrentUnloads4 / 4
MaxConcurrentActivations / MaxConcurrentDeactivations0 (unlimited)
MaxConcurrentStreamingCells0
StreamingResolveEveryNFrames1
UnloadHysteresisMeters / ActivateHysteresisMeters32 / 16
UnloadCooldownSeconds3.0
MemoryBudgetBytes0
PerGridMemoryBudgetBytes[] ([{ "GridLevel", "MemoryBudgetBytes" }])
StreamingRangeScale1.0
GridLoadingRangeOverrides[] ([{ "GridLevel", "LoadRadius", "ActivateRadius" }]; ≤0 = that radius not overridden)
ChunkEvictionCooldownSeconds0
MergeProximateSourcesDistance0 (off)

Failure, blocking, monitoring

KeyDefault
MaxLoadRetries0 (unlimited)
LoadRetryBaseCooldownSeconds / LoadRetryBackoffMultiplier / MaxLoadRetryCooldownSeconds0.0 / 1.0 / 0.0 (base ≤0 uses unload cooldown)
LoadTimeoutWarningSeconds0
MaxBlockingStreamingSeconds / MaxBlockingStreamingIterations0 / 0
BlockOnSlowStreamingfalse
AutoBlockCooldownSeconds5.0
SlowStreamingLagSeconds0 (off)
CriticalStreamingLagSeconds / CriticalStreamingDistanceRatio0 / 0.5
StreamingPredictionSeconds / MaxStreamingPredictionDistance0 / 0
PriorityForwardConeHalfAngleRadians / PriorityAngleContribution0 / 0

HLOD and coverage

KeyDefault
HlodWarmupFrames0
EnableHlodDowngradeUnderBudgetfalse
EnforceHlodLoadingRangefalse
TightShapeCoveragefalse

Multiplayer Runtime

KeyDefault
ServerAuthority"ServerDriven"
NetworkInstantiationMode"StaticAliasAutoInstantiate"
ServerStreamingMode"StreamInOut"
FilterForcedRelevantByCellfalse
OwnedShardCoords""

Bridge

KeyDefault
TerrainMode"Bridge"
VegetationMode"Coexist"
NavMeshMode"Coexist"
AtomMode"Off"

Details: Bridges.

Bake keys

Under /Dawn Engine/WorldStreaming/Bake/:

KeyDefault
HlodWorkerThreads≤1 (serial)
AssignCellGenerationsfalse
MergeMultiSourceCellsfalse

Details: Baking.

CVars

CVarDefaultDescription
ws_logCellTransitionsfalseLog cell state transitions / reasons
ws_blockOnRootDoubleInstancefalseCatch Root + cell double instantiation
ws_drawRuntimeHash3D / ws_drawRuntimeHash2DfalseIn-world / 2D hash grid overlay
ws_drawRuntimeHashIncludeUnloadedfalseInclude Unloaded cells in overlay
ws_drawRuntimeHashColorByLayerfalseColor by Content Layer
ws_imguiPanelfalseImGui diagnostics (WorldStreaming.Debug)
ws_entityCellRefreshMs0Entity→cell refresh period
ws_gateReplicatedEntitiesOnCellLoadedfalseGate replication on Loaded
ws_installCellEntityDomainOnHostfalseServer-shard host entity domain
sv_worldStreamingInterestUpdateMs / sv_worldStreamingInterestRadius250 ms / 512 mInterest
sv_worldStreamingPeriodicSnapshotPushes20
sv_worldStreamingShardAuthorityUpdateMs500 ms
ws_test_forceManifestMismatch0Test hook

Overlay colors: Activated green / Loaded amber / Unloaded gray. Headless servers have no render provider—draw commands silently no-op.

Console commands

CommandDescription
ws_dumpStatsRuntime diagnostic snapshot (counts, per-source table, budgets, streaming=PAUSED, render origin, …)
ws_flushStreaming [seconds]Blocking flush
ws_setStreamingEnabled [0|1]Pause / resume; no arg = report status
ws_overrideGridLoadingRange [gridLevel] [loadRadius] [activateRadius]No args = clear all overrides
WsDumpBridgeStatsTerrain / Vegetation
WsDumpNavBridgeStatsNavMesh
WsDumpAtomBridgeStatsAtom

All diagnostics are runtime-only, never enter contentHash, and are zero-cost when off.

Editor diagnostics

Partition view: streaming preview, memory heatmap, 2D minimap, unloaded-cell proxies (session-only). Transition reasons seen in logs include SourceDemand, LoadCompleted, AssetError, LoadRetry, BudgetEviction, BudgetDowngrade, BundleMirror, and more.

Troubleshooting

SymptomLikely causeWhat to try
Nothing loadsDisabled, bad Manifest, no streaming sourceConfirm Enabled and DefaultManifest; check ws_dumpStats for a world and sources
Cells stuck at LoadedActivate radius too small; no MP auth; layer clampedIncrease Activate Radius; check ServerDriven auth and Content Layer effective state
A region never loadsExclude source; layer Unloaded; grid maskCheck Exclude sources, layer ancestors / network role, source grid mask
Thrashing at boundariesHysteresis / cooldown too smallIncrease UnloadHysteresisMeters / UnloadCooldownSeconds
Streaming lags behind movementLow concurrency or no predictionEnable prediction, raise concurrency; optionally BlockOnSlowStreaming
Streaming fully stoppedPausedCheck ws_setStreamingEnabled / ws_dumpStats for streaming=PAUSED
HLOD not showing/hidingAtom bridge offSet Bridge/AtomMode = Bridge; verify with WsDumpAtomBridgeStats
Cells repeatedly FailedSpawnable failed to buildws_logCellTransitions for AssetError; check Asset Processor
Stale content after bakeManifest not re-aggregatedConfirm the .wsworld job ran; in MP, verify contentHash

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.