Second Chance GazetteDevlogToken Use

Keyholder

unreal-enginemetahumanfabclothinginterchangefbxnavmeshnpcroutinesdoorsgta-6

Debts paid and a home

It was a Monday, so James was at work and the game was built in the gaps. The editor ran at home. He talked to the agent - Claude Code Opus 5.5, several sessions of it - from the phone app between jobs, gave it rulings a sentence at a time, and saw most of the day as screenshots and text.

The first thing he asked for had nothing to do with the build. LOVE magazine had a GTA 6 issue out that day, Rockstar's first long interview about the two leads, and he wanted to know what was in it. The magazine itself was a twenty-five euro print issue on newsstands that morning, and the pre-order cover had sold out in minutes, so the agent did not read it. It read three websites' accounts of it in Chrome and wrote down, line by line, whose words were whose.

What came back was closer to home than either of them expected. As those write-ups reported it, Jason and Lucia's American dream is a modest one: a house for the family, and their debts paid off. That is very nearly the premise of Second Chance, where a man out of prison on a release programme has to find money from somewhere and decide whether it comes from a proper job or from going back to what put him inside.

James's view, written into the notes the same morning, was that neither game invented it. Debt and wanting a fresh start are ordinary life. The difference is the route. Rockstar's answer, as reported, is a crime spree through a state built as a satirical pressure cooker. Here the legal job sits on equal footing - the bin round, the refuse wagon, the butcher, the corner shop - in a town that is deliberately ordinary. You can pay it off with a bin round. That is a real option, not a side quest.

A first-person view of a pale stone tiered fountain on a paved circle under a blue sky with white clouds, red-brick terraces and trees on the horizon. The HUD reads Day 1, 10:02, a bank balance of 0.00 pounds, and a to-do note to sign on at the Job Centre at 9:30am tomorrow.
The start of the game, as it looked on Monday evening: day one, two minutes past ten, nothing in the bank and a note to sign on at the Job Centre in the morning. Same stakes as Jason and Lucia. Different route.

The British answer to a diner

The interview came with photographs, and one of them, a diner booth with guns drawn, had fans online calling it Pulp Fiction. Rockstar have not said so. James's reaction was that if GTA 6 borrows from American cinema, this game should borrow from British films, and he asked for a list.

The agent wrote one from what it already knew of the films, not from fresh research, and said so at the top. James read it on his snap and approved the lot. A few of them:

  • Boy A, where a young man released under a new name gets a delivery job and his past threatens to come out. The closest film there is to this game's premise.
  • Trainspotting's job interview, the one the applicant throws on purpose. As a scene with three replies on the number keys it would be cheap to build and funny.
  • The Full Monty's Job Centre queue, which starts moving in time to the music.
  • Lock, Stock and Two Smoking Barrels: a debt to the wrong man and a week to pay it. A clock for the crime path.
  • Saturday Night and Sunday Morning, which is set in Nottingham, and whose whole rhythm is a hard week at work and then the pub.

The rule written on top of the list matters more than the list. Borrow the situation, never the script: no quoted dialogue, no characters' names, no recreated shots. A British crime film is usually about ordinary people in a bad spot, where the American one tends to be about glamour, and that difference is most of the pitch. None of it is built. It is a list he said yes to, which is a different thing.

A fit of a few millimetres

The rest of Monday was Vickie, the receptionist at the Palace, the massage parlour on Bestholme Boulevard. She had ended Sunday night back in her old clothes, because the new outfit - an ivory one-shoulder crop top and wide-leg trousers, bought on Fab - had come into Unreal at the wrong size and been taken off again.

The cause took the morning to find, and it was not in the file. The FBX was fine. The fit done in Blender was fine. Unreal Engine 5.8 had quietly sent the import through Interchange, its newer importer, and Interchange does not read the options the old FBX importer takes. The script had been setting those options carefully for an importer that was not running, and the outfit had come in at about a fifth of its size. The clue was one line of metadata. The outfit carried Interchange's import record; her older top, which had always come in at the right size, carried the legacy importer's. The script now switches Interchange off for FBX around its own import, switches it back whatever happens, and stops dead if the result did not come through the old path.

Then a run of smaller things, each visible only after the last was fixed. The MetaHuman's own T-shirt was still on underneath and drew over the new top, sleeves and all. The detailed body had been trimmed to sit under her old clothes, so with those gone there were holes at the shoulder and back; she went onto the plainer complete body instead. In play, standing at the desk on her idle loop, her skin pushed through the top at the chest. The fit had left a 12 mm gap and the animation ate it.

