Mean Free Path
Two words at half two
It was a Monday, so James was at work. The game carried on at home without him, the way it had all the week before: several sessions of the agent, Claude Code Opus 5.5, taking turns on the one copy of the editor through the beta of Claude Code's Projects feature, with a planner deciding whose turn it was. A session that reaches half a million tokens of context stops, writes down where it is up to, and hands over to a fresh one. Several of them did that during the day.
By the evening every way the player can be arrested had been run in the game from start to finish, a whole cast of townspeople had their tattoos, the river had been three different colours, and a police officer had his sleeves rolled up for the first time.
The question behind the biggest of those had been waiting on his phone since Sunday morning. The session working on the police station had found a gap. When an officer on foot spots a wanted player, what happens? Until then, the answer was a cut: the screen moved the player straight to the cell. This game does not do cut scenes, so the agent sent him three options. The officer could radio the patrol car and hold you until it came. He could walk you to the station himself. Or the cut could stay.
He answered at about half two, on his break. Mix, yes.
The walk-in
What "mix" meant, written out in the agent's notes afterwards: if the officer is close to the station he walks you there, and if he is not he radios the car and you wait. And the knock on the door, which until then had only been a timer, became a real visit. A car pulls up outside, two officers come to the door and knock. Open it and you are arrested on the doorstep. Leave it and they say they will be back, get in the car and go.
The agent built it in the early afternoon and then, before testing it, ran a census of every police officer in the town. That turned out to be the useful part. There was exactly one officer on foot anywhere: the custody officer behind the desk at the station. Everybody else in uniform was in a car. So the walk-in had one man to do it, and the radio option had nobody at all.
It also explained something an earlier test had turned up. The agent had released the player from the cell, made him wanted again, and he was spotted in under four seconds, standing in the corridor, by the only man in town on foot, and cut straight back to his cell. Nobody had planned for the most likely place to be spotted by a police officer being the police station.
Four tests ran in the afternoon and all four passed. A raid on a house holding a large stash: the car took three minutes to arrive, the officers walked him out of the house, ten seconds to the car, a 70-second ride, then the bay, the desk, booked in, Cell 1. A street arrest by the patrol car, four minutes forty from spotted to locked in. That one turned up a small problem. The car had been parked in the station bay when the test began, so "take him to the station" meant three minutes driving out and three minutes back. On a real patrol it starts on the road. The knock with nobody answering: two knocks, a minute's wait, back in the car, the next knock in fifteen minutes. And a full week on the run, which ends with the hunt simply called off.
Then the two new ones, at about quarter to four. The doorstep: out of the car in 63 seconds, a knock, the door opened, arrested, walked out to the car, a 37-second ride, booked at the desk, locked up. Being wanted puts 48 hours on top of the stay, and a strike on his record. And the walk-in: released, stood outside the cell door, made wanted. The custody officer had him in less than a fifth of a second, cautioned him, and walked him back to the desk in 11 seconds.
Earlier in the day the meal visit had passed too. The officer comes into the cell at mealtimes now, picks the empty cup out of your hand and the sandwich wrapper off the floor, leaves a sandwich you dropped without eating, because that is food and not litter, and holds out a cup of tea. The wrapper briefly had no model at all. The log said so in capitals, and the cause was a lookup table that had been written before the wrapper existed and never filled in again. It was filled in at one minute to three.
GTA 6 is a month off. In every GTA so far, getting caught is one word on the screen and waking up outside the police station a moment later. In Second Chance it is a knock on your own front door, and whether you open it is up to you.
Under the hair
The tattoos had started at midnight and they were finished by ten in the morning.
The job was to put every tattoo, earring, ring and stud in the town's character list on to the person it belonged to: the dancers at Knockers, the women at the Parlour, the new residents and a good few others. By breakfast most of them were on. The agent was checking each one in the game, close up, and the neck tattoos on two women, Liz and Charlotte, were not there.

