# Minutes are not time

`onTimePasses` fires in every game — including one with no clock at all.

But in a clockless game, those minutes are **the narrator's estimate of how long the prose
took**. Across live sessions, comparable turns have run anywhere from 3 to 22 minutes.

## What goes wrong

Bill an hourly rate against that, and a wordy turn is seven times hungrier than a terse
one. Nothing errors. The game just feels arbitrary in a way no playtest report will
diagnose correctly, because the cause is prose length.

This is not hypothetical: it is why stamina and mana were moved off the clock entirely.

## Ask what the game has

```js
$.timed
```

True when the world runs a real clock. Price yourself in the unit the game actually has:

```js
$.adjustField({ field: "satiety", by: -($.timed
  ? ($.event.minutes / 60) * $.dial('foodDrainPerHour')
  : $.dial('foodDrainPerTurn')) })
```

Two dials, not one — an hourly rate and a per-turn rate — because they are genuinely
different numbers, and an author tuning your plugin needs to set both.

## Or use the right trigger

For anything that ticks **once per character per turn**, use `onTurnEnd` instead. It fires
once per actor per turn in every game, clock or no clock, and carries no estimate at all.

That is the correct home for resource regeneration, cooldowns, and per-turn drains.

**Do not** move an hourly rule to `onTurnEnd` to dodge this: `onTurnEnd` already fires in
every game, so a rule that exists on both triggers double-charges.

## Next

[Hooks](/docs/hooks) — the full trigger list.