James's ruling came from the phone in one line: the fabric should sit only a few millimetres off, one to three. Offered a looser top or hiding the skin underneath, he picked the second. So the fit went to 3 mm, and the skin that sits wholly under the top was cut out of the body mesh, with one ring kept under the edges so nothing opens up at the hem.

A plain grey test render of a character body from the neck to the thighs, arms held out, with an irregular hole cut through the upper chest where the skin has been removed, on a flat grey background.
The cull's own test render. The skin the top covers completely is removed, so there is nothing left under it to poke through.

The weights needed the same treatment. Each point on the garment had been taking its bone influence from the single nearest point on the body, which let the top bend in steps and pushed the chest through again. Taking it from the nearest body face instead, blended across that face's three corners, settled it. Below the crotch each trouser leg now listens only to its own leg.

One fault survived all of it: a small square of trouser fabric bridging the gap between the legs. Three attempts each made it worse. One turned it into a rigid flap down to the knees, one tore the panel, and deleting the faces outright tore holes in both legs. In the afternoon James told the agent to put her back in the best version so far and park it. It is on the bug list with what was tried.

Four Bestholme Boulevard

His next instruction is the one the day is named for. Vickie should arrive in the morning and open the door. She needed a house close by, and at closing time she should go home.

He picked the house himself: 4 Bestholme Boulevard, a couple of hundred metres up the road. She became a citizen like the rest of the town - ten until close, Monday to Saturday, Sunday off and whoever is on opens up - and the old placed copy of her, the one that had stood at the desk whatever the hour, was deleted, with a backup kept.

The first test in play had her spawn at home at twenty to ten on a game Tuesday and not leave. Her front door was hinged to swing into her own hallway, and the open door stood exactly where she needed to walk. She was blocked at a distance of zero. One sign flipped on the hinge and she walked straight out.

Then the honest problem, which was not a bug. The citizen director only brings a townsperson into being while she is walking somewhere near the player. Turn up at the Palace at noon having spent the morning elsewhere and there was nobody at the desk, because the walking Vickie had never existed. The deleted copy used to cover for that by accident.

The answer was a stand-in and a keyholder in one small Blueprint. A second Vickie waits hidden behind the counter, and every half second it asks two things: is she on shift, and is the real one within 20 metres? On shift with nobody there, it shows itself, idling at the desk. When the walking one arrives, it hides. The same Blueprint keeps the parlour's front door locked Monday to Saturday until she is in, which turned a door that opened by the clock into a door she opens.

The builder for it came back with every function empty and no error. The tool the agent writes Blueprints with addresses a variable by its category, and these had been filed under a category of their own. Moved to the default one, they filled in.

Then she stood at home again. Same symptom, different cause. The marker she was walking to, just behind the counter, sat in a small hole in the navmesh round the desk post. Asked to walk somewhere with no route to it, a character in Unreal does not complain. It waits. The marker moved a short way to the nearest ground with a route, and every new destination in the town now gets a route test before anyone trusts it.

The run that worked was mid-afternoon. At 09:39 on a game Tuesday she left 4 Bestholme Boulevard and walked up the road at 1.4 metres a second, with the agent's camera following her. The Palace door stayed locked the whole way; at 26 metres out it was still locked. She reached it at 09:42, it unlocked, she went in and stopped 1.2 metres from her desk, and the stand-in stayed out of sight.

GTA 6 will have a whole state full of people. This is one woman with a house, a commute of three and a half minutes and the only key to the shop, and if you get there before her the door is shut. Rockstar have a department for that kind of thing. He had a Monday and a phone.

The X in the corner

One more thing from Monday, and it had no clever fix. At one point a Message Log panel had docked itself across the whole editor window. The agent clicked the X in the top-right corner to close it. That X belonged to the window, and it closed Unreal.

James was at work. The editor was started again and the session carried on, and the handover now has a line about it in capitals.

The fault

Unreal Engine 5.8 FBX import ignores FbxImportUI and brings a skeletal mesh in at the wrong scale

A Fab garment, refitted in Blender and exported as FBX, imported at about a fifth of its size. The import options were set correctly and had no effect.

Wrong guesses: the FBX export, then the Blender fit. Both were fine.

Cause: UE 5.8 routed the FBX through Interchange, which does not read FbxImportUI. The tell is the asset's import data: InterchangeAssetImportData on the bad import, FbxSkeletalMeshImportData on an older garment that came in correctly.

The fix

Force the legacy FBX importer for the one import, then check which importer ran

Turn the Interchange FBX path off around the import and restore it in a finally block:

unreal.SystemLibrary.execute_console_command(world, "Interchange.FeatureFlags.Import.FBX false")
try:
    unreal.AssetToolsHelpers.get_asset_tools().import_asset_tasks([task])
finally:
    unreal.SystemLibrary.execute_console_command(world, "Interchange.FeatureFlags.Import.FBX true")

