Six Star medallion

SIX STAR

GTA VI'S SYSTEMS, TAKEN APART — AND THE ROBLOX BUILD ORDER
← LEDGERLANDS
01 · The read

What Rockstar actually changed

Eight hands-off previews, breakdowns and post-reveal Q&As on the November 2026 build, sourced below — including IGN's live session with the editor who watched thirty minutes of unscripted open-world play at Rockstar North. Strip away Vice City, the licensed music and the acting, and one design decision runs through every system they demonstrated:

Every binary verb became a legible state — and every piece of that state got its own counterplay. Press-triangle-to-steal became a security tier, a scanner, a toolset, a tracker and a fence. A wanted meter became an information model the police hold about you, where each fact is separately acquirable and separately defeatable. A health bar became a body that records what you ate and whether you slept. One protagonist became two, with a variable between them.

"Previously, you could just press triangle to automatically hotwire and steal any vehicle that you wanted and take off. We felt like that left a lot of potential gameplay on the table, in terms of progression and decision making for players." Rob Nelson, co-studio head, Rockstar North

That sentence is the whole design brief, and it is the part that ports. Roblox cannot out-render Rockstar and should not try. But a state machine with counterplay is cheap to build and expensive to invent — Rockstar spent twelve years and a doubled studio inventing these; they are now public, and they are describable in a few hundred lines of Luau each.

6wanted stars, back from 5
5+separate "facts" the police can hold
2independent reputation systems
world size vs. GTA V
10 yrsstated intended lifespan

The detail that only surfaced in the post-reveal Q&A: there are two reputation systems and they are deliberately not wired together. The wanted system is what law enforcement knows about you. A second, separate criminal profile — internally called the temperament system — is what the world thinks of you, and it scores restraint, not legality. You can be a wanted felon with a clean profile. Almost every game that ships a "karma" bar fuses these two and then cannot make either of them mean anything. See System 08.

Note the last number. Rockstar told previewers they want something players run for "the next decade or more." That is a live-service statement made by a studio that ships a world once every twelve years. It is also the exact seam where a platform that ships weekly gets to compete — see 03.

02 · Ten systems

Decomposed, and rebuilt in Luau

Each card: what Rockstar shipped, the abstraction underneath, how you build it on Roblox, the platform capability that would make it cheap, and the specific move that makes your version better rather than merely cheaper.

System 01

The information model of heat

wanted_level → { severity } × { what they know about you } × { where they know it }

What they shipped

Under the six stars sits a row of small red icons, each a separate fact the police hold: a silhouette (physical description), a clothes hanger (your outfit), a camera (CCTV footage), plus your vehicle and who you are with. A hollow star means a crime is known but the perpetrator is not. Buying a baseball cap in a convenience store removed the description icon and left the clothing icon standing. Burning the getaway car removed the vehicle icon and the pursuit dropped it. Heat is regional and persists — the map shows where you are hot, and cops linger at the scene.

"The police know what you look like down to individual items of clothing... putting on a hat and glasses can make it a little harder for them to spot you but if you really want to throw them off the scent you're going to have to change your whole outfit." IGN hands-off demo, Rockstar North, Edinburgh

The abstraction

Two orthogonal axes that games have historically collapsed into one bar. Severity (how bad was it) drives how hard they hunt. Identification (what do they know) drives whether they can find you. Every fact has an independent acquisition path, an independent decay clock, and an independent counter-move. That is what turns a chase from a speed test into a puzzle.

The Roblox build

Server-authoritative, one record per (userId, region). Never let the client assert what it looks like or what it is wearing — that is the exploit surface.

-- ServerScriptService/Heat/Record.luau
-- Severity and identification are separate axes. Most games fuse them; don't.
export type Fact = "Face" | "Outfit" | "Vehicle" | "Camera" | "Partner"

export type Record = {
    region  : string,              -- "boardwalk" | "docks" | ...
    severity: number,              -- 0..6  how hard they hunt
    facts   : { [Fact]: number },  -- fact -> unix time it goes stale
}

-- Each fact rots on its own clock. Witnesses forget faces; CCTV doesn't.
local TTL = { Face = 900, Outfit = 600, Vehicle = 1800, Camera = 5400, Partner = 1200 }

-- Hollow star: they are responding, they have nothing. The whole stealth game
-- is "keep the fact table empty", not "outrun the car".
function Record.isHollow(r: Record): boolean
    for _, expiry in r.facts do
        if expiry > os.time() then return false end
    end
    return r.severity > 0
end

The disguise half is a server-side appearance signature. Split it so a hat defeats one key and a full change of clothes defeats the other — that asymmetry is the mechanic:

-- Two independent keys => two independently defeatable facts.
local function signature(d: HumanoidDescription): (number, number)
    local outfit = 0
    for _, slot in { "Shirt", "Pants", "GraphicTShirt" } do
        outfit = bit32.bxor(outfit * 31, d[slot])
    end
    local face = 0
    for _, slot in { "HatAccessory", "FaceAccessory", "HairAccessory" } do
        for id in (d[slot] or ""):gmatch("%d+") do
            face = bit32.bxor(face * 31, tonumber(id))
        end
    end
    return face, outfit
end
Platform gap Every studio building this writes its own appearance hash, and every one of them gets a slightly different answer for "is this the same person." A first-party Avatar Signature API — stable, server-side, tamper-proof, versioned across catalog changes — would make disguise a two-line feature instead of a two-week one. See 05.
How you beat GTA at this In GTA VI the police hold the information. On Roblox, other players do. A witness is not an NPC that calls 911 — it is a thirteen-year-old with a phone who saw your outfit and can sell that description to the pursuing crew. Rockstar's heat system cannot be social: their lobbies are small, their identity is per-session, and their design centre is single-player. Yours can persist across servers, across sessions, and across weeks. Snitching is a monetisable verb and they will never ship it.
System 02

Tiered larceny

steal(car) → scan → tier → tool → tracker → fence | register

What they shipped

Vehicles are stratified by security. Old vans yield to a slim jim; high-end cars need a digital key cloner that must be acquired, and some tools only unlock later in the story. A handheld scanner shows a car's security tier, its resale value, and what it costs to register as your own. Stolen cars can carry trackers — some of which ping law enforcement if you drive below a certain speed. You can sell to a fence, or pay to keep it, subject to garage space.

