A dial that shows the colony's place in a repeating 12-sol Cycle, styled like the season clock in Against the Storm. Twelve marks (one per sol of the cycle, not twelve hours), split into three 4-sol phases each with its own background shade, and a single indicator that points at the current sol of the cycle. The cycle repeats forever: after sol 12 the indicator jumps back to the top and phase one begins again.
| Phase | Cycle sols | Dial shade |
|---|---|---|
| First | 1 - 4 | shade A |
| Second | 5 - 8 | shade B |
| Third | 9 - 12 | shade C |
Each phase is 4 sols, exactly one third of the dial (120 degrees), with the seams on the 12, 4 and 8 marks: blue runs 12→4, amber 4→8, red 8→12. What each phase does in play is not yet defined; today the phase is a visual division only.
The dial has twelve marks numbered like a clock. The cycle repeats every 12 sols, so any sol maps to one of the twelve marks:
position = ((sol − 1) mod 12) + 1 (a number from 1 to 12)
The phase that mark sits in is ceil(position / 4): 1 to 4 is the first phase, 5 to 8 the second, 9 to 12 the third.
| Sol | Points to | Phase |
|---|---|---|
| 1 | 1 | First |
| 3 | 3 | First |
| 4 | 4 | First |
| 5 | 5 | Second |
| 8 | 8 | Second |
| 9 | 9 | Third |
| 12 | 12 | Third |
| 13 | 1 | First (new cycle) |
| 35 | 11 | Third |
Sol 3 points to 3; sol 35 points to 11. The boundary between mark 12 and mark 1 sits at the top of the dial, so the top is where one cycle ends and the next begins.
A single hand runs from the centre of the dial to the current mark, exactly like a clock hand. The marks sit at clock positions: 12 at the top, 3 at the right, 6 at the bottom, 9 at the left, so the hand's angle is position × 30 degrees clockwise from the top. It sweeps smoothly through the sol - updated every in-game hour, so mid-sol-3 it sits between 3 and 4 - and wraps from mark 12 back through the top into the next cycle.
Behind the marks the disc is split into three 120-degree arcs, one per phase, each filled with its phase shade, so the current phase is obvious from the colour under the hand. The first arc spans marks 1 to 4 (upper right, just clockwise of the top), the second spans 5 to 8 (across the bottom), the third spans 9 to 12 (up the left side back to the top).
A working visual prototype is built as a standalone test mod (CycleClockTest, separate
from Survive the Storm). It renders in the Surviving Mars HUD style: a gunmetal metallic bezel, three
anodized colour thirds, embossed numbers, a "Disaster Cycle" title, and a chrome hand that sweeps one
mark per sol.

Two visual directions are being explored:
The clock is a HUD widget injected top-right: a static metallic face image with a separate chrome
hand image stacked on top, rotated at run time via the XImage Angle property
(angular minutes, clockwise). It is rebuilt on NewDay and the hand re-angled every
NewHour for the smooth sweep. The general technique, the widget classes and the gotchas
are on the modding page: Adding UI elements.
Prototyped as the CycleClockTest standalone test mod. The sol-to-position and phase
formulas are plain arithmetic on the current sol; the dial images are generated by
tools/gen_cycle_clock.py.
Lua/DayTime.lua:56,70 - Msg("NewDay", day) / Msg("NewMinute") drive the per-sol and per-hour updatesLua/X/XVerticalScroller.lua:16,39 - the XImage Angle property (angular minutes) that rotates the handinternal-analysis/adding-ui-elements.html - how the HUD widget and its dial are built