Clearance
A steel house
It was Saturday, so the whole day was on the game. Saturday is the one day of the week when something can be started that will not fit in an evening. James started a town.
The map has had a gap in it to the north-east of the player's estate for months, signposted and empty. He wanted it filled with a kind of house most people walk past without knowing what it is: the BISF house. After the war the British Iron and Steel Federation put up about thirty-five thousand of them. A steel frame, a rendered ground floor, an upper storey clad in ribbed sheet steel that a lot of owners later covered in timber slats. A shallow roof, some of them still in asbestos-cement sheet. A low flat-roofed store against the gable. He had photographs of a real estate of them and a pile of old estate-agent listings for the insides.
The agent, Claude Code Opus 5.5, worked from those and from the original 1940s plan drawings. By the end of the morning it had a pair of semis in Blender with the hall and stair along the gable wall, a living room with a gas-fire recess and an arch through to the dining room, the bathroom over the kitchen and the wardrobes built in beside the chimney breast. Ten meshes, each one checked for holes and inside-out faces. The new town is called Kelsthorpe, and its roads are named after old British brands: Bisto Road, Brylcreem Close, Ovaltine Crescent and Spangles Close.

GTA 6 is set in a version of Florida, and nobody in it lives in a steel house from 1948. That is the argument for this game in one building. A British player knows these houses on sight, mostly without knowing that they know. Rockstar have a department for estates. He had a Saturday.
Carve, paint, place
The work ran the way it had all week, through the beta of Claude Code's Projects feature: a planner handing jobs to several sessions of the agent, which take turns on one copy of the editor at home. Saturday had four going by mid-morning - lock picking, the police cell, the posh estate's furniture and Kelsthorpe - and a fifth in the nightclub by the evening. When one session was batch-compiling, another's command came back "not available" and had not run. The sessions learnt to wait for a minute of quiet in the log before trying again.
The estate went in order. The agent picked the site with James, surveyed the ground, and planned roads that followed the hills rather than climbing straight over them, with a check that no road ran across another. By half three the road beds were carved into the landscape and four roads painted. By twenty to six there were three T-junctions, three turning heads and two bellmouths, every join within two centimetres. By twenty past six there were 49 buildings on levelled pads, 48 semi pairs and one terrace of four, which is a hundred homes. The agent asked whether to furnish them. James said every house. Nine hundred interior doors and nearly five thousand pieces of furniture went in by script. Most of the valley was too steep for a pair on one pad, and those plots were left empty.
Thirty-five centimetres
He walked into one of the houses that evening and there was grass growing in the front room.
It was the fault the posh estate had shown on Friday, on a different estate built by a different script. The houses had been set five centimetres down into their pads on purpose, so that no daylight would show under a wall on a slope, and the landscape was drawing itself over every ground floor. James said the carve could not be deep enough and it wanted digging out further. The agent argued the other way, and it was right. The ground is a grid of points a metre apart. Drop only the points inside the walls and the ground slopes back up into every room along the skirting. Drop the points outside the walls as well and you have dug a trench round the house.
So the houses went up instead, and the agent measured how far, which was the part Friday had missed. The landscape grows its grass wherever it is, whatever has been built on top. The blades in this game are 25 centimetres tall at their smallest and scaled up to 1.4, which makes 35. A floor six centimetres above the ground still has 29 centimetres of grass coming through it. Every house in Kelsthorpe went up 38 centimetres, with two-step concrete doorsteps at every door to make up the height, and a probe under every ground-floor room came back with the landscape at least 37.6 centimetres below the floorboards.

Friday's fix for the posh estate had been six centimetres, and those houses had gone back into the level with it at half eleven that morning. Whether they need the full 38 is the first thing to look at.
A town nobody could walk
The rest of the evening was dressing, and the list came from James going through the reference photographs: concrete paths from the pavement to every front door, privet, low brick walls with piers, close-board fences between the back gardens, two wheelie bins a house, the same street lamps as the player's own estate, and telegraph poles with a wire dropped to every single house. He wanted the wires to move on a windy day, the way the flags on the car showroom forecourt do. The agent built them in Blender carrying the same wind data as the showroom's bunting, so they swing off the game's own weather. James saw them sway at twenty-five to eleven.

Two faults were sitting in the agent's own picture of one of the greens. The trees were the smallest size of each species and read as saplings, where the photographs had proper old oaks and birches. And both benches and the sign had their backs to the footway. The kit's meshes face one way in Blender and arrive in Unreal mirrored along one axis, so every rotation worked out for them pointed them away from the road. Bigger trees went in at half eight. The benches were turned round at twenty past ten.