The abstraction

A single verb re-expressed as a four-term expression: information (scan) → capability (do I own the tool) → risk (tracker, time-to-crack, noise) → disposition (fence for cash or register for utility). Note what this buys them for free: a progression curve, an economy sink, a reason to explore, and emergent difficulty during a chase — when the cops are behind you, you take the unlocked sedan, not the perfect one.

The Roblox build

This one is nearly free on Roblox and is the highest ROI port in this document. It needs no new animation, no new art, and no physics work — it is a table and a timer.

-- Attributes on the vehicle model; no bespoke code per car.
-- tier 0 unlocked · 1 slim-jim · 2 hotwire · 3 key-clone · 4 fleet/immobiliser
local TOOLS = {
    SlimJim   = { maxTier = 1, secs = 3.0, noise = 0.1 },
    Hotwire   = { maxTier = 2, secs = 6.5, noise = 0.4 },
    KeyCloner = { maxTier = 3, secs = 9.0, noise = 0.0 },
}

local function attempt(plr, car, toolName)
    local tool = TOOLS[toolName]
    local tier = car:GetAttribute("SecurityTier")
    if not tool or tier > tool.maxTier then return false, "NEEDS_BETTER_TOOL" end

    -- Time is the cost. A chase makes 9 seconds unaffordable, which is
    -- the entire point: scarcity of time re-prices every car on the street.
    if not Progress.hold(plr, tool.secs, car) then return false, "INTERRUPTED" end

    Witnesses.broadcast(car.Position, tool.noise)   -- feeds System 01
    if car:GetAttribute("Tracker") then Tracker.arm(plr, car) end
    return true
end

The scanner is a client-side UI over server-truth attributes — value, tier, tracker-present, registration cost. Ship it as an equippable so the tool itself is a progression gate. Rockstar confirmed on the record that it unlocks through the story and reports both the fence price and the registration price side by side — i.e. the tool's job is to make the disposition choice legible at the moment of theft, not afterwards. Carjacking an occupied moving car still exists and skips the lock tier entirely; the tracker and the heat still apply. Keep that lane open — it is the panic option, and a chase needs one.

Platform gap Nothing blocking. Vehicle feel is the real gap — Rockstar hired race drivers for handling. A first-party, server-reconciled vehicle controller with predictable handling would raise the floor for the entire platform, since today every studio rolls its own physics with client network ownership and inherits the exploits that come with it.
How you beat GTA at this Make the fence a player. GTA's fence is a vendor with a price table; yours is another user running a chop shop as a business, setting spreads, holding inventory, taking on the tracker risk you are trying to offload. Rockstar cannot ship a genuine player-run secondary market — Roblox already has the economy primitives, the marketplace and the payout rails to do it. The stolen-car economy is the on-ramp; the interesting version is that someone's whole session is being a buyer.
System 03

The body as a ledger

health_bar → { height, weight, sleep, nutrition, calories, shape, muscle, fat, strength }

What they shipped

Previewers photographed a stat page tracking exactly those nine values for both leads. Eating gives a substantial health buff; overeating puts weight on. Gyms accept both characters at once for a "two-for-one" on stat management. Running occasionally surfaces a cardio prompt marked with the same heart and lightning icons Red Dead Redemption 2 used for health and stamina cores. Multi-day benders, oversleeping and being on the run all show up on the character's face and body. This is San Andreas' 2004 attribute bars, rebuilt with twenty years of simulation craft behind them.

The abstraction

A slow-clock state that (a) records past behaviour, (b) is visible on the avatar without any UI, and (c) feeds back into the fast-clock systems — sprint duration, melee damage, recovery rate. The genius is (b): it is a progress bar that other players can read across the room. Every hour invested is legible to strangers, permanently, without a leaderboard.

The Roblox build

Tick on a slow loop, persist to DataStore, project onto the rig. Two integrator variables (muscle, fat) driven by inputs, then mapped to body scale:

-- 60s tick. Slow clock: this is a diary, not a resource meter.
local function step(s, dt)
    local surplus = s.calories - s.burn                 -- eating vs. moving
    s.fat    = math.clamp(s.fat    + surplus * 2.1e-5 * dt, 0, 1)
    local trained = s.gymMinutes > 0 and s.protein > 0.4
    s.muscle = math.clamp(s.muscle + (trained and 1.4e-4 or -2e-5) * dt, 0, 1)
    s.rested = math.clamp(s.sleepDebt > 0 and s.rested - 3e-5*dt or 1, 0, 1)
end

-- Legible without UI: strangers read your history off your silhouette.
local function project(hum: Humanoid, s)
    hum.BodyDepthScale.Value = 1 + s.fat * 0.28 + s.muscle * 0.10
    hum.BodyWidthScale.Value = 1 + s.fat * 0.22 + s.muscle * 0.18
    hum.WalkSpeed            = 16 * (1 - s.fat*0.18) * (0.85 + s.rested*0.15)
end
Platform gap BodyWidthScale / BodyDepthScale are blunt instruments and layered clothing does not always fit gracefully across their range. What this needs is body-composition morph weights on the avatar rig that UGC clothing is authored against — a muscle axis and a mass axis that a creator's cage deformer respects. Without it, every experience doing body sim either looks wrong or bans layered clothing, and banning layered clothing means banning the marketplace.
How you beat GTA at this Rockstar's body sim resets when you start a new save and is invisible to anyone else. Roblox avatars are persistent and public. Carry the ledger at the account level and it stops being a stat page and becomes an identity — the thing you show up wearing in a different experience next Tuesday. That is also the honest answer to "why would a kid grind a gym mini-game": because the result is visible to their friends outside the game that produced it.
System 04

The two-body problem

protagonist → { A, B } with a bond variable and an async channel

What they shipped

Jason and Lucia are a playable pair with different, equal skill sets — he is ex-military, she is a fighter. You can hot-swap at any moment, in a mission or in the open world, whether they are in the same car or on opposite sides of the map. Time spent together in any shared activity — pool, mini golf, kayaking, shopping, or robbing a bank — feeds the relationship positively. When you play as one, the other lives on and texts you; ignoring the texts degrades the bond slightly. The entire romance layer is explicitly opt-out.

