Kicking-Out Time
Doors at seven
It was Sunday, so the gym first thing and then his parents' for the rest of the day. He usually takes them a video from the playtests. The work at home carried on without him: 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, and sending frames to his phone when they had something to show.
By the evening Christie had been out for the night.
Christie is the dancer at the Sweatbox, the nightclub in the old brick warehouse. Until Sunday she was simply there when the doors opened, which is where most game characters are: wherever the player happens to find them. James wanted her to come from somewhere. So she now has the evening somebody in a Midlands town actually has. She is at home at 22 Hollygate Place in the afternoon. At half six she comes out through her garden gate, walks 45 metres up to the club and joins the queue. The doors open at seven and she goes in and dances. At four in the morning, when the club shuts, she walks 228 metres to Kebabylon, orders, eats her chips standing at the shopfront, and walks home.

The agent ran the whole night in the editor with the clock pushed forward to each beat, and the log came back clean. Out of the gate without a stall. Queue spot taken. In at seven, handed over to the dancing, out at four, chips, home. Not one "stuck" line all night.
GTA 6 is a month away and it is set in a version of Miami. A queue outside a converted warehouse in October, and a kebab shop window at four in the morning, are not things Miami has to get right. This game does have to, because it is British and that is the point. The player who has stood in that queue knows when it is wrong.
Sat on nothing
He saw the fault in about four seconds. The agent had sent four frames from the run, and the fourth was Christie outside Kebabylon in the small hours, low on the gravel at the height of a chair. There was no chair.

His whole message was that she looked seated but she was outside.
The agent had the cause inside ten minutes, and it had seen it before. Every bite of her chips played a drinking clip borrowed from another character, made for sitting at a pub bar, with the hips held 50 centimetres off the floor. On 10 October the same clip had sat Christie on nothing at the club bar, and the fix then was a standing version of it. That fix went into the club routine. The new walk home was a new routine, and it had picked up the old clip.
The standing clip went in, the length of a bite was set from the clip itself, 8.9 seconds, and the whole night ran again. At four o'clock she stood up at the shopfront.

James looked at that one and said he could not tell she was holding any chips. He was right, and for a reason neither of them had guessed. The standing clip lifts her left hand to her mouth. The parcel was in her right, which hangs at her side, and her trousers are baggy. The chips were inside them. The parcel moved to the left hand just after one in the morning, by which time it was Monday. Watching her eat them is next.
Ten metres of nothing
The club itself had been the first job of the day, at about quarter past eight, before the gym.
The Sweatbox has a haze. It is a local fog volume, a box of fog set to the size of the hall, which thickens on the drop of each track. While the agent was fitting the box to the hall it turned up a rule in the engine: local fog is not drawn at all within a set distance of the camera, and the default distance is 10 metres. The hall is about 20 metres by 32. So a player on the dance floor would have seen haze hanging over the far walls and nothing at all round themselves, which is the opposite of standing in a club.
The setting is a console variable, so it can be changed while the game runs. The haze now watches whether the player is inside the hall. On the way in it brings the distance down to a metre. On the way out it puts it back to 10, so the rest of the town's fog behaves as it did, and it puts it back again when play stops so the change cannot leak into the editor. In the test the value read one metre inside and 10 after. Whether a shipped build will let a Blueprint change that setting at all is a separate question, and it gets asked when there is a packaged build to ask.
The same session hung the new kit. An LED wall over the yard door, 24 cells by 10, chasing on the beat: purple through the intro, cyan on the build, magenta on the drop. A strip along the bar front. Four colour washes from the corners. A mirror ball turning at 18 degrees a second, throwing a grid of dots. The tracks run at 138 beats a minute and Christie's samba clip was made at 144.4, so she now dances it at 0.956 speed, and when the song changes she waits for the next bar.