The fault that no picture showed was the navmesh, the invisible map of walkable ground that the townsfolk use to find their way. The agent built one and probed it, and found three things. There had never been a navigation volume over this end of the map at all, so there was nothing to build until it added one, 511 metres by 675. Once built, the roof of every one of the hundred houses had come out as walkable ground, which in this project means people turning up on roofs. And 24 front gardens were sealed off from the pavement. The gap in each wall was wide enough for a person, but the navmesh is shrunk back from every obstacle by the width of a walker, and the brick piers either side of the gate closed it. A hundred and ninety-eight invisible boxes over the roofs and stores, and wider gates, dealt with all three. A count before saving showed nothing lost in any of the 45 volumes elsewhere on the map.
The fences were stepped down the banks last, with concrete plinths under each step. James asked for shots at about ten at night. The in-game sun goes down at eighteen minutes past nine, so ten is already dusk, and the best frames were the ones taken looking west into what was left of it. He picked one out as a good shot. It was nearly eleven.

Tea through the hatch
Down the road at the police station, another session spent the day on what happens when the player gets caught.
By lunchtime a night in the cell worked end to end: the door locked, a call button that gets a line out of the sergeant, a bench with a mattress, and at eight in the morning the hatch going up and the door swinging open on to a corridor clear all the way to the street. By the evening the arrest itself was wired in. How much the police find decides between a caution, a night inside and a longer stretch. Three strikes, or one find big enough, and the release programme is over with a recall to prison. A Heat bar that fills sends a car to the player's house. All of it was run in the editor by direct calls, and every step came back as written.