"If you want to just spend the whole day out on your own as one of the characters, that's fine. The other one will text you, 'hey, I'm going to go to bed.' ... If you don't bother to even respond, it may impact your relationship a bit." Rob Nelson, Rockstar North

The abstraction

A second body under the player's control creates a tactical resource (split the pursuit, cover fire, one drives while the other shoots) and an emotional resource (a variable that only rises with time spent, and gently falls with neglect). And critically: the design is opt-out, so the players who find it embarrassing never touch it and never resent it.

The Roblox build

Here you do not need to solve the problem — the platform already did. GTA VI is simulating a second player because it has to. You have a second player. Port the bond variable, not the character-switching:

-- Bond is earned by co-presence in ANY activity, not by a dedicated verb.
-- Rockstar's list: pool, mini golf, kayaking, shopping, robbing a bank.
local RATE = { idle = 0.0, travel = 0.6, activity = 1.0, job = 1.6 }

local function tickBond(a: Player, b: Player, dt: number)
    local hrp = b.Character and b.Character.PrimaryPart
    if not hrp or a:DistanceFromCharacter(hrp.Position) > 60 then return end
    local pair = Pair.key(a.UserId, b.UserId)         -- ordered, stable
    Bond[pair] = math.min(Bond[pair] + RATE[Context.of(a,b)] * dt, CAP)
end

-- The async half: when one is offline, the other can still reach them.
-- Answering costs nothing; ignoring costs a little. That asymmetry is the design.
function Bond.offlinePing(from: Player, toUserId: number, text: string)
    Outbox:enqueue(toUserId, { from = from.UserId, text = text, at = os.time() })
    Decay:schedule(Pair.key(from.UserId, toUserId), UNANSWERED_PENALTY, 24*3600)
end

The correction the Q&A forced, and it matters: the relationship value is narrative only. "There won't be any gameplay benefits — you're not going to get a buff because you're the sweetest couple in the world, and equally you won't be penalised for not doing that stuff. It'll show up more in the story." And there is a floor: you cannot break them up. Partners in crime, whatever happens.

So the bond is a content selector, not a stat — it chooses which lines, scenes and reactions you get, and it never gates power. That is the correct call and most teams get it backwards. The instant a relationship meter grants a damage bonus, it stops being a relationship and becomes a chore with a face on it, and every player who found it embarrassing now has to grind it anyway. Note also that shared activities still have ordinary mechanical outputs — the gym raises strength whether you go together or alone. It is only the bond value itself that buys nothing.

Platform gap An experience-scoped, moderated async message queue between two players who are not online together. Today this means a DataStore outbox, your own moderation pass and no notification surface, which is why nobody ships it. A first-party primitive here — text-safe by construction, with a re-engagement notification — would unlock the entire class of "your partner did something while you were away" mechanics across the platform, not just for this genre.
How you beat GTA at this Rockstar built an elaborate simulation of a second person because there is only one player in the room. You get the real thing for free, so spend the budget one level up: make the bond cross-session and cross-experience. Duo heat, shared garages, a partner who is a liability when identified with you (the police already track "who you are with" — make that a two-player problem). The single-player version of "the cops know you're a couple" is a modifier. The multiplayer version is a betrayal mechanic.
System 05

Coercion without kills

threaten(target) as a first-class verb with its own consequence branch

What they shipped

In the demo, Jason aimed a gun at a group of aggressors and did not fire. They reassessed and ran. The crime was still reported and police still responded — but they were responding to a non-violent incident, so the wanted level stayed low. Separately, walking down the street with a rifle out changes how the whole world behaves around you. Threat is modelled as its own input with its own outputs, not as a failed attack.

"You can save yourself a lot of aggro from the cops if you just hold back from outright violence. Simply administering some mortal terror can be just as effective in pursuit of your goals." IGN, on the GTA VI wanted system

The Q&A added the rung below that one. Walk past a pedestrian, have them turn and say something, and the contextual prompt offers diffuse or provoke. And the focus trigger is explicitly no longer an aim button: "hitting that left trigger doesn't automatically mean you pull out a gun and shoot someone, or pull out a gun and aim — it means there is a bigger range of options." The ladder now runs diffuse → ignore → provoke → brandish → aim → fire, and only the last rung is the one Roblox cannot ship.

The abstraction

A middle rung on the escalation ladder that most games skip entirely. It converts the question from "can I win this fight" to "what is the cheapest way through this room" — and cheapness is measured in the currency of System 01. This is, quietly, the best mechanic in the whole preview cycle.

The Roblox build

Give NPCs a two-term appraisal — can I get hurt and do I have an out — and let the outcome write a differently-weighted entry to the heat ledger.

-- The escalation ladder, priced. Each rung writes a different heat row.
local RUNG = {
    Diffuse   = { severity = 0, facts = {},          temperament =  1 },
    Presence  = { severity = 0, facts = { "Face" } },
    Brandish  = { severity = 1, facts = { "Face", "Outfit" } },
    Aim       = { severity = 2, facts = { "Face", "Outfit" } },
    Discharge = { severity = 4, facts = { "Face", "Outfit", "Camera" } },
}

local function appraise(npc, threat)
    local exposure = threat.aimedAtMe and 1 or 0.3
    local out      = Nav.hasEscape(npc, threat.from) and 1 or 0.2
    local nerve    = npc:GetAttribute("Nerve")          -- 0..1, per-archetype
    if exposure * out > nerve then return "Comply" end
    return Nav.hasCover(npc) and "Cover" or "Fight"
end
Platform gap None. This is design work, not engine work — and it is the single cheapest way to make an experience feel a generation newer than its neighbours.
How you beat GTA at this Make it the whole game rather than a discount. Roblox cannot ship Rockstar's violence, which sounds like a constraint and is actually a forcing function toward the more interesting design: remove the top rung entirely and the ladder below it has to carry the experience. A pursuit game where the only verbs are presence, threat, deception and escape is a genre GTA gestures at in one demo beat and can never commit to, because their audience bought the game to shoot. Yours didn't.
System 06

The reactive crowd

background_prop → agent with perception, opinion and a reporting channel

What they shipped