The test was at half seven, so the hall was full of daylight. The dots and the washes are a job for after dark.
Short back and sides
Down on the parade, Barber Black Sheep got a barber who turns up for work.
There is no haircut animation to buy on Fab. The agent searched, then keyed five itself: scissors, clippers, a shave, the cape going on and the cape coming off. By six in the evening a Tuesday morning ran end to end. Terry walks in off the pavement and through his own door. Percy sits down. The cape goes on, then the clippers, the scissors and comb, the razor. Cape off, Percy leaves, Terry sweeps up and the next customer comes in. Nothing was pinned in place to get it to happen.
The run before that had gone wrong twice.
Terry had walked out of his own shop at ten in the morning. The game's first day is a Monday. The week timetable said the barber's shuts on Mondays, which is how plenty of real ones work, and the haircut list said it opened Monday to Saturday. Two files, two answers. Monday won and he went home. They agree now. He also sets off at half seven instead of twenty past eight, because people only appear on the street at the start of a journey, and a late start meant a player waiting outside the shop would see nobody until nearly half nine.
Then he vanished in the middle of a cut. The test had frozen his movement to hold him still for the camera. The part of the game that looks after the townspeople saw a man who had not moved in a while, decided he was stuck, and put him away. The clippers stayed in the air where his hand had been. That one was the test, not the game, and the next run left his legs alone.

Smaller things went the same afternoon. Percy's shoulders came through the cape, so it was made 30 per cent wider and lifted two centimetres. It now looks slightly like a balloon from the front. The mirrors had been set inside the wall, and came out 33.5 centimetres. Every tool had been inside Percy's hair, because the clips aim the fingers at the head and one shared guess put each tool eight centimetres into it. Each tool has its own grip now.
The cut is meant to matter. The agent also built the part that makes hair grow: a little longer each game day since the last visit, and stubble coming in on a timetable set by the man's habits, from a daily shave to never. It is built and saved and on nobody yet. Putting it on the residents, so a visit to Terry resets it, is next.
The barber's in GTA has been a menu since San Andreas. Pick a cut, pay, the hair changes. Rockstar have a department for hair. He had a Sunday.
The dark ceiling
Fringe Benefits, the hairdresser's on the same parade, got its sign. The board on the shop wall turned out to be hidden behind the canopy, as it had been at the barber's, so the sign went on the canopy front instead. Plum, with cream letters, scissors at one end and a hairdryer at the other.

Inside, the ceiling was black. The walls were lit, the floor was lit, the chairs and the mirrors were lit, and above them was a suspended ceiling the colour of a coal shed.

The agent's first suspect was the material, and it had a reason. The barber's ceiling had once rendered as black brickwork, when its material picked up a brick pattern it was never meant to have. But the two shops share the same ceiling material, and the barber's was fine. So it was not the material. The barber's fit-out had given every ceiling light a partner: a second light underneath, pointing up. The hairdresser's fit-out script had put in the lights pointing down and never their partners. A rect light only lights what is in front of its face. The lights sat in the ceiling and shone at the floor, and nothing anywhere was shining at the ceiling.
Three upward lights went in, one under each fitting. The ceiling has tiles now.

The script that fits out shops still does not make the upward lights. Until it does, the next shop it furnishes will have the same black ceiling.
A hat on the floor
At the police station, the officer now brings the meals into the cell instead of passing them through the hatch, and picks up the old cup and the sandwich wrapper before he puts down the new ones. James had dropped the handcuffs from the arrest that morning, because the player has no visible body to put them on. The meal visit is written and in the editor. Running it is next.
The last thread of the night opened late. Angela is one of the town's residents and she sleeps rough. James wanted to try her begging, with the player able to give her money or food and see what she does with it. He sent a reference photograph of how she should sit, and the agent built the pose in Blender: on cardboard against a shop wall, knees up, forearms resting on them, her shoulders on the wall and her feet flat. James said the pose was perfect.
Her hat lies open on the pavement in front of her. It fills as people give: a few coppers, then more, then a lot. He wanted the coins lying flat in it, and they do. She asks for more after every gift. Food she does not eat on the spot. She puts it down beside her and has it at her next mealtime, and the wrapper ends up on the pavement.

