Skip to main content

FB2ComponentSchedulerSystem

Overview

  • Scheduler system that centrally manages component Ticks. Manages 24 components in per-type groups, time-sliced with round-robin + frame budget, compensating timing error via AccumulatedTime. Excluded components: AuraComponent (handled by AuraSystem), CharacterMovementComponent (handled by MovementUpdateSystem, Phase 6).

Metadata

FieldValue
Kindcomponent
EnvironmentB2 - Simulation
Categorycomponents
ExtendsFB2Subsystem
Requirerequire('Systems.FB2ComponentSchedulerSystem')

Properties (9)

NameTypeDescription
AlwaysBudgetMsnumber
CurrentQualityLevelinteger
GroupKeysEB2ComponentType[]
IntervalScalenumber
MaxProcessScalenumber
NextGroupIndexinteger
PendingUnregistrationsany[]
TaskGroupstable<EB2ComponentType, FB2TickTaskGroup>Per-type Task groups.
TickBudgetMsnumberFrame-budget management.

Functions (10)

FunctionParametersReturnsDescription
ApplyQualitySettingsInQualityLevel: integer-Applies Quality Settings.
ConfigureTaskGroupInType: EB2ComponentType, InMaxProcessPerTick: integer, InDefaultInterval: number, bInAlwaysProcess: boolean, bInUsePriorityOrder: boolean-Configures a per-type group (adjusts MaxProcessPerTick, DefaultInterval, AlwaysProcess, PriorityOrder).
GetCurrentQualityLevel-integerReturns Current Quality Level.
GetTaskCountInType: EB2ComponentTypeintegerQueries state (task count).
GetTotalTaskCount-integerReturns Total Task Count.
IsRegisteredInEntityId: FB1EntityId, InType: EB2ComponentTypebooleanChecks whether it is registered.
RequestImmediateProcessInEntityId: FB1EntityId, InType: EB2ComponentType-Requests immediate processing (when responsiveness is needed, e.g. an urgent need).
TickDeltaTime: number, CurrentTime: FDateTime, GameDeltaMinutes: number-System Tick. Called before the Entity Tick to process registered components.
UnregisterComponentInEntityId: FB1EntityId, InType: EB2ComponentType-Unregisters Component.
UpdateEntityPriorityInEntityId: FB1EntityId, InPriority: integer-Bulk-updates priority per entity (called once at the Entity level on SLOD change).

Override points (6)

Implement these in Lua as FB2ComponentSchedulerSystem.Override_Name = function(...) end.

FunctionParametersReturnsDescription
Override_ApplyQualitySettingsInQualityLevel: integer-Applies Quality Settings.
Override_ConfigureTaskGroupInType: EB2ComponentType, InMaxProcessPerTick: integer, InDefaultInterval: number, bInAlwaysProcess: boolean, bInUsePriorityOrder: boolean-Configures a per-type group (adjusts MaxProcessPerTick, DefaultInterval, AlwaysProcess, PriorityOrder).
Override_RequestImmediateProcessInEntityId: FB1EntityId, InType: EB2ComponentType-Requests immediate processing (when responsiveness is needed, e.g. an urgent need).
Override_TickDeltaTime: number, CurrentTime: FDateTime, GameDeltaMinutes: number-System Tick. Called before the Entity Tick to process registered components.
Override_UnregisterComponentInEntityId: FB1EntityId, InType: EB2ComponentType-Unregisters Component.
Override_UpdateEntityPriorityInEntityId: FB1EntityId, InPriority: integer-Bulk-updates priority per entity (called once at the Entity level on SLOD change).