dots-update-groups

Determine Unity DOTS ECS update group assignment and ordering for deterministic system execution.

6|Updated Apr 2, 2026
One-click install
npx skills add https://github.com/dyCuong03/unity-agent-team --skill dots-update-groups
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: dots-update-groups
Source: https://github.com/dyCuong03/unity-agent-team/tree/main/workspace/dots-program/scratch/wave-2-orchestrator-drafts/dots-update-groups
Command: npx skills add https://github.com/dyCuong03/unity-agent-team --skill dots-update-groups

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

It prevents ECS systems from running at the wrong time or frequency, which causes “value visible one frame late” bugs, physics jitter, and non-deterministic behavior between simulation and presentation.

Core Features & Use Cases

  • Update-group selection by timing semantics: choose Initialization, Simulation, FixedStep Simulation, VariableRate Simulation, or Presentation based on whether work is input setup, simulation logic, deterministic physics/netcode, low-frequency ticking, or render-side reading.
  • Intra-group peer ordering that actually works: use UpdateBefore/UpdateAfter only when both systems share the same group to establish correct reader/writer dependencies.
  • Rate and timestep correctness: understand how SystemAPI.Time.DeltaTime meaning changes across groups so the same code doesn’t accidentally run with wall-clock instead of fixed timestep.

Quick Start

Use this skill when you add or reorder an ECS ISystem and need its update timing, ordering, and timestep behavior to remain deterministic across frames and fixed steps.

Frequently Asked Questions about dots-update-groups

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I fix Unity DOTS ECS systems showing values one frame late?

Unity DOTS ECS systems showing values one frame late occur when update group assignment and intra-group ordering are incorrect. Choosing the proper SystemGroup and enforcing valid UpdateBefore or UpdateAfter constraints establishes deterministic reader and writer dependencies, preventing delayed visibility.

How does DeltaTime meaning change across Unity DOTS update groups?

DeltaTime meaning changes across Unity DOTS update groups based on timing semantics. In fixed-step simulation it represents a fixed timestep, while in variable-rate simulation groups it reflects wall-clock time, meaning the same code can accidentally run with incorrect timestep semantics if placed improperly.

When should I use UpdateBefore and UpdateAfter for ECS system ordering?

Use UpdateBefore and UpdateAfter for ECS system ordering only when both systems share the same update group. This intra-group peer ordering establishes correct reader and writer dependencies, whereas cross-group ordering traps require different SystemGroup assignments to maintain determinism.

How do I choose the correct SystemGroup for Unity DOTS simulation and presentation?

Choose the correct SystemGroup for Unity DOTS by matching timing semantics: Initialization for input setup, Simulation for logic, FixedStep Simulation for deterministic physics, VariableRate for low-frequency ticking, and Presentation for render-side reading to ensure deterministic execution.

How do I configure RateManager for variable-rate ticking in Unity DOTS ECS?

Configure RateManager for variable-rate ticking in Unity DOTS ECS by assigning systems to the VariableRate Simulation group. This ensures low-frequency ticking maintains deterministic behavior while correctly handling the timestep semantic changes associated with variable update frequencies.

Why does Unity DOTS physics jitter when using fixed timestep simulation?

Unity DOTS physics jitter happens when fixed timestep simulation systems are placed in the wrong update group. Assigning deterministic physics and netcode systems to the FixedStep Simulation group ensures they run at the correct frequency and remain race-free with other simulation writes.