PrismetSage Deutschle

Work / Minecraft

Bayzyl

WorldEdit is the foundation. Various tweaks to make it easier for beginners to learn, and for masters to create at their highest capacity. That is the core thesis behind all design decisions.

Alpha · open source (MIT)GitHub

Inside the work

Powerful edits, understandable controls.

In-game captures

My contribution

Author of the Paper plugin: command design, building tools and the safeguards around large edits.

Engineering decisions

  1. Make scale explicit

    Volume and chunk-span checks put confirmation at the point where a paste becomes a costly operation.

  2. Bound recovery work

    Undo history persists between sessions, with a cap on per-action block data. Oversized actions keep metadata rather than making restart recovery unbounded.

What you can inspect

The in-game sequence shows the commands producing a dome, tower, sandstone pyramid and formula-driven copper ring in one demonstration world.

Explore the project images ↑

Selections, shapes, brushes, clipboards, persistent undo, shared kits, and builder profiles, in one consistent command set. Every option uses option:value syntax, tab-completion knows about masks and block distributions, and big edits ask for confirmation first. It runs alongside WorldEdit and FastAsyncWorldEdit, and falls back to its own implementations when neither is installed.

Why it exists

WorldEdit-style brushes are universal but generic: a sphere of stained glass with random weights does not look like fire. And /sphere stone 12 gives you a stone sphere, the right output if you wanted a sphere but not if you wanted "a hill that looks like Minecraft put it here." Bayzyl's detail brushes (fire, clouds, lightning, vines, bark) and gen brushes (ridges, valleys, caves, dunes, mesas and more) encode that knowledge, with settings named for builders, like heat and flicker, instead of octaves.

The hard part

A natural-looking edit has to fit the ground it lands on. Before placing a block, a gen brush samples a 25×25 area around the target (surface, subsurface, biome, water level, terrain shape), picks its palette from what it finds and blends the edges "so the seam is invisible." Each click stays one undoable action, and gen brushes are capped at radius 48 and 750k blocks per click. The palettes are tuned by playtest: wool was removed from clouds, and white glass is limited to hotter cores "so fire does not wash out."

What comes next

The plan for /tool is a Bayzyl-native equivalent for every WorldEdit /tool subcommand, delivered in five phases. The v2 roadmap adds BzlBlender, an optional Fabric companion mod for client-side ghost rendering and floating GUI panels; Redstone Audit, static analysis of redstone circuits with fault localization; and ports to Spigot, Folia, Forge and Fabric. Detail brushes still have their headline feature ahead: /detailbrush capture, which would analyze a selection and fit a preset variant to it.

Built, in the 0.2.0-alpha.1 source: every command on this page, the detail brushes and the gen brushes. Plans, not built yet: /tool parity with WorldEdit, /detailbrush capture and the v2 roadmap.

Highlights

  • Per-player undo history that survives restarts, plus /oops to undo and tell the team
  • Shared builder kits with themes, icons, aliases, and notes
  • Formula-driven /generate and /generatebiome
  • Quality-of-life tools: ghost hand, auto-unstick, ruler, surface/ascend/descend

One command at a time

Every frame is one real Bayzyl command on a clean Paper 1.21.4 server with no WorldEdit installed.

  1. Empty superflat test world

    1/9 Empty superflat test world

  2. Floor from a weighted block mix: the test plaza after /set 60%polished_andesite,25%andesite,15%stone_bricks

    /set 60%polished_andesite,25%andesite,15%stone_bricks

    2/9 Floor from a weighted block mix

  3. Walls around the selection: the test plaza after /walls 70%stone_bricks,30%mossy_stone_bricks

    /walls 70%stone_bricks,30%mossy_stone_bricks

    3/9 Walls around the selection

  4. Hollow glass dome: the test plaza after /hsphere glass 9

    /hsphere glass 9

    4/9 Hollow glass dome

  5. Quartz pillars: the test plaza after /cyl quartz_pillar 1 9

    /cyl quartz_pillar 1 9

    5/9 Quartz pillars

  6. Stepped pyramid from a two-block mix: the test plaza after /pyramid 70%sandstone,30%smooth_sandstone 11

    /pyramid 70%sandstone,30%smooth_sandstone 11

    6/9 Stepped pyramid from a two-block mix

  7. Tower and roof: the test plaza after /hcyl 75%stone_bricks,25%cracked_stone_bricks 6 18  +  /hpyramid dark_oak_planks 7

    /hcyl 75%stone_bricks,25%cracked_stone_bricks 6 18 + /hpyramid dark_oak_planks 7

    7/9 Tower and roof

  8. Torus generated from a math formula: the test plaza after /generate copper_block (sqrt(x*x+y*y)-0.62)*(sqrt(x*x+y*y)-0.62)+z*z<0.05

    /generate copper_block (sqrt(x*x+y*y)-0.62)*(sqrt(x*x+y*y)-0.62)+z*z<0.05

    8/9 Torus generated from a math formula

  9. Procedural forest: the test plaza after /forestgen 16 oak 5 at:player

    /forestgen 16 oak 5 at:player

    9/9 Procedural forest

Step 9 / 9
18 7 r 6
Step 7, in elevation/hcyl 75%stone_bricks,25%cracked_stone_bricks 6 18/hpyramid dark_oak_planks 7Drawn from the numbers in the two commands, one unit per block.

Project portfolio