An entire development team in Los Angeles dedicated solely to pedestrian behaviour. Over a decade of field research in Miami. Fifty commissioned artists so no two pieces of street art repeat. Crowds that react to a drawn weapon, comment on your appearance, and phone in crimes police did not witness. And a focus interaction — hold to target a person or a dog, get a contextual menu (scold, pet, study) — which is the mechanism that turns a crowd from scenery into surface area.

The Q&A sharpened this. Rockstar staffs a team whose entire job is writing NPC dialogue, and the reported effect is the absence of the thing every open world does — you never hear the same conversation twice walking down one street. NPCs react differently to Jason than to Lucia. And eavesdropping is a verb: stop and listen to a conversation and the participants have something to say about that.

The abstraction

Two separable things, and only one of them is expensive. Density and variety cost money and memory. Perception, opinion and a reporting channel cost almost nothing — and they are what actually produces the feeling of a world that notices you. Most Roblox experiences spend their budget on the first and ship none of the second.

The Roblox build

Do not run a per-NPC brain. Run a coarse "who can see what" pass in parallel Luau, and let everything else be an animation on top of that signal.

-- Witnesses/Perception.luau — inside an Actor, task.desynchronize()'d.
-- Budget: one cone test per witness per 250ms, sliced across frames.
local function canSee(eye: CFrame, at: Vector3, cosFov: number, range: number)
    local to = at - eye.Position
    local d  = to.Magnitude
    if d > range then return false end
    if eye.LookVector:Dot(to / d) < cosFov then return false end
    return workspace:Raycast(eye.Position, to, OCCLUDERS) == nil
end

-- A witness does not chase. It writes one row and forgets you.
-- Cheap, and it is the only thing the player can feel.
local function onIncident(w, subject, kind)
    if not canSee(w.eye, subject.pos, w.cosFov, w.range) then return end
    local delay = w.timid and 8 or 2                -- time to get the phone out
    Heat.report(subject.userId, kind, Facts.forDistance(w, subject), delay)
end

Density is a separate, purely budgetary problem: instanced meshes, aggressive LOD, a shared animation clock per archetype, and StreamingEnabled tuned so the crowd radius is smaller than the visual radius. Distant "pedestrians" do not need to be Humanoids and should not be.

Platform gap Two, and they are the biggest ones in this document. (a) A batched perception service — vision cones with occlusion, resolved on the C++ side against a spatial index, instead of every studio on the platform writing the same N×M raycast loop in Luau and then capping their crowd at 40 to afford it. (b) A crowd runtime — instanced animation, LOD'd agents, navmesh queries that do not allocate — targeting 300+ visible agents on a mid-tier phone. Crowd density is the most reliable single signal of production value in an open-world game, and right now it is priced out of reach for everyone on the platform.
How you beat GTA at this Rockstar spent a decade in Miami interviewing club promoters to author variety. You have millions of people authoring it for free, continuously. Wire the crowd's appearance pool to UGC catalog items and to what players in that server are actually wearing, and your street gets fresher every week without a single artist commissioned. Rockstar's Vice City is frozen the day it ships. Yours is a live sample of the platform's own fashion.

The same argument applies to the barks. Rockstar pays a standing team to write them; you can run a moderated community line pool — players submit, a filter and a human queue clear them, accepted lines credit their author in the subtitle. Rockstar's dialogue budget is a cost line. Yours is a content loop with attribution as the currency.

System 07

The legible HUD

state must be readable in the corner of the eye, at speed, or it is not a mechanic

What they shipped

A minimal HUD: six stars, a row of small icons for what the police know, a weapon wheel, an item wheel, and separate bank and wallet balances. Previewers singled it out unprompted — when the pair burned their car, the car icon vanished from the HUD and the pursuit visibly dropped it. Cause and effect, communicated in one icon, at 90 mph, with no text.

"There's so much information being conveyed here and it's this tiny little minimalist HUD. And I genuinely cannot tell you how happy I am to see all of that." GameRanx breakdown of the gameplay reveal

The abstraction

The counterplay in System 01 only exists if the player can see which fact they just defeated. An invisible state machine is not a mechanic; it is a bug report. This is the step teams skip, and skipping it is what makes deep systems feel like randomness.

The Roblox build

  • One icon per fact, and it disappears the instant the fact does. The disappearance is the reward. Animate it — a 200ms flash and fade is worth more than the underlying feature.
  • Hollow vs. filled is the most important distinction on the screen. Hollow means "they're coming but they don't know it's you," which is a completely different emotional state from being hunted, and it needs a completely different silhouette.
  • Mobile first. The icon row must read on a 6" screen held in landscape with two thumbs covering the bottom corners. Test at 360×640 before you test at 1080p.
  • No numbers. GTA VI shows no percentages anywhere in this system. Neither should you.
How you beat GTA at this Roblox HUDs are, almost universally, worse than this — stacked notification toasts, unlabelled bars, numbers nobody reads. A team that ships one genuinely legible icon row will look more expensive than it is. This is the highest ratio of perceived production value to engineering cost on the entire list.
System 08

The temperament ledger

a second reputation, scoring restraint — orthogonal to the law, invisible to the police

What they shipped

A system Rockstar first showed as "temperament" and now calls the criminal profile. It is an evolution of Red Dead Redemption 2's honor meter, and it is explicitly not connected to the wanted system — a bad criminal profile does not put police on you. What it scores is how you behave inside a situation, not whether the situation was legal.

"That criminal profile system is based on restraint and how you react to those situations... maybe you're robbing a jewelry store, but how crazy have you gone? Have you gone in and murdered everybody immediately, or — if they're not being aggressive with you — have you just let them cower in the corner and taken the stuff?" Rachel Weber, IGN, relaying Rob Nelson · post-reveal Q&A

The stated test is avoidability: acting in self-defence is one thing; escalating a situation you could have walked away from is another. Inputs run all the way down to the trivial — putting litter in a bin rather than on the pavement, feeding an animal. A small positive icon acknowledges a gain. And Rockstar has explicitly closed the RDR2 exploit where you could greet and pet your way back to sainthood after a massacre.

The abstraction

Two independent reputations. One models what an institution knows (System 01: acquirable, defeatable, expiring). The other models what a population believes — slow, ambient, hard to launder, changing the tone of the world rather than its threat level. Fusing them is the classic mistake: a single karma bar that both summons guards and changes dialogue ends up doing neither convincingly, because the counterplay for one ruins the other.