The agent diagnosed it with some confidence. The faces of these two were the older kind of MetaHuman, and it said that up close those faces use a full skin material which does not carry the baked-in ink, so the tattoo would only appear at a distance. It wrote that up as the cause, in the notes and in the project's memory, and began working on a fix for a material.
The material did not exist. When it listed what was actually on the face meshes, there were eight slots, and every skin material on them was the baked one with the ink in it. The two faces were the medium-quality kind, built from a simpler head than the agent had assumed. The ink had been rendering the whole time.
Liz's butterfly had been placed at her earlobe. Her hair is a bob. It sat underneath it, and what the camera saw was the dark smudge. Charlotte's line of Roman numerals sat under her jaw and ran off the edge of the face's texture at the seam, so it lost its last letter. On top of both, the test was being run at low texture settings, and the faces load their detail in tiles: Charlotte's numerals only came up sharp after about ten seconds of the camera resting on her.
The fix was moving them. Charlotte's went three and a half centimetres down, back towards the side of her neck, set 6.5 centimetres wide, and now the whole date is there.

Liz's went down three centimetres, came back half hidden under the bob, and went down two more.

By ten James said to skip the rest of the checks. Six people were left to look at in the game, and each of them was at work, asleep or somewhere the camera could not get to at that hour. The memory that had the wrong diagnosis in it was rewritten the same morning.
Three rivers
The river had been a flat opaque olive. The fishing is on it, and you could not see a fish. On Sunday night it had been changed to something clearer, called murky-clear. On Monday morning the agent took the pictures.

The colour of Unreal's river water is set by how far each of red, green and blue travels through it before it is gone. Whichever colour travels furthest is the colour the water turns, and the bottom shows through for as far as the light gets there and back. James wanted to see the fish, and the bank under the surface. So the agent took red out to the furthest, two metres, and cut the haze to about a third. Tea, it called that one.

For the fish, nothing needed playing. The agent put a perch, a trout and a salmon in the water at 30, 60 and 100 centimetres down, as temporary models the editor throws away, and shot from above. All three showed, the salmon best.

James looked at it in the evening and said the clearness was right and the colour was too orange. He wanted more green than orange and slightly clearer. Green went out furthest, the haze came down by about half again, and the river was saved as murky green at ten past eight. Looking at it from the bank is the next job on the main map.
One detail from the morning was worth more than the colours. The script that sets the river prints a summary of what it has done, and the summary labels the distances in metres. They are centimetres. Earlier fishing tests had proved that, and the printout had gone on saying metres anyway.
Shirtsleeves
Two smaller jobs ran into the night.
The male officers in town had worn a stab vest over everything. James wanted them changed: the helmet kept, a white short-sleeved shirt, black cargo trousers, the same black boots as Dean on the door of the Sweatbox, and the vest gone. By nine the shirt, trousers and boots were on and saved.

The preview had two tricks to learn on the way. The officer's animation puts him sitting down when nothing is playing. And anything hung off the root of the character, the belt included, reported a size of almost nothing, so the close-up camera decided it was out of view and stopped drawing it. The new vest is waiting on a download.
At Fringe Benefits, the hairdresser's on the parade, there is a stylist now. Agnieszka works Tuesday to Saturday, nine to half five, and her station was built late that night from the barber's next door with the clippers and the razor taken out. James looked at her fitted and dressed and said she would need scissors. The agent made her a pouch for her hip. The first one came out sitting inside her jeans, on the back pocket. The second sits four and a half centimetres further out, on the outside.

