mc-server, week 32: Line 1 opens, traps everyone, reopens

·2026-W32 ·3 min read

mc-server weeknotesminecraftsqlite

The week’s theme was transport. The subway is the first thing on the server that has to work for other people rather than just exist, and that changes what counts as done.

The stack decision came first. Server-side, on Paper’s own minecarts, rather than anything that needs players to install a client mod — the whole point is that someone can join and ride it. And explicitly transport first: the settlement-simulation ideas are a separate thing that can wait, which is now written down specifically so I stop bundling them in.

Then Metro, then Line 1. Surveyed the server-side plugin options (and corrected a wrong claim about TrainCarts I’d already committed to a decision record — that one is on me), adopted Metro, and built Spawn Central to East Terminal as a test line. Getting it onto the web map took route_points, and then a caveat: the map’s depth test makes an underground line look wrong, so the line is drawn above the terrain on purpose. Accuracy traded for legibility, deliberately.

The station ate me. The walls generated at a station edge are sensible for something arriving on rails and a sealed box for something arriving on foot. I walked in and could not get out. Fixed, and recorded as a general lesson — if I generate geometry from config again, a human may approach it from an angle the config never considered. East Terminal also turned out to need a surface exit before it was a station rather than a hole in the ground.

The bake-off has no result. With Metro working, I installed TrainCarts alongside it, because multi-passenger riding is what I actually want and I don’t know which plugin gives it to me. Two bugs so far and both are mine: a spawner sign outside the rail’s range, and signs placed where they could never link to the rail. Nothing decided yet.

Away from the metro: the settlement sim got SQLite persistence and a real tick-loop scheduler instead of whatever it had before, with the persistence choice recorded as stdlib-only and no ORM until something demands one. NPCs will be FancyNpcs rather than Citizens. And the Bedrock bridge turns out to go stale between restarts, so there’s now a refresh script that runs at 4am and skips it if anyone is actually playing.

Where this came from

Work between 3 and 6 August 2026 in the mc-server repository — about 23 commits, plus decision records 0011–0017 written in the same window. The repository is private; this is a summary of what’s recorded there.

The TrainCarts comparison is reported as unfinished because it is. Nothing above describes a configuration that wasn’t actually applied to the server.