The Roblox build

Score the gap between the force available and the force used, gated on whether an exit existed. That one expression is most of the system.

-- Temperament.luau — slow, ambient, laundering-resistant.
-- Never touches pursuit. It changes what the world SAYS, not what it DOES.
local function score(ev): number
    if ev.threatenedFirst then return 0 end          -- self-defence is free
    if not ev.hadAnExit then return -0.2 * ev.force end  -- cornered, discounted
    return -1.0 * (ev.force - ev.forceNeeded)         -- avoidable escalation
end

-- Anti-cheese: RDR2 let you pet a dog back to sainthood.
-- Rate-cap the trivia, and never let it fully repair harm.
local TRIVIA_CAP_PER_HOUR = 0.05

function Temperament.apply(plr, ev)
    local d = score(ev)
    if d > 0 then d = math.min(d, Budget.remaining(plr, TRIVIA_CAP_PER_HOUR)) end
    local t = math.clamp(Profile[plr].temperament + d, Harm.floor(plr), 1)
    Profile[plr].temperament = t
    Dialogue.setRegister(plr, t)        -- the ONLY consumer, by design
end
Platform gap A dialogue register primitive — one tone parameter that the bark pool, shop greetings and NPC reaction sets all read from, so temperament has somewhere to land without every interaction author wiring it by hand. Without it, teams ship the ledger, discover it has no visible consumer, and delete it in the next sprint.
How you beat GTA at this This is the most Roblox-native system in the entire preview cycle and the one most worth stealing. It rewards restraint and tidiness — litter in the bin, feed the animal, let the frightened person go — a scoring function that survives the age rating completely intact while Rockstar's surrounding fiction does not. Better still: on Roblox the audience for the profile is other players, not NPCs. Make it visible on the avatar the way the body ledger is, let it gate who will crew with you, and you have a reputation system with real social stakes built out of a mechanic Rockstar can only spend on dialogue variation.
System 09

The getaway goes multi-modal

density × narrow streets → the fast car stops being the answer

What they shipped

Streets are deliberately narrower than in any previous GTA and traffic is far denser. Nelson's stated consequence is that the series' reflex answer to a chase no longer reliably works.

"In previous GTA the answer was almost always 'steal a fast car and drive away.' Now there are going to be times when the traffic is so bad that that's not going to be the way to do it — maybe it's getting away on one of those little Lime-style scooters, or running down a back alley and weaving around on foot to lose the cops." Rachel Weber, IGN, relaying Rob Nelson

Nelson himself got side-swiped while demoing it. Rockstar expects an adaptation period for returning players — which is a remarkable thing for a studio to say out loud about its own core verb.

The abstraction

Congestion as a design tool. Density is not set dressing — it is a debuff on the dominant strategy, applied environmentally rather than by nerfing anything. Remove the reliable escape and the pursuit becomes a routing problem across movement modes with different profiles: the car is fast but legible and blockable; the scooter threads traffic but leaves you exposed; on foot you are slow, but you go where no vehicle follows and you are much harder to describe.

The Roblox build

Read this one twice — it is the best news in these transcripts for a Roblox team. The pursuit game just moved off the axis Roblox is worst at (vehicle handling feel, where Rockstar hired race drivers) and onto axes Roblox is genuinely fine at: foot navigation, verticality, alley networks, small scooters with trivial physics, and crowds to disappear into.

  • Author the alley graph deliberately. The back-alley escape only exists if somebody drew it. Treat pedestrian-only connectivity as a first-class map layer with its own review pass — it is the layer that makes the whole system work and it is invisible in screenshots.
  • Traffic density as a per-region tunable, not a global. Congestion is how you author difficulty per district without placing a single enemy.
  • Scooters are the sweet spot. Simple physics, low mass, no handling model to lose at, and they thread gridlock that stops a car — the highest fun-per-engineering-hour vehicle you can ship, and the one Rockstar just endorsed.
  • Tie movement mode to the fact table. On foot in a crowd, the Face fact should decay faster; in a car the Vehicle fact dominates. Movement mode is an identity strategy, and that link is what fuses Systems 01 and 09 into a single decision.
Platform gap Dense traffic is the crowd problem wearing a different hat — the same instanced-agent and LOD work in the P1 crowd runtime covers it. Ambient vehicles at distance should never be physics bodies.
How you beat GTA at this Lean all the way in and cut the fast car out of the escape vocabulary entirely. A pursuit built purely on foot routing, crowd cover, scooters and disguise is a genre GTA VI has now opened the door to and will never walk through, because their audience paid to drive. It is also, not coincidentally, a genre that runs on a phone.
System 10

Dress code as access

what you wear is a key, an alibi and a purchase — all at once

What they shipped

Three things that only connect once you see them together. Clothing stores are distributed across the map with region-exclusive stock, explicitly to push exploration. Interiors are broadly enterable and, per the Q&A, "more than ever before you can rob any business you want." And access to premium venues is gated on presentation — the analogy offered for how a locked venue would read in-world was turning up to an exclusive club in sweatpants and being refused at the door.

Meanwhile that same wardrobe is the counterplay to the Outfit fact in System 01, and a convenience-store baseball cap is the counterplay to the Face fact. One slot, three jobs.

The abstraction

Identity (what witnesses can describe), access (which doors open), and expression (what you chose to look like). Games normally give clothing only the third job, which is exactly why cosmetics feel weightless — and why players who buy them stop caring about them.

The Roblox build

-- One wardrobe, three consumers, one signature.
Access.check(door, plr)      -- access:     does this venue admit this outfit?
Heat.signature(plr)          -- identity:   what can a witness describe?
Dialogue.register(plr)       -- expression: how does the street greet you?

-- Dress code as a TAG test, never an allowlist of asset ids —
-- so a UGC item uploaded tomorrow works at the door with no patch.
local function admits(venue, desc): boolean
    local tags = Catalog.tagsOf(desc)     -- "formal" | "beachwear" | "obscures-face"
    return tags[venue.requires] == true and not tags[venue.forbids]
