### Platform
- **Minecraft 26.3.** Slabbed 0.6.0 makes its release debut on Minecraft 26.3 with Fabric. Build tooling moved to
Fabric Loom 1.17 and Gradle 9.5; the mod still needs Java 25 like 26.2. The five chain-under-ceiling
bridge models use 26.3's new `shade_direction_override` in place of the removed `shade` flag, so
they look exactly as before. Sodium, Iris, Lithium and Terrain Slabs had no 26.3 builds when this
line was opened, so it was verified on the vanilla renderer only; those combinations are re-checked
as the mods ship.
### Changed
- **No more Indium suggestion.** The mod no longer recommends Indium; that mod never existed for
this Minecraft version and Slabbed has not needed it since it moved to Fabric's own rendering
API (maintainer ruling, 2026-09-03).
### New
- **Slabbed now has a settings file and a settings screen.** Settings live in `config/slabbed.json`
and `/slabdy settings` opens a small screen to change them in game. Every setting defaults to
exactly what the mod did before, so a world that never touches the file behaves as it always has
(maintainer ruling, 2026-09-06).
- **Flower pots can keep vanilla's gap.** Vanilla leaves a small gap under a flower pot standing on a
slab; Slabbed normally seats the pot down onto the slab's surface. A new **flower pot seat** setting
lets builders choose ([#64](https://github.com/peetsamods/slabbed/issues/64)). On *flush* (the
default) nothing changes. On *vanilla gap*, a newly placed pot keeps the same small gap vanilla would
leave it, including over a lowered block, where it sits that gap above the surface you can actually
see rather than floating in the air. Plain flower pots only: decorated pots and candles are
unaffected. Pots you have already placed never move when you change the setting; it applies to pots
placed from then on (maintainer ruling, 2026-09-06). Thanks to cassanogiuseppe702-sudo on GitHub for
reporting this (GitHub issue #64).
- **Two new key bindings adjust the height of the block you are looking at.** Both start unbound;
set them in Options > Controls under "Slabbed". One nudges the aimed block half a block down, the
other back up: down only as far as the real surface beneath it allows, and up only as far as
flush. The server makes the change and saves it with the world, so it survives a reload and
everyone on the world sees it. In singleplayer anyone can use them; on a shared world they need
creative mode or op level 2 (maintainer ruling, 2026-09-06). Blocks that were never placed by a
player, such as worldgen terrain, `/setblock` scenery, and anything from a world older than the
saved-height store, carry no recorded height and are refused; break and re-place them to adjust
them.
- **A warning when your game and the server disagree about block heights.** Slabbed has a
launch flag that switches back to the pre-0.5 way of working out block heights (see Known
limitations below). If you join a world whose setting is the opposite of your own, you now get
one yellow chat message saying which side is out of step, once per connection. Nothing else
changes; the two sides keep running whatever their own launch settings say
(maintainer ruling, 2026-09-06).
### Fixes
- **A lowered slab that changes kind in place keeps its height.** A Terrain Slabs grass slab turns
into a dirt slab when you cover it, the way vanilla grass turns to dirt. On a lowered stack the
converted slab popped back up to grid height and sank into the block above it, because the change of
block kind was treated like the slab leaving its cell. A block that changes kind but keeps its shape
is the same thing you placed, so it now keeps its height (maintainer ruling, 2026-09-13). A change of
shape, a slab becoming a carpet or a full block becoming a slab, still counts as a new block.
- **Breaking a lowered chest, hopper, lever or rail no longer leaves its height behind.** Slabbed
remembers the height you placed a block at, and that memory is meant to die with the block. It was
being cleared through a per-block hook that 28 kinds of vanilla block quietly skip, including
chests, hoppers, dispensers, furnaces, levers, buttons, pressure plates, rails, repeaters,
comparators, observers, redstone torches, redstone dust, shulker boxes, lecterns, jukeboxes,
barrels and decorated pots, so breaking one of those on a lowered spot left the old height sitting
in the empty cell. Placing a block there yourself always overwrote it, but a block that arrives
without being placed could inherit the leftover height and sink. The same memory also survived
`/setblock ... strict`, for every block, and survived a piston head retracting off a lowered cell.
The clear now happens where the block actually leaves its cell, so it no longer depends on which
block it was or which command emptied it (maintainer ruling, 2026-09-06). Blocks transformed in
place, such as grass to dirt, a log being stripped, or copper oxidizing, still keep their height,
as do blocks a piston carries.
- **Minecarts really ride the rail you can see.** A rail laid on a lowered block drew its minecart at
the right height, but the cart was only painted there: it physically ran half a block above the rail,
so its hitbox, anything you could hit it with, and anyone riding it were all in the wrong place, and
only one depth was covered. The cart now sits on the rail where the rail is drawn, keeps that height
while it runs, when it is saved and reloaded, and when it rolls onto ordinary rails, and rail snapping
and the tilt on sloped rails follow it (maintainer ruling, 2026-09-06). Carts on ordinary rails are
unchanged. With the experimental minecart movement enabled the same rule applies, but that path has
only been checked in automated tests, not in play.
- **Mineshaft minecarts can no longer stall world generation.** When the game builds an abandoned
mineshaft it creates its chest minecarts on a background thread. Slabbed's rail check for a newly
placed cart asked the world about the rail from that thread, and such a question is answered by the
main game thread, which during generation can be waiting on that same background work, so the two
could wait on each other forever. The check now waits for the cart's first normal tick instead, where
it already ran anyway. Carts placed by a player are unaffected. Nobody reported this on 26.3; the same
stall was found and fixed on the Fabric 1.21.1 line, and the guard is carried here before it can happen.
- **Armor stands are no longer refused where they plainly fit.** Placing an armor stand over a lowered
block checked for room at the old grid height even though the stand ends up standing on the block's
visible top, so a stand could be turned away by something it was never going to touch, or let into
space it could not occupy. The check now looks at the band the stand will actually stand in, including
when you place onto snow or grass growing on a lowered block. Where the stand ends up is unchanged
(maintainer ruling, 2026-09-06).
- **Pistons no longer flatten what they push.** A block you placed at a lowered height kept that
height until a piston moved it, after which it sat flat forever, with no way to get the height
back short of breaking and replacing it. Pushed and pulled blocks now arrive at exactly the height
they were placed at, sticky pulls and slime chains included; a lowered piston keeps its own height
through extending and retracting, and its extended head sits at the same height as its base, in
collision as well as on screen (maintainer ruling, 2026-09-06).
- **Ambient particles spawn at a lowered block's drawn height.** Anything a block puffs out on its
own — an end rod's sparks, a lit furnace's smoke and flame, an ender chest's swirl, an enchanting
table's glyphs, mycelium spores, crying obsidian's tears, redstone ore's sparkle, spore blossom
petals, a wet sponge's drips, a nether portal's haze, fire — used to appear at the block's grid
cell, floating above a lowered block instead of sitting on it. Every block that emits this way now
emits from the height it is drawn at, not just the handful that had their own fix before
(maintainer ruling, 2026-09-06).
- **Placing onto lowered farmland works.** Clicking the visible top of a lowered farmland block to
plant or build on it could be refused, because the click was checked against the grid cell rather
than the farmland's drawn top, which sits a sliver below a full block. An exact click on the drawn
top is now accepted; clicks on the side, below the top, or outside the block are refused as before.
- **Candle and redstone-torch smoke stays with the lowered block.** Snuffing a lowered candle, or a
lowered redstone torch burning out, puffed its smoke at normal grid height, hovering above the
block. Both now smoke from the block's drawn height, the way their idle particles already did.
- **Things resting on a lowered block are lit properly.** A cushion, a dropped item, or any small
creature sitting on the visible top of a lowered full block rendered pitch black, because the game
took its lighting from the grid cell the thing is in, and that cell still belongs to the block that
is drawn below it. Anything sitting in the open air above a lowered block is now lit like the open
air it is visibly in (maintainer ruling, 2026-09-03). Lighting everywhere else is unchanged.
- **Cushions sit on lowered blocks.** 26.3's new cushions are placed onto whatever surface you aim
at, but placing one on a lowered block was silently refused: the game checked the block's grid cell,
which the cushion overlaps, and concluded the cushion was buried inside stone even though the stone is
drawn below it. A block now only counts as burying a cushion where its drawn body actually overlaps
it, so a cushion aimed at a lowered block's visible top lands there and stays (maintainer ruling,
2026-09-03). Cushions on ordinary blocks are unchanged.
- **Tilling and shoveling keep a lowered block lowered.** Turning a lowered dirt block into farmland
with a hoe, or a lowered grass block into a dirt path with a shovel, used to drop the block back to
normal height, because the freshly transformed block is a sliver shorter than a full cube and the
height-lock treated it like a brand-new kind of block. The block you placed is still there, only
transformed, so it now stays exactly where you put it (maintainer ruling, 2026-09-03). Any in-place
transform whose result still fills the cell (at least 15/16 tall) keeps its height; slabs, carpets
and other partial replacements still clear it as before.
- **Scaffolding on a lowered column is stood on at its real height.** Scaffolding has no solid body;
its only collision is a thin standing layer that Minecraft switches on when your feet are above
the top of the block. That check compared your feet with the unlowered block, so on scaffolding
placed on a slab the layer never appeared: you climbed to the top, then sank and slid back down
as soon as you released jump. The check now uses the lowered height, so you stand where the
scaffolding is drawn. Scaffolding on plain ground is unchanged. Thanks to wisefries on GitHub for reporting this
([GitHub issue #65](https://github.com/peetsamods/slabbed/issues/65)).
- **Starts alongside Lithium.** With Lithium installed, the game crashed on startup before the
title screen, because both mods rewrite the same piece of Minecraft's explosion code. It now
starts, and explosions behind a lowered block follow normal Minecraft rules while Lithium is
present (Lithium's optimized explosion path stays in charge there). Arrows and snowballs still
hit a lowered block where it is drawn, and mobs still cannot see through it, with Lithium
installed. Thanks to 1unarea on GitHub for reporting this, with the exact cause
([GitHub issue #74](https://github.com/peetsamods/slabbed/issues/74)).
- **Lowered blocks stay solid with Lithium installed.** Lithium swaps in its own, faster search
for the blocks an entity can bump into, and that search never saw the part of a lowered block
that hangs below its grid cell, so with Lithium you could walk through the lower half of what
you can see. Slabbed now adds that hanging part to Lithium's search as well (only after checking
that Lithium's search is present and still looks the way this build was tested against; a future
Lithium that changes it gets a warning in the log instead of a crash).
One narrow edge stays open: a lowered block hanging into a 16×16×16 chunk section that is
otherwise completely empty is still missed by Lithium's search, which skips empty sections
outright.
- **Dirt paths and farmland convert to dirt under your placements.** Placing a block on a dirt
path or farmland now converts the trampled block to dirt first, the same way vanilla does
under solid full blocks — so the placed piece sits on a real full surface instead of a
1/16-sunken sliver the height bookkeeping reads dishonestly. Planting is safe: a crop that
NEEDS the farmland (seeds) converts nothing and plants normally, and a conversion whose
placement fails afterwards is rolled back exactly (maintainer ruling, 2026-09-01).
- **Side placements are exact at every depth.** Clicking the visible side face of a deeply
lowered block already landed the new piece at the aimed height, but the placement's internal
bookkeeping disagreed with itself past half a block: a deep landing over solid ground was
stamped "flat" while its exact height said otherwise, and a deep slab fed neighbors a
half-block floor instead of its real depth. The bookkeeping now follows the aimed face
(maintainer ruling, 2026-09-01: WYSIWYG is absolute). Where the aim would bury the piece in
solid ground, the placement now seats on the real surface — aim is honored to the physical
limit, never past it, and the stored height agrees with what you see (maintainer ruling,
2026-09-02: the burial arbitration resolves to the real seat).
- **Paintings hang where you see the block, and hung things remember it.** A painting placed on a
lowered block's visible face hung at normal grid height, floating above the surface it was aimed at;
it now hangs on the drawn face like item frames do. And both frames and paintings now remember the
height of the face they were hung on: it is decided once, when you hang them, saved with the world,
and never re-read from the wall. Rebuilding the wall behind a frame at a different height moves the
wall, not the frame (maintainer ruling, 2026-09-13: where you place it is where it stays applies to
everything hung on a wall). Frames from an older save take their height from their wall once, the
first time they load, and remember it from then on.
- **Item frames hang where you see the block.** An item frame placed on a lowered block's
visible face hung at normal grid height, floating above (or beside) the surface it was
aimed at. Frames — glow frames included — now hang on the support's drawn face (maintainer
ruling, 2026-09-01). Under the hood only the frame's clickable box and its drawing move;
the frame's real position stays on the grid so support checks keep judging the right block.
- **Campfire smoke rises from the fire, not above it.** A lowered campfire's crackle, smoke
column, and cooking smoke all spawned at normal grid height, hovering in the air above the
visible fire. All three now emit from the campfire's drawn height (maintainer ruling,
2026-09-01).
- **Chains follow a lowered beam.** A chain hanging under an ordinary lowered block (a cantilevered
beam, for instance — not a slab) stayed at grid height while the lantern on the same chain
correctly followed the beam down, so the beam's lowered body visually sank into the chain's top
segment. The chain now follows its cap exactly, and everything hanging from the chain agrees with
it (maintainer ruling, 2026-09-01). Chains under top/double slabs are untouched — they keep their
dedicated flush bridge rendering.
### Known limitations
Three blanket caveats up front:
- **A world built on a version before 0.5 shows its previously lowered blocks flat.** A block's
height is decided and locked in the moment you place it, but only going forward: a block placed
under an earlier version has no such record, and this build does not recompute its height from its
neighbors the way older versions did. The block itself is not moved or damaged, and everything you
place from now on lowers and locks in correctly; it is specifically already-placed lowered blocks
that render and behave as if they were never lowered. There is no automatic conversion, the new
height keys cannot adjust a block with no record (break and re-place it instead), and the same
applies to lowered-looking blocks from world generation, `/setblock`, or another mod. The launch
flag described below is the only way back to the old behavior, and it has costs of its own.
**Back up any world before opening it in this build**, and consider a copy or a fresh world first.
- **Broad mod compatibility is an unverified alpha risk.** Running this build inside large modpacks
has not been broadly tested, and Sodium, Iris, Lithium and Terrain Slabs had no 26.3 builds when
this line was opened, so it has only been checked on the vanilla renderer (see Platform above).
- **No formal performance benchmark was run.** Normal play has felt smooth, but nothing here is a
measured performance guarantee; please treat it as an open question and report anything that feels
off.
Everything under New and Fixes above passes its automated tests, and on release day I played through
most of it on the actual 26.3 build: placements at half, one and two blocks down, the settings screen and
both flower-pot modes, the two height-nudge keys, a piston push and pull keeping the block's height, a
minecart seated on a lowered rail, an armor stand and a cushion resting on a lowered surface, tilling a
lowered dirt block, placing onto lowered farmland, walking up onto a lowered slab, and breaking a lowered
chest leaving no height behind. The following have **not yet been re-verified in live play on 26.3** and
should be treated as "being verified", not "done":
- Most ambient and event particles (candles, levers, redstone wire, campfires, end rods, furnaces, ender
chests) at a lowered block's drawn height; only a redstone torch was checked by eye.
- A pushed block being drawn exactly once mid-move (its height arrives correctly; the animation was not
watched frame by frame).
- The wording of the on-screen reply from the height-nudge keys, and the "Slabbed" category in the
Controls list (the keys themselves work).
- Placing onto lowered farmland deeper than half a block.
- The yellow chat warning when your game and the server disagree about the height flag.
- A block a piston later pushes into a freshly emptied cell arriving flush (the emptied cell itself reads
clean).
- Standing on a scaffolding column placed on a slab without sinking back down.
Known open issues, carried from the 26.2 line and unchanged here:
- In some deep arrangements, a hanging chain can still render at the wrong height even though its
targeting outline and collision are correct.
- A connected dripstone's second segment at depth may still misbehave; this is parked for a
follow-up build.
- In certain deep arrangements, a few block families (doors, carpets, banners, and beds) may still
land at grid height rather than the lowered height; powder snow intentionally never lowers.
Per-family placement height is ongoing work.
- Redstone dust carries a signal up a lowered step but not back down it. This looks like an existing
vanilla quirk made more visible by lowered blocks rather than something the mod does, but it has
not been fully root-caused, and a fix applied before it is properly diagnosed risks breaking dust
connections that currently work, so it is deferred rather than rushed.
- **The `-Dslabbed.frozenDy=false` launch flag is an escape hatch for worlds built before 0.5, not
a setting to toggle casually.** With it set, the mod goes back to recomputing a block's height
from its neighbors every time, the way it worked before 0.5.0, and it ignores the height a
block was locked in at when it was placed. Three consequences follow. It does not restore builds
that already look flat after upgrading; the old recompute simply resumes, and it may land
differently than it originally did. Turning it back on later does not undo anything either; the
mod just resumes trusting locked-in heights. And in multiplayer your game and the server must
have the same setting, because otherwise the heights your game draws and the heights the server
places you against can disagree, so a block can look like it is somewhere you cannot stand, or
the reverse. The mod does not fix a mismatch for you; when you see the new chat warning, ask
whoever controls the side that is out of step, usually the server's launch flags, to match the
other side (maintainer ruling, 2026-09-06).
**How you can help.** If you hit a problem, the most useful report includes:
- **Reproducible steps**: what you placed, where, and in what order, so it can be recreated.
- **Your full mod list** and loader version, plus the line `/slabdy build` prints, which names the
exact build you are running.
- **Your `latest.log`, or the crash report** where one was produced.
- **A screenshot or video** of the problem.
- **For performance reports:** the same scene with Slabbed enabled versus disabled. "Lag with the
mod on and off" versus "lag only with the mod on" is worth ten times a bare "it lags".
Thank you for testing an alpha; every report above makes the next build better.
Developer information
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle.
maven { name = "Modrinth"; url = "https://api.modrinth.com/maven" }