# AD Block Keeps Ticking
Minecraft only simulates the world immediately around you. Step away from a farm and it freezes
mid-growth: crops stop, furnaces stop, lambs stay lambs. Come back an hour later and nothing has
moved.
This mod reconstructs what that time should have produced.
## What it does
When a chunk stops being simulated, it is stamped with the time. When you return, the elapsed span is
worked out and applied at once: crops advance, furnaces burn through their fuel, sugar cane stacks
up, saplings become trees, animals grow up.
Crucially, none of this is done by replaying ticks. Each block's end state is solved directly from
the elapsed time, so **a week of absence costs no more than a minute of it**. The work is also spread
across up to 20 server ticks, so walking back into your base never causes a freeze.
## What gets simulated
- **Crops** - wheat, carrots, potatoes, beetroot and modded crops. Uses vanilla's own growth-speed
formula, so farmland moisture, soil type and crowding all still matter.
- **Stems** - pumpkin and melon.
- **Other plants** - nether wart, cocoa, sweet berries, sugar cane, cactus.
- **Saplings** - both growth stages and the tree itself, 2x2 species included.
- **Farmland** - drying out, rehydrating near water or in rain, reverting to dirt when bare. Never
reverts while a crop is on it.
- **Furnaces** - furnace, blast furnace, smoker and modded variants. Smelting XP is preserved.
- **Brewing stands** - finishes a brew that was already running.
- **Animals** - babies maturing, breeding cooldowns expiring.
## What it deliberately does not do
Everything above is an *independent progress system*: its state depends only on itself and elapsed
time. That is what makes an exact answer possible. Systems that are **coupled** - where one block
feeds another and ordering matters - have no such answer, and are left alone rather than approximated
badly.
- **Redstone.** An event-driven state machine. Knowing the state after a week means running several
million transitions, and it mutates the world arbitrarily through pistons and dispensers. Vanilla
already saves pending scheduled ticks, so a repeater caught mid-delay resumes correctly by itself.
- **Crafters.** Not time-driven at all - a crafter fires once per redstone pulse, so its rate is set
entirely by a clock that cannot be simulated. A crafter in an unloaded chunk correctly makes
nothing.
- **Hoppers and item transfer.** Real setups chain, branch and cross chunk borders, and neighbouring
chunks keep independent timestamps, so moving items between them would either double-count or
invent them.
- **Mob spawning.** Nothing was missed. Spawning requires a player within 128 blocks and hostile mobs
despawn past that, so anything "spawned" while you were away would never have survived to greet
you. Generating it would be inventing a mechanic, not restoring one.
- **Campfires.** Vanilla drops the cooked item on the ground, and dropped items despawn after five
minutes. Simulating one would hand you food that could not still be there.
Because harvesting is not simulated, an automated farm returns **one** harvest's worth rather than
many. Sugar cane caps at three tall no matter how long you were gone. The error runs in the
conservative direction by design.
## Sleeping
Vanilla grants no growth for sleeping - it moves the clock, not the tick counter. This mod optionally
credits that skipped time instead, and does it consistently: the skip is banked per dimension, so
sleeping is worth the same whether or not you were standing next to the farm. Turn it off with
`simulateAfterSleeping` to match vanilla exactly.
## Other mods
Growth is routed through NeoForge's `CropGrowEvent`, the same hook vanilla growth uses. Any mod that
gates farming through the standard event applies to catch-up too, without needing to know this mod
exists.
## Configuration
- **`timeMode`** (default `WORLD_TIME`) - `WORLD_TIME` counts only time while the world is running.
`REAL_TIME` also counts time spent offline.
- **`minInhabitedTicks`** (default `6000`) - chunks lived in for less than this are never simulated,
which keeps exploring new terrain cheap.
- **`lazyTaxPercent`** (default `0`) - discards this share of elapsed time, if full catch-up feels
too generous.
- **`maxCatchUpTicks`** (default `0`) - ceiling on a single catch-up, mainly useful with `REAL_TIME`.
0 disables it.
- **`simulateAfterSleeping`** (default `true`) - credit skipped world-clock time to every chunk.
- **`disabledSimulations`** (default empty) - switch individual simulations off by name.
- **`debugLogging`** (default `false`) - log each chunk activation and what it changed.
## Installation
**Server-side only.** On a dedicated server, install it on the server alone - clients do not need it
and can connect without it. The mod registers no blocks, items or network packets, and nothing it
stores is sent to clients.
Installing it client-side is harmless, and in single-player it is required as normal. The only
client-facing feature is the config screen in the Mods menu.

