Appearance
Regeneration Simulation LOD policy
Mass Forge regeneration interoperates with Unreal Engine's standard Simulation LOD variable-tick path. Mass Forge does not define a second distance model or hard-code update rates. The project's Simulation LOD trait owns classification, distances, population limits, and the High, Medium, Low, and Off tick rates.
Opt-in setup
- Configure attributes and a Mass Forge Regeneration Profile normally.
- Add Mass Forge Attributes Trait and Mass Forge Regeneration Trait to the Entity Config.
- Add Unreal's Simulation LOD trait to that Entity Config.
- Enable variable ticking on the Simulation LOD trait.
- Set deliberate High, Medium, Low, and Off tick rates for the project's accuracy and frame-budget needs.
No Mass Forge setting is required. An entity without the Simulation LOD variable-tick fragments continues to regenerate on every Mass Forge processor run using the ordinary world simulation delta.
Behavior and accuracy by LOD
| Simulation LOD | Scheduling source | Mass Forge behavior | Accuracy guarantee |
|---|---|---|---|
| High | Project High tick rate; Unreal's default is every frame | Runs only when the standard Simulation LOD chunk is due | Constant-rate rules integrate the complete elapsed Simulation LOD delta, within floating-point precision |
| Medium | Project Medium tick rate | Skips non-due chunks and catches up on the next due update | No elapsed time is intentionally discarded; visible changes arrive at Medium cadence |
| Low | Project Low tick rate | Skips non-due chunks and catches up on the next due update | No elapsed time is intentionally discarded; larger value steps are expected at Low cadence |
| Off | Project Off tick rate | Follows the configured Off cadence exactly | A finite Off cadence continues batched regeneration; a project that prevents Off updates intentionally pauses regeneration until the entity becomes due again |
| No variable ticking | Mass Forge PrePhysics processor cadence | Uses the current world simulation delta every processor run | Existing frame-by-frame behavior is unchanged |
The processor is explicitly ordered after Unreal's Simulation LOD processor. On a due chunk it reads the accumulated DeltaTime stored for each entity by Unreal, rather than substituting the current frame delta.
Interaction with rule Tick Interval
Simulation LOD cadence and a regeneration rule's Tick Interval are independent layers:
- Simulation LOD decides whether the chunk is visited.
- The accumulated entity delta advances the rule.
- A zero rule interval applies the entire accumulated delta immediately.
- A positive rule interval applies all complete authored intervals in one linear update and retains the remainder.
For example, an entity due after 1.25 seconds with a rule interval of 0.5 seconds applies 1.0 second of work and retains 0.25 seconds. This preserves the existing deterministic catch-up contract.
Deliberate sampling boundary
Constant-rate rules reproduce the same linear result regardless of LOD cadence, subject to normal floating-point precision and target clamping. Attribute-driven rates sample the rate attribute when the due update runs. Mass Forge does not reconstruct historical rate values between updates, so a frequently changing sampled rate may produce a different approximation at Medium, Low, or Off cadence.
For gameplay-critical rapidly changing rates, use High LOD, shorten the configured tick rate, or use a constant rate. Clamping occurs when the update is applied, not during skipped frames, so presentation and threshold listeners observe batched changes at the selected cadence.
Safety and verification
Invalid, zero, or negative accumulated deltas are ignored for that entity. Paused worlds therefore do not advance regeneration. The standard Simulation LOD chunk filter prevents entity iteration for non-due chunks; due chunks retain the allocation-free, compiled-slot hot loop.
MassForge.Abilities.WorldActivation constructs real Mass archetypes with and without Simulation LOD data. It proves that a non-due variable-tick chunk is skipped, a due entity consumes its full accumulated delta, and an entity without variable ticking still uses the world simulation delta. The release verifier also locks the optional fragment requirements, processor ordering, standard chunk filter, and both delta paths.