All of that is built outside the editor, in Blender and in the files the game reads. Getting her into the town is next.
The fault
Local Fog Volume haze disappears around the player standing inside it in Unreal Engine 5.8
A Local Fog Volume sized to fill a 20 x 32 m nightclub hall. From inside the hall, no haze is drawn near the camera; only the fog more than 10 m away shows, on the far walls.
- Actual cause: Local Fog Volumes are not rendered within
r.LocalFogVolume.GlobalStartDistanceof the camera. The engine default is 1000 (10 m), which is most of a room-sized volume. - Found while resizing the volume to the hall, not from a report.
The fix
Lower r.LocalFogVolume.GlobalStartDistance only while the player is inside
The haze Blueprint checks on Tick whether the player pawn is inside the hall's box and, on the change only, runs r.LocalFogVolume.GlobalStartDistance 100 going in and 1000 coming out. EndPlay restores 1000.
The guard: read the value back in PIE inside and outside (100 and 1000 here) and after PIE stops. ExecuteConsoleCommand from a Blueprint may be blocked in a Shipping build, so check it in a packaged build before relying on it.
The fault
NPC plays a seated animation outside, hips at chair height with no seat
A new routine's eat-and-drink beat played a drink clip authored for sitting at a bar, pelvis at 50 cm. The same clip caused the same fault at a club bar eight days earlier. That fix swapped the clip on that one routine only.
A held parcel was then invisible: it was attached to hand_r, which hangs at her side in the standing clip, inside baggy trousers.
The fix
Use the standing retarget, time the beat from the clip, hold props in the hand that moves
Point the routine at the standing version of the clip and set the beat length to the clip's own length (8.867 s). Attach the parcel to hand_l, the hand the clip raises.
The guard: when a clip is replaced to fix one routine, search for every other Blueprint that references the old one.
The fault
Interior ceiling renders black in Unreal Engine 5.8 while the walls and floor are lit
A suspended tile ceiling near black. A neighbouring shop with the same ceiling material renders correctly.
- Wrong guess: the material, which had once inherited a brick normal map and rendered as black brickwork.
- Actual cause: the fit-out placed only downward-facing ceiling lights. The ceiling faces down, the lights face away from it, and nothing else reaches it.
The fix
Add an upward companion light under each downlight
One light per fitting, 37 cm under it, pitched up 90 degrees, 704 lumens, attenuation radius 400, shadows off.
The guard: before blaming a shared material, compare the broken room with a working one that uses it. Fix the fit-out script as well as the placed room, or the next room repeats it.
The fault
Barber NPC walks out of his shop at 10:00 on a Monday, then despawns mid-haircut
- Two schedule sources disagreed: the weekly timetable had the shop open Tuesday to Saturday, the haircut roster Monday to Saturday. The fallback game clock's day 1 is a Monday.
- The despawn came from the test, which disabled the NPC's movement to hold him still. The town's stuck check read a citizen that had not moved and removed him, leaving the attached tools at hand height.
The fix
Make the timetables agree, and never freeze a citizen's movement in a test
Both sources now open Monday to Saturday, and the barber sets off at 07:30 so he is on the street before opening. Hold an NPC for a capture some other way than disabling its movement, or the stuck check will clear him away.
The kit
| Tool | Why this one |
|---|---|
| Claude Code Projects (beta) | several Opus 5.5 sessions taking turns on one editor while James was out |
| Unreal Engine 5.8 | the whole night of Christie's routine run in PIE with the clock pushed forward, the club lights, the haze |
| Blender | Angela's sitting pose, her hat and coins, and the barber's cape and tools |
| A reference photograph from James | how Angela should sit |
Plain English
| Term | What it means |
|---|---|
| local fog volume | A box or sphere of fog placed in one spot, such as haze filling a club, instead of fog across the whole world. |
| console variable | A named engine setting that can be changed while the game runs, by typing it into the console, or fixed in a config file. |
| Blueprint | Unreal's visual scripting. Logic built by wiring boxes together with lines instead of typing code. This whole game is built in it. |
| 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. |
| animation clip | One recorded movement - a step, a sip, a wave - that a character plays back. |
| retargeting | Taking an animation made for one character and making it work on a differently proportioned one. |
| socket | A named attachment point on a model - a hand for holding a bag, a roof for a light. |
| rect light | A light that shines from a flat rectangle, like a ceiling panel, and only lights what is in front of that face. |
| citizen director | The part of the game that brings townspeople into being near the player and puts them away again when the player leaves, so a whole town can run without every person existing at once. |
| MetaHuman | Epic's system for realistic human characters - face, body, hair and clothing, ready to animate. Every named person in the game is one. |
Things we still need to fix tomorrow:
- Watch Christie eat her chips at four in the morning with the parcel in her left hand.
- See the mirror ball's dots and the colour washes in the club after dark.
- Check the haze setting holds in a packaged build.
- Put the hair growth on the residents, so a cut at Terry's resets it.
- Refit the barber's cape at the shoulders so it sits less like a balloon.
- Give the shop fit-out script its upward lights.
- Run the officer's meal visit inside the cell.
- Get Angela, her hat and her chat into the town.