Nebula
Core

NebulaDiagnostics

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.

generated from the sources
public static class NebulaDiagnostics

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.

Properties

RejectedAuthorityRpcSends

public static int RejectedAuthorityRpcSends { get; }

How many AuthorityRpc sends this process discarded because the caller held neither an authoritative nor a ghost copy of the entity (a client, an unspawned entity). Each one is also logged through NebulaLog.Warn. NebulaWorker.RejectedAuthorityRpcSends reads it.

SplitCohesionGroups

public static int SplitCohesionGroups { get; }

How many handovers this worker could not carry out as a unit because a member of the entity's NetworkIdentity.CohesionGroup was not owned here (docs/cohesion-hints.md, D4). Each one is also logged through NebulaLog.Warn. A group is never split silently.

PortalCloseOverruns

public static int PortalCloseOverruns { get; }

How many portal links closed because the band never emptied within Portal.CloseTimeoutSeconds (docs/portals.md D9, D36). Each one is also logged through NebulaLog.Warn.

PortalRefusals

public static int PortalRefusals { get; }

How many crossings portals refused: an entity that met the aperture while its link was not open, or that was not admitted (docs/portals.md D17, D36).

public static int OpenPortalLinks { get; }

How many portal links are open on this worker right now (docs/portals.md D36).

public static int SplitPortalLinks { get; }

How many of this worker's open portal links lead into a container another worker owns, in the far window's entry or in any other container of it (docs/portals.md D35, D36). A split link still works: a crossing through it is one handover.

public static int BoundPortalLinks { get; }

How many portal links of this worker are bound into one planner item with the containers behind them (docs/portals.md D34): every link that is not closed and joins at least two containers.

PortalCrossings

public static int PortalCrossings { get; }

How many crossings through portals this worker committed (one for each entity that crossed on its own, however many it took along), in total (docs/portals.md D36).

CrossWorkerPortalCrossings

public static int CrossWorkerPortalCrossings { get; }

How many of PortalCrossings committed into a container another worker owns, so the ordinary handover took them on the same tick (docs/portals.md D35, D36).

PortalSplitRefusals

public static int PortalSplitRefusals { get; }

How many crossings a portal refused because a carrier had riders that this worker does not simulate, and moving it would have left them behind (docs/portals.md D35, PortalRefusal.SplitAboard). Also counted in PortalRefusals.

PortalHandoffs

public static int PortalHandoffs { get; }

How many times this worker handed a portal's links to the worker taking its near container (docs/portals.md D44).

PortalProxies

public static int PortalProxies { get; }

How many portal proxies stand in physics scenes on this process right now (docs/portals.md D26, D27, D36): kinematic copies of bodies in a band and static copies in a throat, not counting aperture colliders. A worker holds at most Portal.MaxProxiesPerPortal body copies per portal.

PortalProxiesDropped

public static int PortalProxiesDropped { get; }

How many body proxies a portal did not build because it was at Portal.MaxProxiesPerPortal (docs/portals.md D26).

On this page