Entity Lifecycle – Arma Reforger
Jump to navigation
Jump to search
Definitions
- Frame: every drawing frame (frame as in FPS)
- Fixed Frame: a fixed event happening 30 times per second
- Physics Simulation Frame: a fixed event at 60 simulations per second (frequency defined in Workbench → Options → Game Project → Modules → Physics Settings → Ticks)
Lifecycle
Section | Mode | Method | Description | ||
---|---|---|---|---|---|
WB Play |
WB Edit | Entity | Component | ||
Instantiation | ![]() |
![]() |
Constructor | ||
![]() |
![]() |
Constructor | |||
![]() |
![]() |
OnPostInit | |||
![]() |
![]() |
EOnInit | |||
![]() |
![]() |
EOnInit | |||
![]() |
_WB_SetTransform | ||||
![]() |
_WB_SetTransform | ||||
![]() |
_WB_OnInit | ||||
![]() |
_WB_OnInit | ||||
![]() |
_WB_MakeVisible | ||||
Workbench
Execution loop (World Editor) |
![]() |
_WB_AfterWorldUpdate | |||
![]() |
_WB_AfterWorldUpdate | ||||
Simulation init | ![]() |
EOnActivate | |||
Simulation loop | ![]() |
EOnFrame | |||
![]() |
EOnFrame | ||||
![]() |
EOnDiag | ||||
![]() |
EOnDiag | ||||
![]() |
EOnFixedFrame | if 1/30s passed since the last execution | |||
![]() |
EOnFixedFrame | if 1/30s passed since the last execution | |||
![]() |
EOnSimulate | ||||
![]() |
EOnSimulate | ||||
![]() |
EOnPostSimulate | ||||
![]() |
EOnPostSimulate | ||||
![]() |
EOnPhysicsMove | if 1/60s passed since the last execution - can be executed multiple times per frame | |||
![]() |
EOnPhysicsMove | if 1/60s passed since the last execution - can be executed multiple times per frame | |||
![]() |
EOnPostFrame | ||||
![]() |
EOnPostFrame | ||||
![]() |
EOnPostFixedFrame | If EOnFixedFrame executed this frame | |||
![]() |
EOnFixedPostFrame | If EOnFixedFrame executed this frame | |||
Destruction | ![]() |
![]() |
OnDelete | ||
![]() |
![]() |
Destructor | Do NOT delete components in an entity's destructor - this can lead to nullpointer exceptions | ||
![]() |
![]() |
Destructor | Do NOT reference the parent entity in a component's destructor - the entity is already deleted by then |
Example Code
The following code is to be placed in a .c file in the scripts