end
Platform gap Semantic tags on catalog items — formal, uniform, beachwear, obscures-face — surfaced through the Avatar Signature API. This is what makes dress code work against the live catalog instead of a hard-coded list that rots the week after launch. A modest metadata project with an outsized payoff, and the highest-leverage follow-on once the signature API exists.
How you beat GTA at this This is where the document converges. Rockstar's wardrobe is a few hundred authored SKUs doing three jobs. Yours is a live marketplace with millions of creators, and the three jobs give every item a functional reason to be bought: a hat resets a fact, a suit opens a door, a uniform does both. Region-exclusive stock — Rockstar's own device for driving exploration — becomes a merchandising calendar you can run weekly. The clothing catalog stops being decoration and becomes the game's equipment table, and nobody else has one that restocks itself.
03 · Asymmetry

Where you win, where you lose, where competing is a trap

Porting the systems is table stakes. The reason to do it on Roblox is that four of Roblox's structural properties make these specific systems better — and one of them is worth more than everything else on this page.

The marquee move: functional clothing

GTA VI's heat system consumes outfits. Change your clothes, defeat a fact. The supply of outfits is bounded by Rockstar's art team — a few hundred SKUs, authored once, priced in fictional dollars.

On Roblox, the supply of outfits is the entire UGC catalog, authored by millions of people, priced in real money, restocked hourly.

Wire the disguise system to marketplace items and Roblox's clothing catalog stops being cosmetic and becomes consumable gameplay equipment with a demonstrable in-game function. A hat is no longer a hat; it is a partial identity reset. Nobody has to invent the content pipeline, the creator incentives, the payment rails or the moderation — all four already exist and none of them exist for Rockstar. This is the one idea on this page that is not a port. It is only available here.

And the later previews widened it. Rockstar also gates premium venues on what you are wearing, and stocks region-exclusive clothing to push exploration. So one wardrobe slot does three jobs at once — identity, access and expression (System 10). Every one of those three is a functional reason to buy a catalog item, and the catalog restocks itself hourly without you commissioning anything.

Structurally in your favour

  • UGC supply. Infinite disguise SKUs with real economics behind them (above).
  • Real multiplayer. The heat information model wants human witnesses, human fences, human snitches. Rockstar simulates all three.
  • Persistence. Heat, bond and body carry across sessions and servers. GTA's carry across a save file.
  • Cadence. You retune the fact-decay table on Tuesday. They retune it in a title update, quarterly, if at all.
  • Distribution. Free, mobile, no console, no age gate at 70 dollars. The addressable audience for "GTA-shaped" is enormously larger than the audience that can buy GTA.
  • Portable identity. The avatar the body sim shapes is the same one they wear everywhere else on the platform.
  • The escape moved off-road. Dense traffic and narrow streets mean the getaway is now feet, alleys and scooters as often as it is a fast car (System 09) — which pulls Roblox's single worst gap off the critical path.

Structurally against you

  • Fidelity. Lighting, materials, density at that draw distance — not close, and the gap is not closing.
  • Animation budget. Rockstar's transitions, hand-holding, door-holding, cover blends are thousands of authored clips.
  • Writing and performance. Cast, capture, direction. Do not attempt.
  • Licensed audio. Depeche Mode is not in your budget and is a real part of why their montage lands.
  • Vehicle feel. They hired race drivers for the handling model. You have BasePart physics and network ownership.
  • Memory ceiling. Their target is a base PS5. Yours is a five-year-old Android.
One line in that right-hand column deserves an asterisk. Vehicle feel is still a real gap — but Rockstar just told everyone that the fast car is no longer the reliable answer to a chase. The pursuit design has drifted toward foot routing, crowd cover and scooters, and that is terrain where the gap between a Roblox experience and a AAA one is small. Build the chase there and you are not conceding anything; you are following them.

Three traps

Trap 1 · ToneDo not chase the crime fantasy. You will lose to the moderation policy before you lose to Rockstar, and the systems are separable from the subject matter — see 07.
Trap 2 · CinemaDo not spend the budget on cutscenes. Their cutscene beat you at; their state machine you can match. Every hour in a camera rig is an hour not spent on the fact table.
Trap 3 · Map size"Twice Los Santos" is a marketing number. Density of reaction beats acreage every time, and acreage is the one thing that scales your memory budget linearly toward the mobile cliff.
The honest framing for a pitch deck: you are not building a GTA competitor. You are building the first experience where GTA VI's systems run with real players in the witness, fence and partner roles — which is a game Rockstar structurally cannot ship, on a device their buyer doesn't own, for a price their buyer doesn't pay.
04 · Engineering spine

The architecture underneath all seven

Six systems out of seven reduce to the same shape: a server-authoritative record, a slow reconciliation loop, a cheap perception pass, and a projection onto the client. Build that spine once.

ConcernWhere it livesWhy there
Heat record
(severity + facts)
Server memory, authoritative Client never asserts identity or wanted state. This is the primary exploit surface — a client-trusted heat value means every chase is skippable.
Cross-server heatMemoryStoreService sorted map, keyed userId:region, TTL'd Heat should follow you into the next server for its natural lifetime, then expire on its own. TTL semantics mean you never write an expiry job.
Durable ledger
(body, bond, garage)
DataStoreService, versioned schema, write-behind Slow clock, low write rate. Batch on a 60–120s cadence plus BindToClose; never write per tick.
Manhunt broadcastMessagingService topic per region Lets other servers surface "someone is hot in the docks" without polling a store.
Perception
(cones, occlusion)
Actor + task.desynchronize(), sliced Embarrassingly parallel, and the single biggest CPU line item. Slice it across frames with a fixed budget rather than a fixed rate.
Vehicle motionClient network ownership + server plausibility check Ownership for feel, a coarse server-side speed/teleport sanity check for integrity. Do not attempt full server authority on physics.
Appearance signatureServer, from HumanoidDescription Recompute on every appearance change; cache the two hashes. Cheap, and it must be untouchable.
Temperament
(criminal profile)
Server, durable, write-behind — separate store from heat Different clock, different consumers, different lifetime. Sharing a table with heat is how the two systems end up accidentally coupled and both become meaningless.
Dress-code checksServer, tag test against catalog metadata Tags, never asset-id allowlists — an allowlist stops working the week after launch as the catalog moves under it.
Movement modeServer-observed, feeds fact decay rates On foot in a crowd the Face fact should rot faster than in a car. This one link fuses Systems 01 and 09 into a single player decision.
HUDClient, driven by one replicated state table Replicate the whole small record on change rather than eight remotes. Fewer events, no ordering bugs.

