Building a lobby without ever seeing it
Every player lands in the lobby first, so it's the first impression of the whole server. The first version did its job: a plain stone box with four signs. It was also very, very boring.
So I tried something different. I'm not much of a builder, and Claude, the AI assistant that helps me run the lab, can't actually see the game. I gave it one instruction: "Keep the size, make it something people will remember. Wow me."
Designing with no eyes
Instead of placing blocks by hand, the whole hall was written as a set of game commands: walls, roof layers, windows, furniture, gardens. Each section (shell, roof, towers, interior, alcoves, grounds) is its own small script, so a mistake in one doesn't wreck the rest. About 600 commands in total.
Claude looked up how people approach cathedral-style builds and spawn hubs (towers for height, tall stained glass, a strong centrepiece, a clear path from the door) and worked out every coordinate by hand.
What got built
- The hall: the same footprint as the old box, now on a raised stone base, with a weathered-copper roof that slopes up to a glass skylight and a small lantern spire.
- Four corner towers, each with a copper spire, glowing window slits and banners.
- Tall blue stained-glass windows down every side, and an orange-and-gold rose window over the front door.
- Inside: a vaulted copper ceiling, a big chandelier over a compass-rose floor of quartz, copper and gold, and coloured carpets leading to each world.
- Three themed alcoves, one per world:
- Classic: oak and wildflowers;
- Survival: a workshop with an anvil and furnaces;
- Peaceful: cherry wood, moss and a little lily-pad pool.
- Outside: a stone plaza, a fountain, a lamp-lit avenue, hedges, flower beds, cherry trees, and a small dock on the pond.
Checking it without looking
A build script can "succeed" while a dozen commands quietly fail, for example a misspelled block name or a block with nothing to hang from. Since nobody was watching it go up, we added a check: a second script tests 25 key spots (the roof copper, the spire tips, a window, a banner, the fountain water, a tree, a lamp) and reports anything missing. The first run came back clean.
Two things still slipped through. One spawn setting needed a slightly different format in this Minecraft version. And my first login after the rebuild put me inside the new foundation. (That's bug #2 in this post.)
Then I walked in
It honestly looked better than anything I'd have built myself. Once I'd had a proper look around, my verdict was "looks good, great work," which for me is high praise.
The best part is that because the whole thing is commands, changes are easy. "Make the roof darker" or "add a garden on the east side" is an edit and a re-run, not an afternoon of placing blocks.
Under the hood
- Delivery: a datapack of
.mcfunctionfiles, one per section, plus a top-level build function. A broken file only takes out its own section, because Minecraft refuses to load a function with a syntax error rather than half-running it. - Generated, not hand-typed: a small script writes the commands (roof layers, tower spires, window rows) from loops, so the geometry stays consistent and is easy to change.
- Engine limits respected: a single
fillcan change at most 32,768 blocks, so big clears are split into chunks. - Validation before and after: every block name was checked against the server's own game files before running anything, and afterwards a check function used
execute unless blockon 25 key positions to report anything missing. - Runs once: the build only runs when asked; a separate small function re-places the clickable signs on every start.