Second Chance GazetteDevlogToken Use

Kicking-Out Time

unreal-enginelocal-fog-volumelightinganimationmetahumannpc-routinesblueprintclaude-codegta-6

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.

A woman in red baggy trousers and a red top walks away from the camera along a strip of grass beside a red-brick terrace, towards a brick warehouse nightclub with a purple sign over its doors, under a blue sky with white clouds.
Half six. Out of the gate and up to the club, with half an hour to wait in the queue.

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.

Night, outside a brightly lit shopfront. A woman in red trousers is crouched low on the path in front of the window as if sitting on a chair, but there is no seat under her, only gravel and grass.
The frame James stopped at. Four in the morning, and the seat is imaginary.

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.

Night, outside the same lit shopfront from a different angle. The woman in red trousers now stands upright on the path by the window, with orange lamplight on the gravel and houses with lit windows behind a fence.
The same shopfront after the swap. Upright, at least.

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 inside of a brick warehouse nightclub with balconies down both sides and a metal lighting truss across the roof. A wide panel of purple LED cells glows above the far door, a DJ booth with two speakers stands beneath it, and a thin green laser line crosses the ceiling. The floor is washed white with daylight.
Half seven in the evening on the game clock, and still daylight in the hall. The wall is drawing its chase over the yard door.

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.

Inside a barber's shop with red barber chairs and mirrors along a white wall. A barber in a white polo shirt holds scissors and a comb to the head of a balding older man sat in a chair under a dark cape.
Scissors and comb with the cape on. It is a little generous at the lap.

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.

A parade shopfront in daylight. A plum-coloured sign on the canopy reads Fringe Benefits in cream letters, with scissors on the left and a hairdryer on the right, above wide windows showing the salon inside.
The sign on the canopy, where it can actually be seen from the pavement.

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 inside of a hairdresser's: three black styling chairs face mirrors on a beige wall, with two backwash basins beyond. The walls and floor are lit but the ceiling above them is almost completely black.
Fringe Benefits before. Lit room, black lid.

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 same hairdresser's from a little further back. The suspended tile ceiling is now lit, with warm pools of light round each fitting, over the styling chairs, mirrors, basins and a staircase in the corner.
After. Same room, same material, three more lights.

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.

A render on a plain grey background of a slumped dark-green woolly hat lying open, with a handful of copper, silver and gold coins lying flat inside it.
The hat. The coins lie flat, as asked.

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.GlobalStartDistance of 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

ToolWhy this one
Claude Code Projects (beta)several Opus 5.5 sessions taking turns on one editor while James was out
Unreal Engine 5.8the whole night of Christie's routine run in PIE with the clock pushed forward, the club lights, the haze
BlenderAngela's sitting pose, her hat and coins, and the barber's cape and tools
A reference photograph from Jameshow Angela should sit

Plain English

TermWhat it means
local fog volumeA box or sphere of fog placed in one spot, such as haze filling a club, instead of fog across the whole world.
console variableA named engine setting that can be changed while the game runs, by typing it into the console, or fixed in a config file.
BlueprintUnreal'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 clipOne recorded movement - a step, a sip, a wave - that a character plays back.
retargetingTaking an animation made for one character and making it work on a differently proportioned one.
socketA named attachment point on a model - a hand for holding a bag, a roof for a light.
rect lightA light that shines from a flat rectangle, like a ceiling panel, and only lights what is in front of that face.
citizen directorThe 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.
MetaHumanEpic'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.

← All devlog entries

Watch it get built. All of this goes up on YouTube as it happens - broken animations, buildings hovering a foot off the ground, the lot.

Subscribe on YouTube