Nebula

API reference

Find signatures and usage details for Nebula's public C# types.

generated from the sources

Use this reference to look up a public C# type or member. For instructions and complete examples, start with the guides.

Core

Build replicated gameplay with identities, behaviors, variables, RPCs, prediction, sync components, and project settings.

TypeSummary
AuthorityModeEnum. Lists which process produces state for a synchronized component.
AuthorityRpcAttributeClass. Runs on the worker that has authority over the entity.
ClientRpcAttributeClass. Runs on every client that knows the entity (or only its owner when sent with OwnerRpc).
CohesionGroupsStatic class. Which entities belong to which NetworkIdentity.CohesionGroup, in this process.
CommandLineStatic class. Tiny "-key value" / "-key=value" / "-flag" parser over Environment.GetCommandLineArgs.
CrossIslandJointStruct. A physics constraint Nebula cannot simulate symmetrically: a Joint or a child ArticulationBody whose two bodies belong to networked entities in different containers, so that two workers can end up each owning one side.
DatabaseUrlStruct. Where the orchestrator keeps the control plane and saved entities, as one string (NebulaConfig.DatabaseUrl, -nebula-database).
DotEnvStatic class. Reads and writes dotenv files (.env.nebula, the file NEBULA_ENV_FILE names, nebula env pull output), and holds the rules for the names of the environment variables a game gives its workers.
FrameAttachmentClass. Fixes an entity to a container at a pose in the container's space: a crate strapped to a cargo grid in a ship's hold, a turret bolted to a deck, a crate set on a shelf in a building.
FrameInertiaClass. Lets a physics prop inside a moving physics frame feel the frame's motion: crates slide aft when the ship accelerates, outwards when it turns.
HistoricalStateStruct. What an entity looked like at one recorded server tick: the answer of NetworkIdentity.StateAt.
INetworkInputInterface. Marker for the per-tick input struct a predicted entity consumes.
IRpcSinkInterface. Where RPCs and state changes go once a behaviour has produced them.
NebulaConfigClass. Project-wide Nebula settings.
NebulaCostStatic class. Where a game says what one entity costs to simulate, beyond the category it falls into.
NebulaDiagnosticsStatic class. Process-wide counters for rule violations Nebula rejects at the call site, so tests and the worker's profile log line can see how often game code hits them.
NebulaEnvStatic class. A game's own settings and secrets on a worker (service URLs, API keys, feature flags): the environment variables set with nebula env, in the Nebula Cloud dashboard, or in .env.nebula for local runs.
NebulaGameModeAbstract class. Server-side game hooks, the equivalent of subclassing Mirror's NetworkManager.
NebulaLogStatic class. Thin logging wrapper so every Nebula line is greppable by prefix in headless logs.
NebulaRuntimeStatic class. Process-wide role context.
NebulaServerScriptingBackendEnum. The scripting backend of a Linux dedicated server build (NebulaConfig.ServerBuildScriptingBackend).
NetworkAnimatorClass. Replicates selected Animator parameters from the authoritative worker to clients and ghost workers.
NetworkBehaviourAbstract class. Base class for replicated gameplay components.
NetworkIdentityClass. Marks a GameObject as a networked entity.
NetworkMap<TKey, TValue>Class. A keyed collection replicated from the authoritative worker to clients and ghost workers, sending only what changed.
NetworkMapBaseAbstract class. The untyped half of NetworkMap<TKey, TValue>: what NetworkIdentity needs to send and apply a map without knowing its types (docs/replicated-collections.md).
NetworkMapChange<TKey, TValue>Struct. One key's change, raised by NetworkMap<TKey, TValue>.OnChanged on every copy of the map.
NetworkMapChangeKindEnum. What happened to one key of a NetworkMap<TKey, TValue>.
NetworkMotionStateClass. Motion shared by scripted movement, prediction, physics, telemetry, and persistence.
NetworkPrefabsStatic class. Prefab id table shared by every process.
NetworkRigidbodyClass. Puts a Unity Rigidbody under the mesh's authority model.
NetworkSyncBehaviourAbstract class. Base for components that replicate through the per-tick sync channel and support server or owner authority.
NetworkTimeStatic class. Provides the shared 60 Hz simulation tick.
NetworkTransformClass. Replicates selected position, rotation, and scale axes from the authoritative worker to clients and ghost workers.
NetworkVariable<T>Class. A field replicated from the authoritative worker to clients and ghost workers.
NetworkVariableBaseAbstract class. Defines the serialization and change tracking used by every NetworkVariable<T>.
PhysicsIslandsStatic class. Decides whether two networked bodies are simulated by one authority (the same island) and finds the joints that are not.
PlayerInfoStruct. Who is joining, as the gateway told the worker (NebulaGameMode.OnSpawnPlayer).
PredictedBehaviour<TInput>Abstract class. A server-authoritative, client-predicted behaviour (the player controller, typically).
PredictedBehaviourBaseAbstract class. Non-generic surface Nebula's worker and client drive; game code derives from PredictedBehaviour<TInput>.
RemoteInterpolatorClass. Tick-indexed pose buffer for copies of an entity this process does not simulate: ghosts on a worker and remote entities on a client.
SceneEntitiesStatic class. The scene-placed entities resident in this process, by NetworkIdentity.SceneId.
ServerRpcAttributeClass. Sent by the owning client, runs on whichever worker currently has authority over the entity.
StateHistoryClass. The bounded per-entity ring of recorded ticks behind NetworkIdentity.StateAt: pose, velocity, container, epoch and the SyncHistoryAttribute variables, one entry per server tick, indexed by tick % capacity.
SyncAudienceEnum. Who receives a behavior's sync state (NetworkBehaviour.SyncAudience).
SyncAudienceCodecStatic class. The client member sets of an entity's SyncAudience.Custom behaviors, as the authority last evaluated them: [count:byte]{[behaviourIndex:byte][n:ushort]{[clientId:ulong]}}, each set sorted ascending.
SyncDistanceRatingEnum. Whether a behavior's sync state reaches far clients less often, following the entity's distance tier as its transform does (NetworkBehaviour.SyncDistanceRating, docs/server-owned-entities.md D11).
SyncHistoryAttributeClass. Marks a NetworkVariable<T> field as part of the entity's recorded state history, so its value is snapshotted every tick alongside the pose and can be read back through NetworkIdentity.StateAt / HistoricalState.TryGetValue<T>.
SyncStateCodecStatic class. Envelope shared by the per-tick sync stream (EntityState/GhostSyncState messages) and the spawn snapshot: [count]{[behaviourIndex][flags][len:ushort][chunk]}.
UpdateGapDelayClass. The extra render delay a client gives one remote entity whose state arrives further apart than the render delay: an entity the worker updates every few ticks (NetworkIdentity.UpdateInterval), or one the gateway sends a client only every ...

Containers

Define container volumes and look up their current worker assignments.

TypeSummary
ContainerClass. Defines a box-shaped authority area with its own local coordinate space.
ContainerAuthorityEnum. Who simulates what is inside a container (docs/container-tree.md D6).
ContainerFrameModeEnum. Where a container's box is (docs/container-tree.md D1).
ContainerHintStruct. What the game knows about a container that the orchestrator cannot measure: how expensive it really is, what it belongs with, how much a worker boundary beside it hurts, and whether it wants a machine to itself.
ContainerPlacementStruct. Where a runtime container goes and what kind of container it is: its parent, its box, its authority and whether it gets its own physics frame.
ContainerRefStruct. How a container is named on the wire.
ContainerRegistryStatic class. The container graph of the loaded level: every static Container, indexed deterministically so all processes agree on indices, plus adjacency (adjacent = bounds touch or overlap), plus the dynamic containers currently carried by entities ...
ContainerSourceEnum. Where a container comes from (docs/container-tree.md D1).
Double3Struct. A 64-bit-per-axis position.
DynamicContainerClass. Obsolete, and does nothing.
EntityLocationStruct. Where an entity durably is, independent of which worker holds it: an opaque scope key, a container id and a pose in that container's local space.
FrameCrossingEnum. What a crossing policy says about one entity crossing a frame boundary (docs/container-tree.md D16).
FrameInterestModeEnum. How the contents of a container with its own physics frame are bucketed for interest management (docs/container-tree.md D18).
HistoryRewindStruct. A scene put back as it was at a past server tick, for as long as it is held (docs/portals.md D33; the history is docs/state-history.md).
IFrameCrossingPolicyInterface. The game's say over where entities may cross a physics frame's boundary: anywhere on the hull, or only through portals.
IInstanceContentLoaderInterface. Content of an instance part that finishes loading after InstanceScenes.Prepare returns: geometry a component builds over several frames, or assets it loads asynchronously.
InstanceContentStateEnum. Whether an instance part's content is still loading, ready, or failed.
InstancePosesStatic class. The instances this process holds whose own space is turned against their host scope's (NEB-426, docs/scope-frames.md D12): built upright in their own space and posed at a door that is not upright in the host (a door on a sphere).
InstanceScenesStatic class. Loads instance geometry into separate physics scenes.
InstanceTemplateClass. Reusable geometry and container bounds for a private area.
LocationContainerKindEnum. Which kind of container an EntityLocation.ContainerId names.
NebulaContainerHelpersStatic class. Geometry helpers for placing things inside a Container.
PhysicsFrameClass. A container's own physics frame: a local physics scene in which the container stands still (docs/container-tree.md §3).
PhysicsFrameStateStruct. The motion of a physics frame in the space around it, once per tick, on every process that holds the frame (docs/container-tree.md D14): its pose, linear and angular velocity, and linear acceleration.
PhysicsFramesStatic class. The physics frames this process holds, one per container with Container.OwnPhysicsFrame (docs/container-tree.md §3): scene lifetime and pooling, interior colliders, frame state, conversion between spaces, the crossing policy, and — on a ...
PortalClass. A way between two scopes: an opening in a wall, a hatch, a gate, a door to a room of its own (docs/portals.md).
PortalApertureStruct. The opening of a portal, on its face's z = 0 plane (docs/portals.md D3): an oriented box centred on the face's origin.
PortalAskerStruct. Who is asking a portal query (docs/portals.md D12, D32): the entity whose own colliders the cast skips, and the party whose link it goes through.
PortalCrossingStruct. Where a cast went through an open portal (docs/portals.md D32): the link, the scope it left and the scope it entered, how far along it the plane was met, and the cast as it continues on the far side, as a point in the far scope's scene (...
PortalFaceStruct. One side of a Portal (docs/portals.md D2): a scope, the container the face is fixed in, and a pose, an absolute Double3 position in that scope and a rotation.
PortalHitStruct. One thing a portal query found (docs/portals.md D32): the scope it is in, the collider and the entity, how far along the cast it is, and its point in both the asker's space and the hit scope's.
PortalHitFlagsEnum. What a PortalHit is besides a collider (docs/portals.md D32, D33).
PortalLinkClass. One party's link through a Portal (docs/portals.md D8, D9): the far scope, the state the link is in and, when it is not open, what it waits for.
PortalPoseStruct. A pose in a scope: an absolute Double3 position and a rotation in the scope's own axes.
PortalProxyClass. Marks a collider Nebula made to carry one side of a portal into the other (docs/portals.md §6): a kinematic copy of a body that touches an open link's band (D26), a static copy of the other side's geometry in the throat (D27), or ghost h...
PortalQueriesClass. Raycasts, sweeps and overlaps that continue through an open portal (docs/portals.md D32, D33).
PortalQueryOptionsClass. Settings of a portal query (docs/portals.md D32, D33).
PortalRefusalEnum. Why a portal did not let an entity through, or leave a companion behind (docs/portals.md D17).
PortalsStatic class. Lookup for portals (docs/portals.md D1): the Portal components on this process, on a client what the network gateway has told it about the portals near it, and the link poses between scopes (Map, Turn).
ScopePoseStruct. Where a drawn scope stands against the anchor, the scope whose frame the local view's frame resolves to (docs/portals.md D40, Portals.Anchor): the composition, in double and about the faces, of the link poses along the portals from the a...

World partition

Split a large world into cell scenes, stream them by role, and keep coordinates near a floating origin.

