Skip to content

Config Boundary

tturnover-home edited this page Oct 3, 2026 · 1 revision

[boundary]: common

This section sets where the boundary sits, how the murk behaves at it, and what it does to the world underneath.

Height and fog

Option Default Range Description
dimensions ["minecraft:overworld"] list Dimensions the murk exists in. A dimension that isn't listed has no boundary at all. "*" means every dimension, and an empty list means none. Karst towers are placed by a biome modifier, so this list doesn't control them.
planeHeightSchedule ["0=-30", "10=40", "80=100"] list of day=height Boundary Y over time. The height is interpolated linearly between the listed days and held at the ends. The day is dayTime / 24000.
planeHeightCycle false When on, the schedule loops back and forth (0→10→80→10→0…). When off, the boundary holds the last height.
overdayOffsetNoon 0.0 -256 – 256 Offset added to the scheduled height at noon, the low point of the day.
overdayOffsetMidnight 4.0 -256 – 256 Offset added at midnight, the high point of the day. The boundary eases between noon and midnight.
fogDistance 24 4 – 256 How far you can see, in blocks, while the camera is under the boundary.
fogStartRaise 0.15 -8 – 8 Where the murk starts, measured from the visible plane. The fog, the plane, weather suppression and mob suffocation all move with this value. The breathing boundary does not.
flipFog false Puts the fog above the plane instead of below it. This changes the fog only.

Example: a slow flood

planeHeightSchedule = ["0=40", "30=70", "100=120"]
planeHeightCycle = false

World changes

Option Default Range Description
enableWorldChanges true Master switch for every block and item change below it. The fog and breathing are not affected.
worldChangeSkip 5 0 – 64 Dead zone: how many blocks just under the boundary are left alone.
worldChangeDelaySeconds 3 0 – 60 How long a placed, grown or dropped thing steams before it changes. Fire, lava, torches and devices go out at once regardless.
enableExtinguish true Puts fire out: loose fire vanishes, lava freezes to obsidian or cobble, torches drop, and devices are unlit.
snuffedDevices ["simulated:*_portable_engine"] list Extra burners to snuff. These are added to #fogged:snuffed_devices. To stop the built-in ones, turn off the Device Snuffing datapack or remove them from the tag.
enableScour true Removes the blocks in scouredBlocks without drops, and turns farmland back to dirt.
scouredBlocks [] list Extra blocks to remove. These are added to #fogged:scoured. To spare a block, add it to #fogged:scour_immune.
scourAllPlants true Removes every plant from any mod, judged by what the block is rather than by its id. Needs enableScour.
enableTransforms true Master switch for transforms and for the datapack conversions.
transforms [] list This world's own conversions. See below.

transforms syntax

[count] from = [count] to [@depth] [!silent]
  • from: an id, a * glob, a #tag, or several of these separated by commas. A block entry converts placed blocks, an item entry converts dropped stacks, and an entry that names both does both.
  • to: one id, with no glob or tag. If it's a block, the placed block is swapped and keeps the properties the two blocks share (facing, hinge and so on). If it's an item that isn't a block, the block breaks and drops that item.
  • counts: these only apply to dropped stacks, at most 64 each. An entry with counts doesn't touch placed blocks. The exception is a count on an item target, which sets how many drop.
  • @N: only convert at N or more blocks below the surface. This moves with the boundary. The maximum is 512.
  • !silent: hide the entry from JEI. Other entries show there under "Murk Conversion".
transforms = [
  "copper_block=oxidized_copper",
  "moss_block=coarse_dirt @50",
  "4 minecraft:diamond=2 minecraft:dirt",
  "#minecraft:leaves=1 minecraft:stick !silent",
  "create:*_casing=minecraft:mud @20",
  "copper_block,exposed_copper=oxidized_copper"
]

Entries here run before the built-in scour, so they override it. Don't point one rule's output at something another rule converts, because it will be converted again on the next pass.

From a datapack or mod

You can ship the same conversions as recipes instead, at data/<ns>/recipe/<name>.json:

{
  "type": "fogged:murk_transform",
  "from": ["minecraft:copper_block"],
  "to": "minecraft:oxidized_copper",
  "depth": 0,
  "silent": false
}

Recipes reload with /reload. If a recipe and the config list name the same block, the config list wins.

Clone this wiki locally