Laying bathrooms as a row of booths and a row of basins
A bathroom's booths now stand in one unbroken row against a wall with a toilet in each, and the basins get a row of their own.
A bathroom in the game now has its stall booths in one unbroken row against one wall, edge to edge, with the doors facing into the room and a toilet inside each. The basins are in a row of their own on another wall. The Breakout Site’s bathroom on floor 1 is five booths on the north wall and four basins on the east wall, and generated bathrooms are laid the same way. Urinals aren’t in yet because the kit has no urinal model.
On 13 October I drew a note in the game on that bathroom: “This bathroom is incoherently laid out.” I wanted the decorator to lay groups of things that make sense together, so booths against a wall the way a real bathroom has them, then urinals and sinks. A template for the bathroom had already landed on 15 October, so I had the room filmed as it was before anything changed.
Why didn’t the booths touch?
The booth in the props table is 1.0 m wide and the old row put them 1.05 m apart, so even a perfect row had 5 cm between booths. The pitch is now 1.02 m, and the booths touch within 2 cm.
I was asked whether to use the kit’s existing booth before making new partition models, and I said “Booths first”. So there’s no new model.
How does the new row find its place?
The old row laid pieces along the walls starting from the end farthest from the main door, and it never checked where a whole row would fit. The new one is a flush row in the bathroom’s template, and RoomLayout._flush in the room layout code works out the row before it lays anything.
For each wall the step names, it slides a start point along the wall in 0.25 m steps. At each start it counts how many pieces at the pitch fit in a row from there. To count without placing, put got a dry argument that runs every check of a real placement and then returns without standing anything or taking floor. So a door, the door line or a bit of rock can shorten a row, but it can’t split one, because only stretches where every piece fits are counted.
The best stretch is the one with the most pieces. A tie goes to the one nearest a corner. The pieces are laid nearest the main door first.
The room’s first step is its anchor, and normally a lane the width of the door line is kept clear from the main door to it. A row of booths would be cut by that lane, so the layout holds the lane back until the whole row stands and then keeps it once.
The template is now this, where walls: spare means the walls nothing stands at yet. That is what puts the basins and the single pieces on walls of their own:
{"do": "row", "prop": "stall", "flush": true, "walls": "long", "pitch": 1.02, "most": 5, "with": [{"prop": "toilet", "at": "inside"}]},
{"do": "row", "prop": "urinal", "flush": true, "walls": "spare", "pitch": 0.5, "most": 4},
{"do": "row", "prop": "basin", "flush": true, "walls": "spare", "pitch": 0.8, "most": 4},
{"do": "single", "prop": "cabinet", "walls": "spare", "where": "door"},
{"do": "single", "prop": "seatbench", "walls": "spare", "where": "door"},
{"do": "single", "prop": "locker", "walls": "spare", "where": "far"},
{"do": "single", "prop": "shelfbare", "walls": "spare", "where": "far"}
The urinal row is already in the template. It lays nothing until a urinal model exists.

Twelve frames of the after film. The first frame is the before view of the Breakout Site’s bathroom, then the room after the change, the close views of the row of booths, and the generated bathroom.
What does the test check?
The test has 18 checks. It goes through every bathroom of the Breakout Site, the fill audit’s fixtures and the theme tour’s dungeons, and a small hand-made sheet. In each one it checks that:
- the booths are one row on one wall and face the same way.
- adjacent booths are at most 5 cm apart with nothing between them.
- every booth has a toilet inside and no toilet stands outside one.
- the basins are a row of their own on a wall no booth stands at.
- the door line is still kept, so a body 1.2 m across goes between the ways in and a 0.8 m one reaches everywhere.
It also asks the questions in a way that can be answered no, with a booth moved 0.3 m, a toilet moved out and a basin put among the booths. Against the old template, 4 of the checks fail with 72 faults across the rooms.
Every other room kind is laid as before. I compared 451 rooms before and after to check that.

Eight frames of the before film, the same rooms laid by the old template.
What’s left?
Urinals wait for a model. I also noted that other room kinds would gain from the same rows, like canteen tables, bunks, lockers and kitchen counters, and each of those is a template step with its own test.