James had one rule for the cell. He did not want the clock to jump, because it had to teach the player a lesson. So nothing in there skips time. Sleep comes four hours at a time and never past the next visit. The officer comes to the hatch at half seven and at six with a ham and mustard sandwich and a cup of tea, gives a lecture every time, and gives another on the way out.
The first test of the bed left the player lying on it forever. The timer that gets him back up had been written after a cast node, and nothing written after that point in the script had made it into the graph. The Blueprint compiled clean. Moving the timer above the cast fixed it, and the rest of the run went through: the officer to the hatch in four seconds, the lecture, the sandwich into the hand, eaten, then the tea, then the cup put down. One empty cup per visit turned into a pile on the floor over a long stretch, so he is meant to take the last one away now. That change is next to run.
The intercom by the door came last. Ask for food, ask for a drink, ask when you are getting out, and ring four times inside a game hour and the desk stops answering. It is built and saved. Pressing it is next.
The trip from the doorstep to the cell is still a cut. James wants it walked - cuffs, car, desk - because this game does not do cut scenes. That is the next piece.
Too many residency sets
At twenty to eleven in the morning the lock-picking session had taken the whole editor down. It was giving every door in the player's estate a lock, for the lock picking that is being built, and to do it the session loaded the big map into an editor that had already loaded it once. The graphics driver gave up halfway through merging the landscape's paint layers, with a D3D12 error about too many residency sets. The project's own notes already said never to load that map twice in one editor. Everything had been saved before the load, so nothing was lost, and a fresh editor with the scalability turned down first got through.
The locks themselves are the reason anybody was in there. The front doors on the terraces mostly get a Yale-type night latch, a pin-tumbler lock: the player holds a little turning pressure on the plug and lifts the pins one at a time, each in the order it binds, and each one that reaches the line clicks and lets the plug turn a hair further. Too much pressure and the pick snaps. Too little and the set pins drop back. Some euro cylinders carry spool pins that fake a set, and the gauge kicks back against you. A latch that has not been deadlocked can be slipped instead, on a timed tap. The back doors are old warded locks or two-lever mortices. The warded lock is a skeleton key steered round turning rings of wards, the easiest of the three. A lever lock needs steady pressure on the bolt while each lever is lifted to the exact height of its gate. The posh estate's front doors have a five-lever mortice with false gates that clunk like the real thing and move nothing. Each door is seeded so it behaves the same every time you try it. Every second at the lock adds to a noise count. The neighbours who will listen for it come later.
All of that is built and compiles clean. Playing it is next.
It was also the editor the posh estate's furniture was queued for. That waited another hour.
On the beat
The last session of the night was in the Sweatbox. The club's tracks are meant to be 140 beats a minute, and James said so. The agent measured them anyway. Seven are 140 exactly. Most of the rest come in around 138 and one at 137.06, which leaves a fixed 140 clock up to 2.2 seconds out by the end of a track. The lights now run off a clock that reads the tempo of whatever is playing, and Christie, the dancer, plays her routine at the track's speed and changes it on the next bar instead of halfway through one. Seeing it at opening time is next.
It was saved at twenty to one on Sunday morning. The gym is first thing.
The fault
Grass shows through the floor of walk-in houses on a landscape in Unreal Engine 5.8
Furnished houses with walk-in ground floors, placed on graded pads in a sculpted landscape. Grass grew up through the ground-floor rooms; upstairs was clean.
- Wrong guess: the pad was not carved deep enough. Lowering landscape vertices inside the walls leaves the 1 m grid sloping back up into every room along the walls; lowering past the walls digs a visible trench outside.
- Actual cause: the houses were placed 5 cm below their pads, so the landscape sat 4.2 cm over every ground floor. Landscape grass spawns on the landscape regardless of what is built over it, and the blades reach 35 cm (a 25 cm clump at up to 1.4 scale).
- Also: the previous day's fix on another estate lifted the floor 6 cm. That clears the landscape surface and not the grass.
The fix
Lift the building: ground floor at least 0.37 m above the landscape
Raise every house 0.38 m above its pad and add two-riser doorsteps at each door. Then trace down from every ground-floor room against the landscape only and confirm the gap. Here every room came back at 37.6 cm or more, with no misses.
The guard: a walk-in floor needs the landscape height under its rooms plus the tallest grass blade. Read the blade height off the grass types; do not guess it.
The fault
New area of a World Partition map has no navmesh, walkable roofs and unreachable front gardens
- No
NavMeshBoundsVolumecovered the new area; the nearest of 46 stopped well short of it. - After adding one, roofs meshed as walkable on 100 of 100 houses.
- 24 front gardens were cut off from the footway: the gate gap left about 1 m clear between the piers, and erosion by the 35 cm agent radius closed it.
The fix
One bounds volume, null areas on the roofs, wider gates
A new bounds volume over the estate (not spatially loaded), 198 NavModifierVolumes with NavArea_Null, 4 to 8.5 m above each house's ground floor and 1.2 to 3.6 m above each store's, and the gate gap widened so the nearest pier is 0.81 m off the path centre.
The guard: compare navmesh coverage in every existing volume before and after, and save only on zero cells lost. Keep RuntimeGeneration Static, read off the level's RecastNavMesh-Default actor, not the ini.
The fault
Player stuck lying down: Blueprint compiles clean but the get-up timer never fires
A script-written Blueprint function put the sleep timer after a Cast To node's success branch. Nothing after that point was connected into the graph. The compile reported no errors.
The fix
Put the timer before the cast, and make the cast the last block
Moved the timer above the cast. The guard: in a generated graph, read back the wired execution path rather than trusting a clean compile.
The fault
D3D12 "Too many residency sets" crash loading a World Partition map a second time in Unreal Engine 5.8
The editor crashed during the landscape weightmap merge on the second load of the main map in one editor process.
The fix
One load per editor process
Restart the editor, turn the sg.* scalability groups down to 0 before the single load, and wait about a minute after the Landscape edit layers merge warning before working. Save everything before any load.
The kit
| Tool | Why this one |
|---|---|
| Claude Code Projects (beta) | a planner running several Opus 5.5 sessions on one shared editor |
| Blender | the BISF walk-in houses from the 1940s plan drawings, and the wind-driven wires |
| Unreal Engine 5.8 | the carve, the roads, the placement, the navmesh and every fault above |
| The original BISF drawings and estate-agent photographs | the room layout and the cladding colours |
| A phase scan of the club tracks | found the real tempo where a straight-line fit dropped 80 % of the beats |
Plain English
| Term | What it means |
|---|---|
| BISF house | A British Iron and Steel Federation house: a post-war steel-framed home, usually a semi, with a rendered ground floor and a clad upper storey. Tens of thousands were built from 1944 and many still stand. |
| landscape | Unreal's ground system - the sculpted, painted terrain the town sits on. |
| foliage | Grass, plants and trees placed in bulk, drawn with heavy instancing because there are so many. |
| navmesh | An invisible map of walkable ground that characters use to work out routes. No navmesh, no walking. |
| agent radius | How wide the pathfinder assumes a walking character is. The navmesh is shrunk back from every wall by this much, so any gap narrower than twice the radius simply is not there as far as an NPC is concerned. |
| nav modifier volume | An invisible box that changes what the navmesh does inside it - set to a null area, it tells the pathfinder nobody may walk there, such as on a roof. |
| World Partition | Unreal's system for very large maps. It chops the world into a grid and only loads the squares near the player. |
| Blueprint | Unreal's visual scripting. Logic built by wiring boxes together with lines instead of typing code. This whole game is built in it. |
| cast | A Blueprint step that checks whether an object is a particular kind of thing and, if it is, lets you use it as that kind. It has a success branch and a failure branch. |
| D3D12 | The Windows graphics system Unreal uses to talk to the graphics card. Its errors usually mean the card or its memory has run out of room for something. |
| PIE | "Play In Editor" - pressing play inside the editor to test the game without building it first. Fast, and it behaves subtly differently from the real build. |
| BPM | The tempo of a piece of music. Used here to make dancing and lighting land on the beat. |
| tick | Code that runs every single frame. Cheap once, ruinous sixty times a second across a thousand actors. |
Things we still need to fix tomorrow:
- Check the upmarket estate's ground floors against the 35 cm grass; they went in lifted 6 cm.
- Measure the frame rate near Kelsthorpe with the editor closed: 900 interior doors run code every frame.
- Two garden paths lose the navmesh over a crest; re-probe the whole estate after a fresh editor load.
- Find the black patch on the hillside east of the estate in the aerial shots.
- Press the cell intercom for real, then walk the arrest from the doorstep to the cell.
- Put the lettering on the "no ball games" sign.
- Watch Christie's routine change land on the bar at opening time.