Timelines are data-driven curves tied to a world clock. Each track keys a game value (sky light, monster burning, sky color) against the clock's tick. A datapack that replaces minecraft:day re-times the whole overworld day. This builds that JSON for you.
Lowercase letters, numbers, _ . - only.
Name it minecraft:day to re-time the overworld.
24000 = one day. 0 = non-looping (no period_ticks written).
{
"clock": "minecraft:overworld",
"tracks": {
"minecraft:gameplay/sky_light_level": {
"keyframes": [
{
"ticks": 0,
"value": 1
},
{
"ticks": 11000,
"value": 1
},
{
"ticks": 14000,
"value": 0.05
},
{
"ticks": 22000,
"value": 0.05
},
{
"ticks": 23999,
"value": 1
}
],
"modifier": "multiply"
},
"minecraft:gameplay/monsters_burn": {
"ease": "constant",
"keyframes": [
{
"ticks": 14000,
"value": false
},
{
"ticks": 22000,
"value": true
}
],
"modifier": "or"
}
},
"period_ticks": 24000,
"time_markers": {
"minecraft:wake_up_from_sleep": {
"show_in_commands": true,
"ticks": 0
},
"minecraft:day": {
"show_in_commands": true,
"ticks": 1000
},
"minecraft:noon": {
"show_in_commands": true,
"ticks": 6000
},
"minecraft:night": {
"show_in_commands": true,
"ticks": 13000
},
"minecraft:midnight": {
"show_in_commands": true,
"ticks": 18000
}
}
}This timeline reads the minecraft:overworld clock, which already exists in vanilla, so no extra files are needed. If you point a timeline at a custom clock id you must also add data/<ns>/world_clock/<id>.json (an empty {} object is valid) and bind it to a dimension.
Pack format 88 for 26.2. Drop the unzipped folder into saves/<world>/datapacks/ and run /reload. Built in your browser, nothing is uploaded.
Timelines are the 26.2 system for curving game values against a world clock. A timeline datapack can re-time the day, make night longer, dim the sky, or move the exact tick when monsters start burning. This builder gives you a keyframe editor and writes the exact JSON Minecraft expects, then bundles it into a datapack you can drop into a world.
Each track targets one game value, for example minecraft:gameplay/sky_light_level or minecraft:gameplay/monsters_burn. A track holds keyframes: a tick and a value. Between keyframes the game eases (linear, a constant step, or a cubic bezier). Drag the dots on the editor to shape the curve and the JSON below updates live.
The most common use is overriding the vanilla day. Name your timeline minecraft:day (with namespace minecraft) and your keyframes replace the built-in ones, so the whole overworld day bends to your curve.
The shape below matches the vanilla data/minecraft/timeline/day.json file. A timeline has a clock, an optional period_ticks loop length, optional named time_markers, and a map of tracks.
| Field | What it does |
|---|---|
| clock | The world clock this timeline reads, such as minecraft:overworld. |
| period_ticks | Loop length in ticks (24000 is one day). Omit for a non-looping timeline like the early-game pillager rule. |
| time_markers | Named instants (day, noon, night, midnight) usable by /time set. |
| tracks | Keyframed values, each with an optional ease, a list of keyframes, and an optional combine modifier. |
| keyframes | Pairs of ticks and value. Values are numbers, booleans, hex colors, or string ids depending on the track. |
Build and download the zip, then:
1. Unzip it into saves/<world>/datapacks/ so you have a folder with pack.mcmeta at its root.
2. Run /reload in game, or leave and rejoin the world.
3. Confirm it loaded with /datapack list. Your timeline takes effect on the next tick.
For a server, drop the same folder into the world's datapacks/ directory and reload.
Eternal dusk: hold sky_light_level at a low value like 0.3 across the whole period for a permanently gloomy world without full night.
Longer night for mob farms: push the monsters_burn keyframe later and stretch the dark window so surface spawners run longer each cycle.
Custom skies: key sky_color and fog_color to recolor sunrise and sunset for a themed map.
Slime moon cycle: the vanilla moon timeline runs on a 192000-tick period and steps surface_slime_spawn_chance down to zero at new moon. Edit that curve to control swamp slime spawns.
A timeline is a 26.x data file that keys game values against a world clock. Each track has keyframes (a tick and a value) and the game interpolates between them every tick. Put one in data/<namespace>/timeline/<name>.json inside a datapack to change behavior like sky light, monster burning, or sky color over the day.
The overworld and the End already have world clocks (minecraft:overworld and minecraft:the_end), so most timelines just reference one of those. To add your own clock, create data/<namespace>/world_clock/<id>.json (an empty {} object is valid) and point your dimension at it, then have your timeline reference that id.
Override the vanilla day timeline. Build a timeline named minecraft:day (namespace minecraft) and stretch its keyframes across a larger period_ticks, or move where night starts by shifting the sky_light_level and monsters_burn keyframes. The vanilla day is 24000 ticks; raise period_ticks to slow it down.
Inside a datapack at data/<namespace>/timeline/<name>.json. This builder writes that path for you and zips it with a valid pack.mcmeta. Unzip the result into saves/<world>/datapacks/ and run /reload. It targets pack format for 26.2 but loads across a wide range.
The modifier decides how a track combines when more than one timeline drives the same value. or and and combine booleans, maximum and minimum take the highest or lowest number, and multiply scales. Leave it on replace if only your timeline touches that value.
No. The keyframe editor, the JSON, and the zip are all assembled in your browser tab. Nothing is sent to a server, so you can build timelines offline once the page has loaded.
Browse more Minecraft tools: