Roofwright

Whole roofs from the tops of your walls, in one click.

Right-click a wall top with the wand. Roofwright finds the building's outline, shows you a ghost of the roof, and builds it from stairs and slabs, hips and valleys included.

Bare walls in, roofs out

A Minecraft village of seven houses with bare walls and no roofs
Before: seven houses, walls only.
The same village with gable, hip, dutch gable, gambrel, mansard, cone and flat roofs
After: one /roof place per house.
A ghost roof preview over an L-shaped house, then the real roof going up from the eaves to the ridge
Ghost first, then the roof goes up from the eaves, a budgeted number of blocks per tick.

What it does

Ten roof styles, three pitches

Gable, hip, dutch gable, gambrel, mansard, pyramid, shed, flat with a parapet, cone and dome. Pitch 1:2 (slabs), 1:1 (stairs) or 2:1 (steep), and an overhang of 0 to 3 blocks.

Server-side only

Install it on the server. Players join with an unmodified client; the wand is a vanilla stick and the ghost is made of vanilla display entities.

Finds the outline itself

One click on a wall top: rectangles, L, T and U shapes and any other right-angled outline. No marking corners.

Corners done right

HIPS
Outer corner stairs along every hip, from the chessboard distance of the outline.
VALLEYS
Inner corner stairs where wings meet; a smaller wing's ridge runs into the main roof and stops.
GABLES
Gable walls filled with the block your walls are made of.
STABLE
Every stair gets the shape Minecraft's own rule gives it, so nothing reshapes later.

Preview, place, undo

A glowing ghost only you can see, with blocks in the way in red. Undo and redo leave alone anything someone changed in the meantime.

Any material

Any member of a block family (oak, deepslate tiles, bricks, blackstone...), stair-like blocks from other mods such as Macaw's Roofs, or three blocks of your choice.

How it works

Every roof is a distance field over the outline, turned into heights in half blocks, then into stairs, slabs and full blocks.

A glowing ghost roof over an L-shaped house, with a leaves block in the way shown as red glass
The ghost preview. Only you see it; the leaves in the way show as red glass and will be skipped.

The outline from one block

Every solid block in the wall-top layer that touches the clicked one, corners included, is wall. Everything inside that the outside cannot reach is the building. Gaps in the top layer are reported.

Hips and valleys

Hip roofs rise with the chessboard distance to the outside. On right-angled outlines that is the straight skeleton carpenters follow, so hips and valleys land on the diagonals.

Wings that meet

Gable roofs split the outline into rectangles, largest first. Smaller wings get a ridge that runs into the main roof and ends at its ridge line, in a valley.

Shapes Minecraft agrees with

Each stair faces uphill and takes the corner shape the game's own rule gives it, so a neighbour update never reshapes the roof. The tests check every roof is watertight.

Commands

/roof and the alias /roofwright do the same thing. With the wand you rarely need them:

> /roof wand
> /roof style hip
> /roof material deepslate_tiles
> /roof detect
> /roof place

Right-click a wall top with the wand to preview, sneak + right-click to build, left-click for the next style.

Roofwright commands
CommandWhat it does
Choose the building
wandGives you the wand.
detect [pos]Detects the building whose wall top you look at, or at pos, and previews its roof.
select <from> <to>Selects a rectangle by hand. select add adds another for L, T or U shapes.
Shape it
style <style>gable, hip, dutch_gable, gambrel, mansard, pyramid, shed, flat, cone, dome.
pitch low|normal|steep1:2 slabs, 1:1 stairs or 2:1 steep.
overhang <0-3>How far the roof reaches past the walls.
material <block>Stairs, slab and full block from any member of a family, or three blocks given explicitly.
ridge, shed, ridgecap, gableRidge direction, shed side, slab or full ridge caps, gable wall block.
Build it
previewShows the ghost again.
place [force]Builds the roof. force also replaces plain blocks in the way.
undo, redoTakes your last roof back, or puts it back.
cancelStops a roof still going up and clears the preview.
info, help, reloadYour settings and history, the command list, re-read the config.

For server owners

Permissions

With a permissions mod, these nodes decide. Without one, the default operator levels apply. Holding a wand grants nothing.

roofwright.use
2Detect, preview, place, undo (for trusted builders: previews show what is in the way)
roofwright.force
2Replace plain blocks in the way
roofwright.unlimited
3Past maxBlocks and maxSpan
roofwright.admin
3Reload the config

Config

config/roofwright.json, applied with /roof reload.

{
  "maxSpan": 96,
  "maxBlocks": 30000,
  "blocksPerTick": 2000,
  "millisPerTick": 5,
  "historySize": 10,
  "previewLimit": 3000,
  "previewSeconds": 300,
  "wandCooldownTicks": 5,
  "permissionLevels": {
    "use": 2, "force": 2,
    "unlimited": 3, "admin": 3
  }
}

5 ms

worst tick while a 16,900-block hip roof goes up: the default time budget per tick holds, measured with tools/benchmark.sh.

Nothing overwritten

Air only unless you say force; never chests or bedrock. Claim mods using the Common Protection API are respected, even after you log off.

Install

Needs Minecraft 26.3, Fabric Loader 0.19.5 or newer, Fabric API and Java 25.

On a server

  1. Set up a Fabric server for Minecraft 26.3.
  2. Put the Roofwright jar and Fabric API in the server's mods/ folder.
  3. Restart. Players join with a vanilla client, nothing to install on their side.

In singleplayer

  1. Install Fabric Loader for 26.3 with the Fabric installer.
  2. Put the Roofwright jar and Fabric API in .minecraft/mods/.
  3. Open a world with commands allowed and type /roof wand.
Get it on CurseForge

FAQ

Do players need to install anything?

No. Roofwright runs on the server only. The wand is a vanilla stick with a name and a glint, and the ghost preview is made of display entities every vanilla 26.3 client renders.

Will it overwrite my build?

No. It places blocks only into air; anything else in the way, even tall grass or water, is skipped and shows red in the preview. /roof place force replaces plain blocks, but never chests, signs or other block entities, nor bedrock.

What if the outline is not detected?

The top layer of the walls must be closed (corners may touch diagonally). Doors and windows lower down do not matter. If there is a gap, Roofwright says so; fill it, or pick the outline by hand with /roof select and /roof select add.

Can it build roofs in survival?

Not in this version: it does not take blocks from your inventory, so by default only operators (permission level 2) can use it. Server owners can grant roofwright.use to builders.

Does it work with Macaw's Roofs?

Yes. Macaw's roof blocks behave like stairs, so /roof material mcwroofs:oak_roof works; the slab and full block are found by name. The tests run with Macaw's Roofs installed.

Will a huge roof lag the server?

Planning a 256 by 256 hip roof takes about 18 ms. Placing is spread over ticks: at most blocksPerTick blocks and millisPerTick milliseconds per tick, shared by everyone's roofs. Server owners also cap roof size with maxBlocks and maxSpan.