Four rules that will save the project

  1. Separate severity from identification on day one. Every game that fuses them ends up with a wanted bar and then cannot add disguises later without rewriting the pursuit AI.
  2. Every fact needs an acquisition path, a decay clock and a counter-move. If you cannot name all three, the fact is decoration. Cut it.
  3. Slow clocks and fast clocks never share a loop. Body sim ticks at 60s, perception at 4Hz, HUD at frame rate. Fusing them is how you get a 60s stutter.
  4. Two reputations, two stores, no shared code path. The police ledger expires and is defeatable; the world ledger is slow and laundering-resistant. The moment one reads the other you have a karma bar, and karma bars do not survive contact with players.
  5. Budget the crowd in agents, not in NPCs. A "pedestrian" 80 studs away is a mesh and an animation clock, not a Humanoid with a brain. Promote to full agent inside the perception radius, demote outside it.
Verify current service limits (MemoryStore request units, DataStore write quotas, parallel Luau constraints) against the live Creator Docs before sizing — they move, and the shape of the architecture matters more here than any specific number.
05 · Platform backlog

For Roblox platform engineers

The gaps flagged in section 02, collected and ordered. The test for each: does it turn a multi-week studio-specific effort into a call every experience on the platform can make? Ordered by that ratio, not by difficulty.

P0 · Batched perception service

Blocks: Systems 01, 05, 06 — i.e. the whole genre.
  • Vision-cone queries with occlusion, resolved natively against the existing spatial index: "which of these 400 observers can see this point, given FOV and range." Today every studio writes this loop in Luau and then caps crowd size to afford it. Impact: crowd density stops being a CPU decision and becomes an art decision
  • Batch API, not per-agent — one call, N observers, M subjects, results as a buffer. The per-call overhead is what actually kills the Luau version, not the raycasts.
  • Deterministic and server-side so perception results can safely drive authoritative state.

P0 · Avatar Signature API

Blocks: System 01. Unlocks the marquee monetisation move in section 03.
  • Stable, server-side, tamper-proof hashes of visible appearance, decomposed by region (head/face, torso, legs, accessories) so "a hat defeats one fact, a full change defeats another" is expressible without every studio inventing its own scheme. Two lines instead of two weeks, and consistent across experiences
  • Versioned across catalog changes so a signature computed today still compares correctly after an item is re-uploaded or a bundle changes.
  • Semantic tags alongside the hashes — formal, uniform, beachwear, obscures-face. This is what lets an experience gate a venue on dress code, or decide that a balaclava defeats the Face fact, against the live catalog rather than a hard-coded list that rots within a month. Small metadata project, outsized payoff — the highest-leverage follow-on to the hashes
  • This is the hook that makes clothing functional — and functional clothing is the strongest argument the platform has for why a creator should keep making UGC items. Treat it as an economy feature, not a gameplay one.

P1 · Crowd runtime

Blocks: System 06. The most visible proxy for production value in open-world.
  • Instanced agents with shared animation clocks and automatic LOD, targeting 300+ visible on a mid-tier Android at 30fps. Not Humanoids; a lighter agent type that can be promoted to a full character on demand.
  • Non-allocating navmesh queries — pathfinding that a 300-agent crowd can call every frame without producing garbage.
  • Appearance pooling from the catalog, so crowd variety is sourced from live UGC rather than from a studio's authored set. Solves variety and creator demand with one mechanism.

P1 · Body-composition axes on the avatar rig

Blocks: System 03. Currently the reason body sim looks wrong or bans layered clothing.
  • A muscle axis and a mass axis as first-class rig parameters that UGC clothing cages are authored against and deform correctly across, rather than BodyWidthScale stretching a shirt until it breaks.
  • Creator-facing preview across the full range in the item pipeline, so fit problems are caught at upload rather than at runtime.

P1 · First-party vehicle controller

Blocks: System 02's ceiling. Also a platform-wide anti-cheat problem.
  • A tuned, predictable handling model with a documented parameter set — the single largest quality gap between a Roblox driving experience and a AAA one, and one every studio currently re-solves badly.
  • Server-reconciled network ownership with built-in plausibility checks, so client-side feel does not have to be bought with a speed-hack surface.

P2 · Async player-to-player channel

Blocks: System 04's offline half. Broad value well beyond this genre.
  • An experience-scoped, moderated message queue between players who are not online together — safe by construction, with a re-engagement notification surface. Unlocks every "your partner did something while you were away" mechanic on the platform
  • Delivery receipts so an experience can distinguish "unseen" from "ignored" — the asymmetry the bond mechanic in System 04 depends on.

P2 · Dialogue register

Blocks: System 08 having any visible consumer at all.
  • One tone parameter that bark pools, shop greetings and NPC reaction sets all read from, so a temperament or reputation value has somewhere to land without every interaction author wiring it by hand. Cheap to build; it is the difference between a reputation system players can feel and one they never notice.
  • A moderated community line pool with author attribution, so ambient dialogue becomes a creator surface rather than a permanent writing cost. Rockstar staffs a standing team for this. The platform's answer should be that it does not have to.

P2 · Spatial cross-server world state

Blocks: the persistent, regional half of System 01.
  • A TTL'd, region-keyed, conflict-free store — MemoryStore is a KV store that studios are currently bending into a world-state service, one bespoke key-encoding scheme at a time.
  • Region subscription so a server learns about heat in its area without polling.
Sequencing logic: P0s are the two that convert an entire genre from "possible for a large studio" to "possible for a two-person team," and the Avatar Signature API pays for itself twice because it lands on the economy as well as on gameplay. P1s raise the visible quality ceiling. P2s are the persistence layer that lets these experiences retain like a live service rather than like a game.
06 · 90-day build

Order of operations for a small team

Sequenced so that each phase is independently shippable and each one produces a measurable signal before the next starts. Assumes 3–5 people and an existing map.

Days 1–20 · The fact table