Building it turned up a small trap of its own. A check asking whether the pouch had any bone weights got back a pair of values rather than a yes or a no, so it never fired. Putting her in the shop is next, and waits for James to say play it.
The fault
MetaHuman neck tattoo not visible in PIE in Unreal Engine 5.8
Baked head ink on two legacy MetaHuman faces did not appear in close PIE shots. A third looked partial.
- Wrong guess: the legacy face's LOD0-2 use a full skin material without the baked ink. A fix was started on that basis.
- Actual cause: both faces were Medium quality (
Face_LODSettings_Medium). Mesh LOD0 is 4,067 verts (the Hi LOD3 topology) and the only skin MIs on it areMI_Face_Skin_Baked_LOD3_VTandMI_Face_Skin_Baked_LOD5to7_VT, so the ink renders at every LOD. One tattoo sat at the earlobe under a bob haircut. The other crossed the head UV seam at u 0.97 and lost its last character. Low texture settings plus virtual texture streaming blurred both; one only sharpened after about 10 s of the camera on it.
The fix
Check the face quality first, then move the ink
List the face mesh's material slots before touching any material: Medium faces carry only the baked LOD3 and LOD5-7 skin MIs; Hi faces share one head colour map across LOD0-4 and need the ink baked into that map.
The fix was placement: per-head offsets moved one design 5 cm down in two steps, and the other 3.5 cm down and back towards the side of the neck, 6.5 cm wide, clear of the seam.
The guard: judge head ink in PIE at Epic textures, wait for the virtual textures to stream in, and look under the hair before calling it missing.
The fault
Released player re-arrested within seconds inside the police station
Making the player wanted while he stood inside the station got him spotted in under 4 s and moved to the cell by a cut, with no walk.
- Actual cause: a census of the officers found exactly one on foot in the whole town, the custody officer. Every other officer was always with a car. The spotting check fired for him, and on-foot spots still used the old cut.
- Second fault, same session:
IXWORLDITEM no mesh row for RailSandwich_Wrapper. The item's ids and meshes table inBP_WorldItemwas seeded before the wrapper row existed and never re-seeded, so the dropped wrapper had no model.
The fix
A walk-in for the custody officer, and re-seed lookup tables with PIE off
A spot by an officer tagged as the custody officer now starts a walk-in: he walks a runtime navmesh path to the player, cautions him and leads him to the desk, then booking and the cell. A patrol-car spot still takes priority. The wrapper was fixed by re-running the seed-only world-item mesh builder with PIE stopped: 132 rows.
The guard: before designing what "an officer spots you" does, count which officers can do the spotting.
The fault
River water renders opaque lime, then orange, in Unreal Engine 5.8
Retuning the river's water material instance gave a flat lime sheet, then a flat amber one, with the bed visible only in a band about 1 m from the bank.
- The trap: on this water material, Absorption is a mean free path in centimetres, so bigger means clearer and the longest channel sets the colour. The tuning script's printout labels it metres. It is wrong; earlier fishing tests proved centimetres.
- Path (R/G/B, cm) 120/160/60 read lime; 200/140/50 read amber; 150/260/90 with scattering 1/1.6/0.6 per 1,000 cm is the current setting.
- Material instance setters on this material run out of memory with the main map loaded. They are run on an empty level.
The kit
| Tool | Why this one |
|---|---|
| Claude Code Projects (beta) | a planner handing the day's jobs to several Opus 5.5 sessions sharing one editor |
| Monolith MCP | ran the editor Python that drove the arrest tests in PIE |
| Temporary skeletal mesh actors | fish in the water for a still, with nothing to save or clean up |
Plain English
| Term | What it means |
|---|---|
| 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. |
| MetaHuman | Epic's system for realistic human characters - face, body, hair and clothing, ready to animate. Every named person in the game is one. |
| LOD | Simpler versions of a model, swapped in as it gets further away. The trick that lets a street hold hundreds of objects. |
| material instance | A copy of a material with some settings changed. Cheap to make and cheap to render, so most surfaces are instances rather than originals. |
| UV seam | The line on a model where its flat texture pattern is cut and joined, like the seam on a shirt. Anything painted across it can lose a piece or jump out of line. |
| virtual texture | A texture the engine loads in small tiles as the camera needs them, rather than all at once. It saves memory, and it is why fine detail on a face can arrive blurred and sharpen a few seconds later. |
| Single Layer Water | Unreal's cheaper water surface - one sheet with a depth-faked body underneath, rather than a simulated volume. It is what makes a river affordable, and it is why the water's colour is set by two numbers rather than by modelling what is actually in the water. |
| absorption and scattering | The two numbers that decide what colour a body of water is. Absorption is light the water swallows; scattering is light it throws back out. Their ratio - the single-scattering albedo - is the actual colour you see, so raising scattering alone does nothing if absorption is raised with it. |
| navmesh | An invisible map of walkable ground that characters use to work out routes. No navmesh, no walking. |
| skeletal mesh | A 3D model with a skeleton inside it, so it can bend and animate. People and animals are skeletal meshes. |
Things we still need to fix tomorrow:
- Shoot the green river from the bank, in daylight, at High settings. Then James's verdict.
- Walk-in from far away: tested so far from about 4 m. Then the radio-the-car option, which needs an officer on foot away from the station.
- Voice the custody lectures, and make a crushed empty sandwich pack for the wrapper.
- The battle vest, POLICE patches and the radio on the right of the chest. Then the officer in the main map.
- Agnieszka into Fringe Benefits, once James says save it and play it. Her pouch and the shop chairs render beige.
- Six tattoo checks, on people who are at work or asleep at the hour the camera reached them.