Temperature → Tick Connection
MapTemperatureTick() is called in
MapPostTick() (step 16 of DoSingleTick).
Internally it only runs every
120 ticks (offset 7) — not every tick.
#1
DoSingleTick — Where Temperature Runs
Verse/TickManager.cs:357-499
MP-Critical — 22 steps in fixed order. Temperature-relevant:
| # | Step | Temperature Link |
| 4 | tickListNormal.Tick() | Heater/Cooler/Vent tick here (Building_Heater, Building_Cooler) |
| 5 | tickListRare.Tick() | Doors: EqualizeTemperaturesThroughBuilding (34/375 ticks) |
| 14 | SteadyEnvironmentEffects | Fire spread → PushHeat |
| 16 | MapPostTick() | MapTemperatureTick → RoomTempTracker.EqualizeTemperature() |
| 19 | RegionDirtyer | Room rebuild after building changes → RegenerateEqualizationData |
#2
120-Tick Interval
Verse/MapTemperature.cs
Temperature is not controlled via the TickList bucket system, but directly via a TicksGame % 120 == 7 check in MapTemperatureTick. The offset 7 distributes the load across different ticks.
At speed 1 (60 ticks/s): every ~2 seconds real time. At superfast (6×): every ~0.33 seconds.