Ship: heat with two facts (Face, Outfit), disguise counterplay, the icon row.
  • Server heat record, severity separated from identification, with per-fact TTLs in a tuning table you can edit without a code deploy.
  • Appearance signature, split into face and outfit keys. One hat in the shop. One full outfit. Nothing else.
  • The icon row, animated on fact-loss. This is the deliverable — not the heat system. If players do not visibly react to the icon disappearing, the phase failed.
  • Hollow state. Commit a distinct silhouette and a distinct music cue to it.
  • The alley graph, drawn by hand, in week one. Pedestrian-only connectivity and one district of dense traffic. Escapes on foot have to be viable before any of the rest means anything — this is the map layer that makes the chase a routing problem instead of a speed test (System 09). Signal: share of pursuits that end in a disguise change, not a corner-outrun

Days 21–40 · Witnesses

Ship: NPCs that see, opine and report. Crowd density stays low on purpose.
  • Parallel perception pass with a fixed CPU budget, sliced across frames. Instrument it before you tune it.
  • Witnesses write facts; they never chase. Resist every temptation to give them a brain.
  • The escalation ladder (System 05) — diffuse / presence / threat / escape, with differently priced heat outcomes. No lethal rung. Diffuse must be on the wheel from day one; it is the rung that makes the ladder a choice rather than a delay.
  • The temperament ledger (System 08), scoring restraint. One consumer only — the greeting line NPCs use. Ship it with no UI and no number. If players notice the street getting warmer to them without being told why, it works. Signal: share of encounters resolved without the top rung

Days 41–60 · The heist loop and the economy

Ship: tiered larceny, the scanner, the tool progression, one fence.
  • Security tiers as attributes, tools as equippables, time-to-crack as the only real cost. The whole system is a table.
  • The scanner as an unlockable — information is the first thing the player should have to earn, because it makes the world legible and legibility is retention.
  • Trackers. The below-a-certain-speed variant is the best single idea in the vehicle system and costs about forty lines.
  • One NPC fence, priced to be obviously worse than the player-run version arriving in phase 4. Signal: sessions containing at least one scan-then-reject decision

Days 61–80 · Two players, one problem

Ship: the bond variable, duo heat, shared consequences.
  • Bond earned by co-presence in any activity, at different rates. Do not build a dedicated "bond activity" — Rockstar's insight is that kayaking and bank robbery both count.
  • The Partner fact. Police who know you work together, and the splitting-up counter-move. This is where the duo stops being a buff and becomes a decision.
  • Player fences and player witnesses — turn on the social half of the heat model. Signal: % of sessions with a returning partner from a prior session

Days 81–90 · The body, and the storefront

Ship: the slow-clock ledger, and functional clothing.
  • Body ledger on the 60s tick, projected to scale and walk speed. Ship it quiet — no stat page in v1, let players discover it.
  • Wire the disguise system to real catalog items. The store page for a hat should say what it does. This is the commercial thesis of the whole project; give it a week and a designer.
  • One dress-coded venue, gated on catalog tags (System 10). One door, one requirement. It proves the third job of the wardrobe slot and it is the cheapest possible test of whether players will buy an item for a reason other than looking at it. Signal: clothing spend attributable to a heat reset within 10 minutes of purchase
What is deliberately not in the 90 days: map expansion, cutscenes, a story, vehicle handling work, and crowd density. All five are where teams building in this genre historically spend their first quarter, and all five are places you cannot win.
07 · Guardrails

Shipping this to a 13+ audience

Every system in section 02 survives the translation. None of them depend on the crime fantasy — that is the surface Rockstar chose, not the mechanism they invented. Keep the state machines; change the fiction.

GTA VI surfaceThe mechanismShips as
Six-star manhuntInformation asymmetry under time pressure Any pursuit fiction: security in a mall, park rangers, a scavenger hunt with referees, a spy game. The fact table is identical.
Grand theft autoTiered access + tool progression + disposition choice Recovering, salvaging, repossessing, restoring. The scanner, the tiers and the trackers all survive verbatim.
Brandishing a weaponCoercion as a rung below violence Presence, bluff, a tagger, a net, a whistle. Rockstar's own demo beat is the non-lethal one; you are keeping the better half.
RomanceA bond variable that rises with co-presence and falls with neglect Partnership. Crews. Rivals-turned-partners. The mechanic is time-together, and it needs no romantic framing to work — Rockstar made theirs opt-out for the same reason.
Fencing stolen goodsA player-run secondary market with risk transfer Salvage brokers, restoration shops, auction houses. Identical economics.
Criminal profileA restraint score: force used vs. force needed, given an available exit Ships as-is, and it is a gift. A system that rewards de-escalation, tidiness and kindness to animals is one you would have had to invent for this audience anyway — Rockstar just did the design work and published it.
Body simulationA slow ledger of past behaviour, visible on the avatar Training, conditioning, fitness. Handle carefully: reward capability, not thinness, and never show a weight number. Ship the strength axis before the mass axis.

Three things to get right

  • Consequence without gore. The tension in the demo comes from the icon row, not from the blood. Losing your car, your outfit and your route is the punishment. It is enough.
  • The body ledger is the one with real duty of care. Frame it as capability (endurance, strength, recovery), never as appearance-as-score. No numbers, no comparison, no leaderboard on it. If in doubt, ship the muscle axis and leave the mass axis out.
  • The temperament ledger is the compliance argument, not a concession to it. An experience whose scoreboard rewards restraint is easier to defend and better designed than one that merely omits violence. Lead with it.
  • Player-as-witness is a social system. The moment a player can report another player for reward, you have built a griefing surface. Cap it, make false reports cost something, and never let a report reveal a target's live position to a stranger.
08 · Scoreboard

What tells you it worked

Session length and D1 will move for a dozen reasons. These five are specific enough to falsify the thesis.

>40%pursuits ended by disguise, not speed
>25%escapes that stayed hollow
>30%sessions with a repeat partner
>1scan-then-reject per session
>15%clothing spend tied to a heat reset
>35%escapes not ending in a car
>50%encounters where diffuse was offered and taken
One counter-metric worth watching from week one: chase abandonment. Deep systems fail by being illegible, and illegibility shows up as players quitting mid-pursuit rather than as players complaining. If abandonment rises when you add a fact, the fact is not readable yet.