TypeSummary
ChunkContentAbstract class. Scene-object form of NebulaChunks.Loaded/NebulaChunks.Unloading: drop a subclass in the game scene and override OnChunkLoaded.
ChunkContextStruct. What a game is told about one chunk of a chunked world.
ChunkGridDefinitionClass. What one procedural chunk grid is: the cell arithmetic every role must agree on, plus the one chunk that is brought into being with the scope so a client always has somewhere to arrive.
ChunkKeysStatic class. How a chunk coordinate becomes the ids a scope's containers are named by.
ChunkLatticeClass. The built-in IChunkGridGeometry: a lattice of equal boxes, either one layer of columns centred on y = 0 (Planar) or a volumetric lattice, cell (x, y, z) spanning [x, x + 1) cells on each axis.
ChunkStateStatic class. Sparse, persistent state for objects that a game places procedurally inside chunks (runtime containers).
ChunkStateEntityClass. The entity that carries one chunk's ChunkState entries.
ChunkStateOutcomeEnum. What became of a change made through ChunkStateService.
ChunkStateResultStruct. The result of one change, passed to the callback of a ChunkStateService call.
ChunkStateServiceClass. The write side of ChunkState on a worker, reached as NebulaWorker.ChunkStates.
IChunkGridGeometryInterface. The shape of a hosted chunk grid (docs/container-tree.md D22): which cell a point of the host belongs to, each cell's box, which cells surround a cell, and what id each cell's container gets.
IWorldAnchorInterface. Something the streamer keeps cells loaded around.
NebulaChunkedWorldClass. The whole server and client side of an unbounded chunked world, wired from configuration alone (NebulaConfig.ChunkedWorld plus a NebulaConfig.RuntimeWorld).
NebulaChunksStatic class. Reports the runtime chunks available on each role so your game can load their content.
NebulaWorldStatic class. Nebula's floating-origin world state.
NebulaWorldStreamingClass. Decides, per role, which cells this process keeps loaded and where the floating origin sits: worker: the cells of every container it leases plus NebulaConfig.WorkerLoadRingCells rings around them so ghosts and boundary physics have the n...
ObjectStateStruct. The saved state of one procedurally placed object: a rock that has been mined, a plant that has been harvested.
ObjectStateChangeStruct. One change to one object's entry, raised through ChunkState.Changed.
ObjectStateChangeKindEnum. What happened to an object's entry in ObjectStateChange.
RuntimeGridClass. Maps runtime containers to a planar or three-dimensional grid.
RuntimeGridAllocatorClass. Opt-in worker-side allocator for a game built on RuntimeGrid: keeps a ring of cells requested around every player-owned authoritative entity (and any fixed anchor coordinates, e.g.
ScopeFrameClass. One scope's floating origin: which cell of that scope's grid currently sits at Unity's (0,0,0), and the delta every frame position of that scope gets when it moves.
ScopeFramesStatic class. The origin frames this process holds, one per scope.
WorldAnchorClass. Anchor component: keeps the cells around this transform loaded.
WorldCellClass. Marks the root of a cell scene with its grid coordinate.
WorldContainerManifestClass. The baked container tree of a partitioned world: one container per cell plus every hand-authored Container found inside the cell scenes, with cell-local poses.
WorldDefinitionClass. A world partitioned into a 3D grid of cells, each authored as its own additive scene.
WorldGridStatic class. Grid arithmetic shared by the streamer, the editor tooling and Nebula's container integration.
WorldOriginStatic class. The floating origin: which cell currently sits at Unity's (0,0,0).
WorldStreamerClass. Loads and unloads cell scenes additively and keeps them placed relative to the floating origin.

Worker

Spawn and simulate authoritative entities, manage ghosts, and transfer entities between workers.

TypeSummary
AuthorityCallActionEnum. What a worker does with an incoming call.
AuthorityCallDecisionStruct. The decision for one incoming call: the action and, for a rejection, the reason.
AuthorityCallIdStatic class. The identity of one cross-worker call: the sending worker's index in the top 16 bits and a per-sender sequence in the low 48, the same shape as an entity NetId.
AuthorityCallLedgerClass. The call ids a worker has applied, so a call that arrives twice runs once (design D5).
AuthorityCallOutcomeEnum. Where an AuthorityRpc call ended up.
AuthorityCallResultStruct. The outcome of one AuthorityRpcWithReply call, handed to its callback exactly once.
AuthorityCallRouterClass. The rules every worker applies to an incoming AuthorityRpc call, in one place and with no engine types, so the worker, the standalone services and the conformance tests run the same code.
AuthorityCallTargetStruct. What the receiving worker knows about a call's target when the call arrives.
AuthorityCallTrackerClass. The sender's side of the reply channel: the calls this worker sent with a reply requested and has not heard back about.
CargoPolicyEnum. What happens to the entities riding in a carrier's container when the carrier is despawned with NebulaWorker.Despawn (docs/frame-bodies.md D5).
ContainerCostMeterClass. What each container this worker leases is actually costing it, measured rather than guessed: the NetworkTick time spent on its entities, the replication bytes they put on the wire, and the owner state a gateway has to relay for them.
EntityRequestResultStruct. Outcome of one EntityRequests.Request call.
EntityRequestStatusEnum. Where a EntityRequests call ended up.
EntityRequestsClass. Asks whichever worker currently has authority over a PersistentEntity key, without needing a local ghost of it: a container query has neighbours to fall back to, but a persistent key has none, since the entity may be nowhere near this wo...
FrameProfilerStatic class. Wall time per Unity frame on a worker, and where in the frame it goes.
FrameReportStruct. One profile window of whole-frame time, in milliseconds per Unity frame (see FrameProfiler).
IWorkerMessagingInterface. Defines the worker messaging operations used by WorkerQuery.
InstanceTransferClass. A prepared crossing.
NebulaLifecycleStatic class. The moments at which the mesh brings a container or a scope to life, or puts it to sleep, as game hooks.
NebulaWorkerClass. Runs authoritative game simulation for the containers assigned to this worker.
WorkerMemorySamplerStatic class. Reads a worker's memory figures for its heartbeat and its profile log line.
WorkerQueryClass. Sends one game-defined request to several workers and collects their replies.
WorkerRegistrationClass. Registers a worker with the control plane and restores missing container assignments after the control-plane document is replaced.
WorkerScopeLifecycleClass. The worker's half of the scope lifecycle (docs/scope-lifecycle.md): it keeps the idle clock of the scope parts it owns honest, performs the retire sequence for a scope the orchestrator moved to ScopeState.Retiring, and reports a restore ...
WorkerTelemetryClass. Reports what a worker holds to the World map of the Nebula Dashboard (MeshTelemetry): for every container with anything in it on this worker, how many players, bots, server-driven and other authoritative entities it holds there, and how ...

Client

Connect a player to the gateway, predict the local entity, and display replicated state.

TypeSummary
DisconnectInfoStruct. How a client's connection ended: the typed Reason, a Message for logs and the player, and whether the client will try again by itself (WillRetry).
DisconnectReasonEnum. Why a client's connection to the gateway ended, or why an attempt to connect failed.
FarEntityClass. An entity of the far relevance tier as a client sees it (NEB-388, docs/interest-management.md §16): a large or important entity beyond its normal relevance radius, with no replica, no variables and no RPCs, only enough to draw a marker o...
FarEntityRemovalEnum. Why an entity left NebulaClient.FarEntities.
LocalPlayerLossCauseEnum. Why the local player's pawn went away while the client stayed connected (NebulaClient.LocalPlayerLost).
NebulaClientClass. The game client.
NebulaTitleScreenClass. Optional IMGUI panel where a player enters the gateway address and a display name before connecting.
SceneRenderOriginStatic class. A client's render origin for the whole scene (docs/container-tree.md D25): while cameras draw, the scene's top-level objects and the cameras are moved by -Offset, the camera's position snapped to Step, so everything near the camera is dr...
StreamLatenessClass. How late a client's world-state streams arrive, for the adaptive part of the render delay (NebulaConfig.AdaptiveInterpolationDelay).

Gateway

Accept client connections, route input to workers, and send replicated state to clients.

TypeSummary
AdmissionActionEnum. What the admission hook may answer (AdmissionDecision).
AdmissionDecisionStruct. The game's answer to AdmissionRequest.
AdmissionKindEnum. Why somebody is asking to enter a target (AdmissionRequest.Kind).
AdmissionRequestStruct. What the game is told when something asks to enter a target that is at capacity.
AnonymousIdentityIssuerClass. Identities the gateway hands to clients that present no token: an HS256 token with iss PlayerIdentity.AnonymousIssuer and a random sub, which the client keeps and presents on its next connection to get the same AuthResult.Identity back.
AuthResultStruct. Outcome of checking the token a client presented in Hello (see OidcTokenValidator).
InterestLinkReasonEnum. Why a gateway holds a link to a worker.
JsonWebTokenStatic class. Compact JSON Web Token (JWT) encoding: split, decode and sign.
MeshPeerAuthStatic class. How gateways and workers prove to each other that they belong to the mesh: HelloMsg.Token on an infrastructure link carries unixSeconds.base64url(HMAC-SHA256(key, role|id|incarnation|unixSeconds)) with a key derived from the mesh token (...
NebulaAdmissionStatic class. The hook that decides what happens when an interaction domain is full.
NebulaGatewayClass. Accepts client connections and maintains a connection to every worker.
OidcTokenValidatorClass. Checks OpenID Connect ID tokens against the issuers a mesh trusts (NebulaConfig.AuthIssuers): signature (RS256/384/512 and ES256/384/512 with the provider's published keys), issuer, expiry, and audience.
PlayerIdentityStatic class. A player's identity across sessions: 64 lowercase hex characters, the SHA-256 of the token's issuer and subject.
SessionClaimsStruct. What a session token says about the session it names.
SessionIdsStatic class. Mesh-wide session ids.
SessionTokensClass. Issues and checks the session tokens a gateway gives every welcomed client (WelcomeMsg.SessionToken).

Orchestrator

Start and stop workers, assign containers, and serve the dashboard.

TypeSummary
AssignmentInputClass. Everything an assignment policy may look at.
AssignmentMoveStruct. One container the planner decided to hand to another worker, with the sentence that explains why (docs/cohesion-rebalancing.md).
AssignmentPlanClass. What a policy would do with a hypothetical number of workers: which containers each of them would hold, and how loaded that would leave them.
AssignmentPlannerStatic class. Runs an IAssignmentPolicy as a dry run against a hypothetical worker count.
BakedAssignmentPolicyClass. The original policy: baked containers are dealt as evenly as possible by count, sticky to their owner, in wire order when that order is spatial (NebulaOrchestrator.ComputeAssignment).
CapacityInfoStruct. How close one container - or one whole scope - is to what a single worker can carry, derived from the cost telemetry the worker already reports (ContainerCost, docs/cost-telemetry.md).
CloudHostSettingsClass. Settings a cloud host needs to create a worker machine.
CloudWorkerHostClass. An IWorkerHost for managed hosting: instead of calling a cloud provider, the orchestrator asks a deployment-scoped resource API for a worker (POST /d/workers), polls the list for its state and private address, and deletes, parks and unpa...
CloudWorkerHostSettingsClass. Where a managed deployment's orchestrator asks for worker machines: a resource API scoped to this one deployment, reached with a token that can do nothing else.
CohesionGroupInfoClass. One entity cohesion group as the orchestrator sees it: the union of what every worker reported about the members it owns (NebulaWorker.CohesionSpan, docs/cohesion-hints.md D7).
ContainerCostStruct. What one container cost the worker that leases it, split into the three components of CostComponent.
ContainerLoadStruct. What one worker last reported about one container: who is inside it (see WorkerTelemetry).
CostBalancedAssignmentPolicyClass. Deal by load: every container (baked or runtime) costs what CostWeights says its occupants cost, containers are ordered along a Morton curve of their centres so neighbours sit next to each other, and the curve is cut into one contiguous ...
CostComponentEnum. The three things a container can be expensive in.
CostWeightsStruct. How much simulating a container costs a worker, from what is inside it.
HetznerWorkerHostClass. One Hetzner Cloud VM per worker, created through the Hetzner Cloud API (https://docs.hetzner.cloud).
IAssignmentPolicyInterface. Decides which worker simulates which container.
IExplainsAssignmentInterface. A policy that can say why it moved what it moved.
IWorkerHandleInterface. One launched worker as seen by its host.
IWorkerHostInterface. Where worker instances live.
JsonWriterClass. Just enough JSON writing for the dashboard state document; avoids a JSON library dependency in the runtime.
LogBufferClass. The mesh's recent log lines, kept on the orchestrator so one place holds what every process of the mesh said last: workers, gateways and the orchestrator's own shipper post batches to POST /api/logs ({"lines":[{"at","role","instance","le...
MeshTelemetryClass. The data behind the World map page of the Nebula Dashboard (/map).
NebulaCapacityStatic class. Deriving the capacity signal from cost rows, and reading it back off the control plane.
NebulaOrchestratorClass. Spins worker processes up and down and authoritatively assigns containers to them through the control plane.
OrchestratorEventStruct. One line of the orchestrator's recent history, shown on the dashboard.
OrchestratorHttpServerClass. The orchestrator's tiny web server: serves the dashboard page and a JSON state document, and forwards commands (POST) to the main thread.
PersistenceEditorClass. Reads and rewrites persisted records for the dashboard's Persistence tab (/persistence).
ProcessWorkerHostClass. Runs each worker as a child Unity process using the configured worker executable.
SaturationCauseEnum. Why the planner could not take load off the busiest worker (SaturationReport).
SaturationReportStruct. The planner's answer to "why is this still hot?".
ScaleActionEnum. What the scaler decided this pass.
ScaleDecisionStruct. The scaler's answer, and everything the dashboard needs to explain it.
ScaleSettingsStruct. The two lines and the two clocks the scaler works to; a copy of the matching NebulaConfig fields.
UnsplittableGroupStruct. A group of containers the planner had to keep on one worker but could not fit there (docs/cohesion-hints.md, D9).
WorkerEnvironmentStatic class. The game's environment variables a worker host gives every worker it launches, in this order (a later layer wins over an earlier one): The service manifest's Env map (ManifestEnv): the non-secret variables of a self-hosted deployment, wr...
WorkerHandleStateEnum. Lists the supported worker handle state values.
WorkerHostBaseAbstract class. Base class for hosts that do not park: Park kills, Unpark fails, and the orchestrator never parks into them.
WorkerLaunchSpecClass. What the orchestrator asks a host to run.
WorkerLoadTrackerClass. How busy each worker is, as a fraction of its tick budget: WorkerInfo.TickMs / tickPeriodMs, sampled from every heartbeat and kept for a short window (NebulaConfig.ScaleWindowSeconds).
WorkerScalerClass. Decides when the mesh should gain or lose a worker, by asking the assignment policy what it would do rather than dividing an abstract cost by a worker count.

Control plane

Register processes and share container assignments and settings through the control plane the orchestrator hosts, or an in-process test implementation.

TypeSummary
ControlPlaneExtensionsStatic class. Provides the control plane extensions API.
ControlPlaneHostClass. The control plane as the orchestrator hosts it: a LocalControlPlane that is the source of truth, served to workers and gateways over the orchestrator's HTTP server and kept in an IControlPlaneStorage between runs.
ControlPlaneJsonStatic class. The control plane as one JSON document, and one control-plane write as one JSON object.
FileControlPlaneStorageClass. The document in one file, written beside it and moved into place so a crash mid-write keeps the previous copy.
GatewayInfoClass. Describes a gateway registered with the control plane.
GatewaySessionReplyClass. The result of a gateway admission operation.
GatewaySessionRequestClass. An operation on one player's admission claim.
GatewayStatsStruct. What a gateway reports about itself on every heartbeat.
IControlPlaneInterface. Provides process registration, container assignments with epochs, and game-defined settings.
IControlPlaneStorageInterface. Where ControlPlaneHost keeps the control plane between orchestrator runs: one JSON document (ControlPlaneJson), written a little after every change and read once at startup.
IGatewaySessionControlPlaneInterface. Optional control-plane extension for single-session gateway admission.
IScopeStoreInterface. Where the orchestrator keeps the claim on a scope key between runs.
LeaseInfoClass. Describes the current worker assignment for one container.
LeaseStateStatic class. Provides the states used by a container lease.
LocalControlPlaneClass. The control plane's state machine: registrations, heartbeats, leases with epochs and settings, kept in plain lists in this process.
MemoryControlPlaneStorageClass. Keeps nothing: the control plane starts empty on every orchestrator run.
MeshSettingsStatic class. Mesh-wide settings Nebula itself writes, in the same key/value channel the game uses (IControlPlane.Settings).
RemoteControlPlaneClass. IControlPlane for a worker or gateway: a mirror of the control plane the orchestrator hosts (ControlPlaneHost), reached over HTTP at the orchestrator's dashboard address.
ScopeAckClass. One worker's acknowledgement that it finished a lifecycle step for one part of a scope.
ScopeActivationRequestClass. What a caller asks for when it wants a scope to exist.
ScopeDefinitionClass. What a scope is made of: the containers to bring into being and how their occupants see the public world.
ScopeInfoClass. A shared simulation scope the mesh has been asked to bring into being: the opaque key that names it, the definition it was activated from, and the containers that now exist for it.
ScopeJsonStatic class. The scope row and the scope definition as JSON, inside the control-plane document and the activation op.
ScopeKeysStatic class. How a scope key becomes the ids every role agrees on.
ScopeKindStatic class. The shapes a ScopeDefinition can take.
ScopeLifecycleStatic class. The scope lifecycle's pure parts: how idle age and occupancy are aggregated from a scope's parts, when a scope should retire, and whether a client may be admitted to it.
ScopePartClass. One runtime container of a scope: a stable part id and an axis-aligned box in absolute world coordinates.
ScopePhaseStatic class. What a worker has finished doing to one part of a scope (ScopeAck).
ScopeRetireContextStruct. What the retire policy is told about a scope.
ScopeStateStatic class. The states a ScopeInfo row can be in.
WorkerInfoClass. Describes a worker registered with the control plane.
WorkerRosterClass. Which workers the orchestrator has declared dead, as a mirror of the control plane can tell: a worker row that was in the last document observed and is missing from this one, when both are the same document (IControlPlane.DocumentId).
WorkerStatsStruct. What a worker reports about itself on every heartbeat.
WorkerStatusStatic class. Provides the lifecycle states reported by a worker.

Bootstrap

Choose a process role and start its Nebula components.

TypeSummary
EditorDevPathsStatic class. Where the Multiplayer Play Mode dev loop keeps its files: under the project's Library/Nebula, shared by the main Editor and every virtual player, and never read by a build.
EditorDevSessionStatic class. Binds the clients of the Multiplayer Play Mode dev loop to the server their own session started, so a client never joins some other mesh that happens to hold the port.
EditorPlayerEnum. What one Editor process does under NebulaEditorRunMode.MultiplayerPlayMode, decided by EditorRunPlan.Resolve from facts the bootstrap reads (whether this is the Editor, whether this is the main Editor or a virtual player, its Multiplayer...
EditorRosterStruct. What one virtual player knows about the others of the Multiplayer Play Mode window, read from the project's Library/VP/SystemData.json (EditorRosterReader).
EditorRosterReaderStatic class. Reads Library/VP/SystemData.json, where Multiplayer Play Mode lists its players.
EditorRunPlanStruct. The decision for one Editor process in the Multiplayer Play Mode dev loop, and the settings it implies.
NebulaBootstrapClass. Entry point for Unity workers and clients.
NebulaEditorPersistenceEnum. Where the server a virtual player hosts keeps persistent entities (NebulaConfig.EditorPersistence).
NebulaEditorRunModeEnum. What pressing Play in the Editor starts (NebulaConfig.EditorRunMode).
NebulaRolesEnum. Lists the process roles that NebulaBootstrap can start.

Serialization

Write and read values used by messages, variables, inputs, and RPCs.

TypeSummary
INetworkSerializableInterface. Implement on structs/classes you want to put in a NetworkVariable<T> or an RPC argument.
NetworkReaderClass. Counterpart of NetworkWriter.
NetworkSerializationStatic class. Type-driven (de)serialisation used by NetworkVariables and RPC arguments.
NetworkWriterClass. Writes Nebula messages to a growable little-endian byte buffer.

Transport

Send reliable ordered or unreliable sequenced messages through LiteNetLib.

TypeSummary
ChaCha20Poly1305ManagedStatic class. Implements ChaCha20-Poly1305 authenticated encryption with associated data (AEAD), as specified in RFC 8439.
ClientEncryptionClass. Configures gateway certificate pinning and the client handshake timeout.
DeliveryEnum. Delivery classes supported by each Nebula network link.
EncryptedTransportClass. Encrypts client-to-gateway packets over a User Datagram Protocol (UDP) transport.
ISecureTransportInterface. Reports encryption status for each peer.
ITransportInterface. Provides the network transport used by Nebula.
LiteNetTransportClass. ITransport over LiteNetLib.
MultiTransportClass. Several transports behind one ITransport, so the gateway accepts native clients over UDP and browsers over WebRTC without caring which link a peer arrived on.
NebulaCryptoStatic class. Provides random bytes, SHA-256 hashes, hash-based message authentication codes (HMAC), and key derivation for encrypted transport connections.
NetworkSimulationClass. Network conditions to simulate on one link, for testing prediction and lag compensation on one machine.
SimulatedNetworkTransportClass. An ITransport that adds the latency, jitter and packet loss of a NetworkSimulation to every link of another transport, in both directions, without touching the remote side.
TransportDisconnectReasonEnum. Why a transport link closed, in terms that do not depend on the transport: carried by a TransportEvent.Kind.Disconnected event in TransportEvent.Reason.
TransportEventStruct. Stores the values used by transport event.
TransportIdentityClass. Holds the gateway's X.509 certificate, RSA private signing key, and public-key fingerprint for client pinning.
TransportSecurityStatic class. Reads encryption status and handshake errors through an ITransport reference.
X25519Static class. Implements X25519 key agreement from RFC 7748 §5 using BigInteger arithmetic.

Protocol

Inspect messages exchanged by clients, the gateway, and workers.

TypeSummary
AuthorityCallFlagsEnum. Flags on an AuthorityCallMsg.
AuthorityCallMsgStruct. An AuthorityRpc on the worker-to-worker link (MsgId.AuthorityRpc).
AuthorityCallReplyMsgStruct. The outcome of an AuthorityCallMsg that set AuthorityCallFlags.WantsReply (MsgId.AuthorityRpcReply), sent by the worker that decided it to the worker whose index the call id carries.
AuthorityTransferMsgStruct. The authority event.
ByteArrayComparerClass. Compares byte arrays by content: how a party without game types keys a map (the gateway's cache).
ClientFocusHintMsgStruct. Client -> gateway: where the player is looking, as a hint for interest (a sniper scope, an RTS camera).
ClientInputMsgStruct. A short run of recent inputs (redundant against loss).
ContainerOwnershipEntryStruct. Stores the values used by container ownership entry.
ContainerOwnershipMsgStatic class. Carries the container ownership protocol message.
ContainerOwnershipUpdateStruct. What one MsgId.ContainerOwnership message says: either the complete set of containers a client should know about (Full) or a change to it.
DespawnPlayerMsgStruct. Gateway -> worker: the client's link ended, so the session waits for a reclaim, or the session is over (EndNow).
DriveInputMsgStruct. A driver's recent inputs for an entity it drives (MsgId.DriveInput, protocol 25): the same frames as ClientInputMsg, for the entity NetId names instead of the sender's pawn.
EndSessionMsgStruct. Worker -> gateway: this gateway no longer speaks for the session, because the player connected again through another gateway (NebulaConfig.SingleSessionPerPlayer).
EntityDespawnMsgStruct. Carries the entity despawn protocol message.
EntityExtentSourceEnum. Where an entity's extent comes from: the box, in the entity's own space, that the ghost band measures to each neighbouring container instead of the entity's root position (NetworkIdentity.ExtentSource).
EntityFlagsEnum. Lists the supported entity flags values.
EntityForgetMsgStruct. Worker -> gateway: the entity left every region this gateway subscribes on this worker.
EntityInterestFlagsEnum. Per-prefab interest hints that travel with a spawn (the standalone gateway has no prefabs to read them from).
EntityMapsMsgStruct. Changed map entries for one entity (docs/replicated-collections.md D4): MsgId.EntityMaps worker to gateway to client, MsgId.GhostMaps worker to worker.
EntityRedirectMsgStruct. Worker -> gateway: an entity the gateway subscribed by id (a policy extra, or one it owns) is now on another worker.
EntityRpcMsgStruct. Carries the entity rpc protocol message.
EntitySpawnMsgStruct. Full description of an entity.
EntityStateEntryStruct. One entity's selected transform fields inside a WorldState/GhostState batch.
EntitySyncMsgStruct. One entity's sync chunks for one tick (see SyncStateCodec).
EntityVarsMsgStruct. Carries the entity vars protocol message.
FarEntitiesMsgStatic class. Worker -> gateway, and gateway -> client: a batch of far-tier entries (MsgId.FarEntities, protocol 26).
FarEntityEntryStruct. One entity of the far relevance tier (docs/interest-management.md §16, NEB-388): a large or important entity seen beyond the normal interest radius as a pose and nothing else.
FarEntryFlagsEnum. Lists the supported far entry flags values.
FarEntryKindEnum. What one FarEntityEntry says about its entity.
GatewayDrainingMsgStruct. Gateway -> client: the gateway is draining and will close this link.
GoodbyeMsgStruct. Client -> gateway: the player is leaving for good (MsgId.Goodbye, protocol 23).
HelloFlagsEnum. Lists the supported hello flags values.
HelloMsgStruct. Carries the hello protocol message.
InstanceContainerInfoClass. Identifies a private container's simulation scope and content.
InstancePreparationMsgStruct. Carries the instance preparation protocol message.
InterestResyncMsgStruct. Worker -> gateway: the last InterestSubscribeMsg could not be applied (wrong base sequence, or the result did not verify).
InterestSubscribeFlagsEnum. Lists the supported interest subscribe flags values.
InterestSubscribeMsgStruct. Gateway -> worker: the set of regions this gateway wants entities from.
JoinHoldReasonEnum. Why a join is being held in JoinState.Starting.
JoinRejectReasonEnum. Why a join was refused, in typed form.
JoinRejectedMsgStruct. Gateway -> client: the join was refused; Reason is fit to show the player.
JoinStateEnum. How far a client's join has got.
JoinStatusMsgStruct. Gateway -> client: the join's state and, while JoinState.Starting, a rough wait in seconds (0 = unknown) and why.
KickPlayerMsgStruct. Worker -> gateway: remove this player (MsgId.KickPlayer, protocol 23), sent by NebulaWorker.Kick to the gateway that speaks for the session.
KickedMsgStruct. Gateway -> client: the server removed this player (MsgId.Kicked, protocol 23).
MsgIdEnum. Wire message ids.
NetworkMapCacheClass. The contents of an entity's maps kept as opaque bytes, by a party that relays them without knowing their types: the gateway, so a late joiner is sent the current contents (docs/replicated-collections.md D6).
NetworkMapCodecStatic class. The wire and save format of NetworkMapBase contents (docs/replicated-collections.md D3).
OwnerStateMsgStruct. Authoritative post-simulation state of a predicted entity, for its owner's reconciliation.
PeerRoleEnum. Lists the supported peer role values.
PingMsgStruct. Carries the ping protocol message.
PlayerClaimsStatic class. Claims from a player's verified sign-in token that the gateway forwards to workers (NebulaConfig.ForwardedClaims): the claim names the game listed, with their values as strings.
PlayerSessionsClass. A worker's view of which gateway currently speaks for each player session, and how new that claim is.
PongMsgStruct. Carries the pong protocol message.
PortalAdjacencyMsgStruct. MsgId.PortalAdjacency (docs/portals.md D30, D45): a link the sender drives, as a worker that holds the other side of its band needs it.
PortalApertureKindEnum. The shape of a Portal's aperture, the opening on its face's z = 0 plane (docs/portals.md D3).
PortalFarKindEnum. How a portal names its far side (docs/portals.md D5).
PortalHandoffLinkStruct. One party's link as the worker that releases a portal's near container hands it to the new owner (PortalHandoffMsg).
PortalHandoffMsgStruct. MsgId.PortalHandoff (docs/portals.md D44, D45): the links of one portal, sent by the worker that is releasing the portal's near container to the worker that is taking it, together with the release.
PortalIdsStatic class. The ids portals and their links are named by (docs/portals.md D6): derived, so every process computes the same one.
PortalLinkFlagsEnum. Bit flags of a PortalLinkRecord.
PortalLinkRecordStruct. One party's link through a portal, as the network gateway and a client learn it (MsgId.PortalLinks).
PortalLinksMsgStatic class. MsgId.PortalLinks: [upserts:ushort]{record}[removes:ushort]{linkId}, worker → network gateway → client.
PortalLinksUpdateClass. A change to the links a receiver knows (MsgId.PortalLinks).
PortalRecordStruct. A portal as the network gateway and a client learn it (MsgId.Portals, protocol 28): the near face, the far side, the aperture and the sizes of the regions derived from it.
PortalStateEnum. Where a party's PortalLink stands (docs/portals.md D9).
PortalWaitEnum. Why a link is not PortalState.Open (docs/portals.md D9).
PortalWarmMsgStruct. MsgId.PortalWarm: a member client holds the far window of a link and its content is ready.
PortalWindowStruct. One side's window of a portal (docs/portals.md D3, D20): the cross-section of the aperture grown by the portal's WindowMargin sideways and extruded WindowDepth into that side, an oriented box in the face's axes.
PortalsMsgStatic class. MsgId.Portals: [upserts:ushort]{record}[removes:ushort]{portalId}, worker → network gateway → client.
PortalsUpdateClass. A change to the portals a receiver knows (MsgId.Portals): records to add or replace, and ids to forget.
ProtocolCompatibilityStatic class. Checks client protocol and game content versions against the gateway's supported range.
SessionReplacedMsgStruct. Gateway -> client: the player this client signed in as connected again elsewhere, and that newer connection now holds the session and the pawn (NebulaConfig.SingleSessionPerPlayer).
SpawnPlayerMsgStruct. Gateway -> worker: a client wants a pawn.
SyncAudienceMsgStruct. Worker to gateway (MsgId.SyncAudience, protocol 20): the member sets of an entity's SyncAudience.Custom behaviors changed.
TransformFieldsEnum. Selected axes and encoding of a root transform update.
TransformFieldsExtEnum. Protocol 30 additions to a root transform update, in a byte written after TransformFields to peers of HelloMsg.MotionFidelityVersion or newer.
WelcomeMsgStruct. Carries the welcome protocol message.
WorldStateMsgStatic class. Batched transforms for one tick from one worker.

Debug

Display mesh status and measure worker tick sections.

TypeSummary
InterestProbeClass. A client-side watchdog for interest management and content streaming: once a second it writes one machine-parsable line saying what this client can currently see and whether any of it is wrong.
NebulaDebugOverlayClass. IMGUI status overlay for every role.
NebulaProfilerStatic class. Where a worker's tick goes.
ProfileSectionClass. A named stretch of code whose cost is accumulated by NebulaProfiler.

Editor

Build players, start a local mesh, validate a project, and author partitioned worlds in the Unity Editor.

TypeSummary
ContainerEditorClass. Inspector for Container: the default fields plus a button that refits the box to the object's bounds.
NebulaBuildStatic class. Builds the Unity player for workers and clients, exports service data, and publishes the standalone .NET orchestrator and gateway beside it.
NebulaMeshStatic class. Developer loop: launch a local mesh from the last build (the standalone orchestrator, which hosts the control plane and starts the gateway and N workers), then press Play in the Editor as a client.
NebulaMigrateStatic class. One-off upgrades of a project's assets to the current package.
NebulaSetupStatic class. Adds the components and settings required to use Nebula in the active scene.
NebulaValidatorStatic class. Nebula > Validate Project: checks the things that otherwise only show up as a broken build or a silent mesh.
SceneEntityIdsStatic class. Gives every NetworkIdentity authored into a scene its NetworkIdentity.SceneId when the scene is saved: a random non-zero id, unique within the scene, that then stays with the object for good.
ServerPlayerViewClass. Takes the Game view's place in a Multiplayer Play Mode virtual player that hosts the server (EditorRunPlan.HidesGameView).
WorldAssetsStatic class. Finds world definitions and manifests in the project and maps scenes back to cells.
WorldAuthoringStatic class. Create, open, close, delete and populate cell scenes.
WorldBakerStatic class. Builds the WorldContainerManifest: one container per cell plus every Container authored inside the cell scenes, with cell-local poses, in wire order.
WorldEditorPlacementStatic class. Keeps cell scenes usable in the editor even though they are authored cell-local.
WorldEditorWindowClass. The World window (Nebula > World): a map of the cell grid, one vertical layer at a time.
WorldSetupStatic class. Nebula > Set Up World Partition: makes the active scene the hub of a partitioned world in one pass.

Storage

Keep the control plane and saved entities in SQLite or PostgreSQL from the standalone orchestrator.

TypeSummary
NebulaDatabaseClass. The standalone orchestrator's database: SQLite (a file next to the orchestrator, the default for a local mesh) or PostgreSQL (for a deployed mesh), behind one ADO.NET surface.
SqlControlPlaneStorageClass. IControlPlaneStorage in the orchestrator's database: the document sits in the single row of nebula_control_plane, replaced on every save.
SqlPersistenceStoreClass. IPersistenceStore in the orchestrator's database (NebulaDatabase: SQLite or PostgreSQL), table nebula_entity.
SqlSharedCacheStoreClass. ISharedCacheStore in the orchestrator's database (NebulaDatabase: SQLite or PostgreSQL), table shared_cache.

Interest

TypeSummary
CarriedTransitionClass. The bookkeeping a rebucket of a carrier needs: where the carrier and everything riding in it sat before the index moved them, and which gateways each of them gains or loses as a result.
CarrierLinkEnum. The outcome of linking an item to a carrier.
ClientInterest<T, TSource>Class. One client's interest set and the state machine that maintains it.
ConfigIssueStruct. One problem found in a configuration, named by field so an inspector or nebula doctor can point at it.
ConfigSeverityEnum. How much a ConfigIssue matters.
DefaultInterestPolicyClass. What a mesh does without a game policy: one focus at the pawn, plus the client's validated hint as a second focus when it has sent one.
FarPublisherClass. The worker's half of the far tier: which gateways hear about each far entity, and when.
FarRelevanceStatic class. The far relevance tier's arithmetic (docs/interest-management.md §16, NEB-388), shared by the worker, the gateway and the tests.
FocusHintDecisionStruct. What the server decided about one incoming focus hint: which mode to treat it in, and the point itself (a policy may move it — snap an RTS camera to the territory it is allowed to watch, say).
FocusHintFilterClass. Validation of ClientFocusHintMsg, on the gateway, before a policy ever sees a hint.
FocusModeEnum. How much of the world a client's own ClientFocusHintMsg may move its interest to.
HandoverScopeClass. The bookkeeping one whole-subtree authority handoff needs: how deep the recursive transfer currently is, and which entities are leaving with the carrier being handed over right now.
IFocusHintPolicyInterface. The optional second half of IInterestPolicy: the game's say over one client's focus hint, asked on the gateway loop as the hint arrives and before anything is done with it.
IInterestPolicyInterface. The game's say in what a client hears about.
IInterestSource<T>Interface. What ClientInterest<T,TSource> needs to know about the records it is evaluating.
InterestClientStruct. What a policy is told about the client it is deciding for.
InterestEntityStruct. What a policy is told about the entity it is deciding on.
InterestFocusStruct. One place a client is interested in: a point (the usual case, its pawn) or a box (a portal's window, an RTS selection).
InterestGridStruct. A uniform spatial hash over absolute world coordinates: the region arithmetic every part of interest management shares (gateway, worker, standalone services).
InterestIndex<T>Class. Region → dense list of items, with swap-remove and O(1) rebucketing.
InterestPlacementEnum. Where an item sits in an InterestIndex<T>.
InterestPoliciesStatic class. Combining policies, so a game can add one concern (parties) without rewriting another (fog of war).
InterestQueryClass. What a policy fills in for one client: where it is looking, and any entities it must have whatever the distance.
InterestScheduleClass. Which clients a gateway re-evaluates on this tick.
InterestSettingsStruct. The interest settings, resolved from NebulaConfig and already clamped into a set of values that work together (see Validate).
RegionKeysStatic class. How an interest region id is made unique to its scope.
RegionPublisherClass. The worker's side of interest management: which gateways hear about each region, and the grouping that lets one serialization serve all of them.
RegionSubscriptionStatic class. The shared arithmetic of the region-subscription protocol: a set's fingerprint.
RegionSubscriptionReceiverClass. The worker's end of one gateway link's subscription: the region set it filters that gateway's traffic with.
RegionSubscriptionSenderClass. The gateway's end of one worker link's subscription: what this gateway wants from that worker, and the messages that get the worker there.
RelevancePriorityEnum. How much an entity's transform updates matter to the clients that hold it, relative to its distance from them (NetworkIdentity.RelevancePriority, docs/server-owned-entities.md D3).
RelevanceTierBandsStruct. A priority's own distance tiers (NebulaConfig.InterestLowTiers and its siblings, docs/server-owned-entities.md D10): two radii and a divisor for each of the three bands they make.
RelevanceTiersStatic class. The arithmetic of RelevancePriority: pure, shared by the gateway, the worker and the tests.

Persistence

TypeSummary
IPersistenceStoreInterface. Long-term storage for entities that opted into persistence (PersistentEntity).
LocalPersistenceStoreClass. In-process IPersistenceStore with the exact write rules of the persistence module (epoch check, version bump), optionally backed by a file so a single-process run survives a restart.
NebulaPersistenceClass. The worker's persistence service: it checkpoints every authoritative entity carrying a PersistentEntity into an IPersistenceStore, and brings those entities back when this worker gains the lease of a container they were saved in.
PersistAttributeClass. Marks a NetworkVariable<T> field as part of the entity's saved state.
PersistedEntityRecordClass. One persisted entity as the store holds it: enough to bring the entity back on any worker (prefab or scene object, container and pose, authority epoch) plus the opaque state blob the entity itself wrote (PersistentStateCodec: opted-in Ne...
PersistedRecordJsonStatic class. PersistedEntityRecord as JSON, the wire format between RemotePersistenceStore (workers) and PersistenceHost (the orchestrator).
PersistenceAnswerStatic class. Whether the answer a store is delivering right now is a stand-in for one the backend could not give.
PersistenceHostClass. Serves the orchestrator's IPersistenceStore to workers over the orchestrator's HTTP server, so a worker needs no database driver of its own (RemotePersistenceStore is its client).
PersistentEntityClass. Put this on a prefab or a scene object to make the entity outlive the process that simulates it.
PersistentStateCodecStatic class. The state blob of a PersistedEntityRecord: every PersistAttribute NetworkVariable and every behaviour's NetworkBehaviour.WritePersistentState chunk, each under a name.
RemotePersistenceStoreClass. IPersistenceStore for a worker: every save and load goes to the orchestrator, which owns the real store (PersistenceHost over the dashboard address, the same one the control plane uses).

SharedCache

TypeSummary
FolderSharedCacheStoreClass. ISharedCacheStore in a folder, one file per object.
ISharedCacheClientInterface. A worker's way to the shared cache.
ISharedCacheStoreInterface. Where the shared cache keeps its objects: a folder (FolderSharedCacheStore), the orchestrator's database (SqlSharedCacheStore in the standalone orchestrator), or memory (MemorySharedCacheStore).
LocalSharedCacheClientClass. ISharedCacheClient over a store in this process: a folder under the project or the persistent data path, or the store an orchestrator in the same process hosts.
MemorySharedCacheStoreClass. ISharedCacheStore in memory: nothing survives the process.
NebulaSharedCacheStatic class. A cache that every worker of a mesh shares, for data that is expensive to compute and the same every time: baked terrain, path data, generated layouts.
RemoteSharedCacheClientClass. ISharedCacheClient for a worker of a mesh or of Nebula Cloud: GET and PUT /cache/{key} on the orchestrator (SharedCacheHost), over the same address and mesh token that RemotePersistenceStore uses.
SharedCacheClientBaseAbstract class. What every client does around a backend call.
SharedCacheHostClass. Serves the orchestrator's ISharedCacheStore to workers (RemoteSharedCacheClient) over the orchestrator's HTTP server, beside PersistenceHost: GET /cache/{key}: the object as application/octet-stream with its SHA-256 in X-Nebula-Checksum;...
SharedCacheKeyStatic class. The rules every part of the shared cache applies to a key and to a stored object: the longest key and object, which characters a key may use, and how an object's checksum is written.
SharedCacheStatsStruct. What a process has done with the shared cache since it started.

On this page