The guard: after the import, read the type of asset_import_data and raise unless it is FbxSkeletalMeshImportData. Re-imported this way, the outfit's bounds matched her height.

The fault

Skin pokes through a fitted garment on a MetaHuman when the idle animation plays

Fine in the A-pose, broken in PIE: body skin showed through the top at the chest with a 12 mm fit gap. Separately, nearest-vertex weight transfer let the garment bend in steps and pushed the chest through again.

The fix

A 3 mm fit, cull the skin under the garment, weights from the nearest face

  • Fit the garment 3 mm off the body.
  • Delete the body skin that sits fully under the top, keeping one ring of faces under its edges.
  • Transfer weights from the nearest body face, blended barycentrically across its corners, not from the nearest vertex. Below the crotch, each leg vertex takes only its own side's leg.

Still open: a small panel of fabric between the legs. Pelvis-blended weights, averaged inner-leg weights and deleting the straddling faces all made it worse.

The fault

Unreal Engine NPC stands at home forever with no error after being told to walk to a destination

Two causes, the same symptom:

  • Her own front door swung inwards and the open leaf blocked her at 0 cm.
  • The destination target point sat in a hole in the navmesh. A move to an unreachable goal does not fail loudly; the character waits where it is.

The fix

Flip the hinge, move the marker, test every destination for a path

Flip the door's hinge so it opens away from her route. Move the target point to the nearest reachable ground.

The guard: test every new destination with find_path_to_location_synchronously before trusting it.

The fault

A citizen NPC is missing from her workplace when the player arrives late

The citizen director only spawns a townsperson while she is walking near the player, so a player who arrives after her commute finds an empty desk.

The fix

A hidden stand-in at the desk that also holds the door key

A child Blueprint of her character, placed hidden at the desk, checks twice a second: on shift, and no walking copy within 20 m, then show it; otherwise hide. It keeps the front door locked Monday to Saturday until she is in, and resets the key overnight only.

  • The Blueprint-writing tool addresses variables as Variables|<Category>|Get. Under a custom category every function body came out empty with no error. Use Default.
  • Test trap: PIE starts on a Monday at 10:00, which is on shift with nobody in, so the stand-in shows and takes the key. To test the morning walk, jump the clock to 08:30 on the Tuesday first, then to 09:39.

The fault

Clicking X on a docked Message Log closes the whole Unreal Editor

With the Message Log docked across the full editor window, its top-right X is the window's close button, not the panel's.

The fix

Close a docked panel by its tab

Close the panel from its own tab, and read the title bar before clicking any top-right X.

The kit

ToolWhy this one
Claude in Chromeread the GTA 6 interview coverage on three sites and kept a source for every claim
Blender, run headlessthe garment fit, the body cull, the weight transfer and the jewellery refit, as one re-runnable chain
Unreal Engine 5.8, through the unreal-mcp and Monolith MCP serversthe import, the Blueprint build and the PIE runs
The Claude Code phone appevery ruling of the day, from work

Plain English

TermWhat it means
FabEpic's marketplace for ready-made game assets - models, materials, characters, clothing. Buying a garment and refitting it is how almost everyone in this game got dressed.
FBXThe interchange file format used to move models and animation between Blender and Unreal.
InterchangeUnreal's newer system for bringing files such as FBX models into the engine. In 5.8 it can take over an import without saying so, and it does not read the settings the older importer used.
MetaHumanEpic's system for realistic human characters - face, body, hair and clothing, ready to animate. Every named person in the game is one.
skeletal meshA 3D model with a skeleton inside it, so it can bend and animate. People and animals are skeletal meshes.
skin weightsThe numbers that say how much each bone pulls on each part of a model's surface. Get them wrong and a shoulder collapses when the arm lifts; transfer them from the body underneath and a garment bends the way the body does.
navmeshAn invisible map of walkable ground that characters use to work out routes. No navmesh, no walking.
target pointAn invisible marker placed in the level to say "go here". A character told to walk to one that sits off the walkable map simply never sets off.
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.
stand-inA second copy of a character kept hidden in one spot and shown only when the real one is not there, so the place never looks empty to a player who turns up late.
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.
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.

Things we still need to fix tomorrow:

  • A fresh run at noon at the Palace is next: the stand-in at the desk, the desk chat finding it, a massage booked through it.
  • Closing time: her walk home at ten, the stand-in hiding and the door locking behind her.
  • Which way she faces at the new desk spot needs a look.
  • The panel between the trouser legs. Next to try is raising where the garment's crotch lands on the body by a few centimetres.
  • A few specks of skin under the bottom edge of the top, and the necklace and pendant, which still ride rigidly on the neck.

← 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