fixed-step-simulation

Run Unity DOTS simulation systems at a fixed timestep decoupled from render framerate.

6|Updated Apr 2, 2026
One-click install
npx skills add https://github.com/dyCuong03/unity-agent-team --skill fixed-step-simulation
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: fixed-step-simulation
Source: https://github.com/dyCuong03/unity-agent-team/tree/main/.claude/skills/unity-dots/fixed-step-simulation
Command: npx skills add https://github.com/dyCuong03/unity-agent-team --skill fixed-step-simulation

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Variable render frame time can cause inconsistent simulation results, incorrect physics integration, and gameplay that changes depending on performance.

Core Features & Use Cases

  • Fixed-timestep ticking: Runs selected simulation systems in FixedStepSimulationSystemGroup so logic updates at a known rate (e.g., 30Hz/60Hz) regardless of render framerate.
  • Correct time source usage: Uses SystemAPI.Time.DeltaTime inside the fixed-step group so the simulation consumes the fixed delta rather than the render delta.
  • Deterministic gameplay & physics: Ensures physics integration and frame-rate-independent behavior for systems that must tick consistently, including deterministic replay and network prediction.

Quick Start

Use FixedStepSimulationSystemGroup with [UpdateInGroup(typeof(FixedStepSimulationSystemGroup))] and read SystemAPI.Time.DeltaTime inside the system to drive your simulation at the fixed timestep.

Frequently Asked Questions about fixed-step-simulation

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

FAQPage Schema
How do I make Unity DOTS physics deterministic for network prediction?

To make Unity DOTS physics deterministic for network prediction, run your systems in FixedStepSimulationSystemGroup and use SystemAPI.Time.DeltaTime to ensure the simulation consumes a fixed delta rather than the variable render delta.

Why does variable DeltaTime cause inconsistent Unity gameplay results?

Variable DeltaTime causes inconsistent Unity gameplay results because fluctuating render frame times lead to incorrect physics integration and gameplay that changes depending on performance. Decoupling the simulation tick rate resolves this.

How do I run a Unity system at a fixed timestep like 60Hz?

To run a Unity system at a fixed timestep, add the UpdateInGroup attribute targeting FixedStepSimulationSystemGroup. This ensures your logic updates at a known rate like 60Hz regardless of the render framerate.

When do I need a fixed timestep decoupled from render framerate?

You need a fixed timestep decoupled from render framerate for physics-driven gameplay, deterministic replay, and network prediction where variable DeltaTime would produce incorrect simulation results.

Can I use FixedStepSimulationSystemGroup with Unity DOTS?

Yes, you can use FixedStepSimulationSystemGroup with Unity DOTS. It enables fixed-timestep ticking for selected systems while maintaining explicit state handoffs to your render-rate systems for deterministic execution.