Vol. I — No. 1·Los Angeles · 1947·Free, not for sale·Client 0.4.0
The multiplayerL.A. Noirewas never built for
A community-built multiplayer framework for L.A. Noire: injected client, authoritative server, scriptable server-side resources. 1947 Los Angeles, with other people in it.
The master list is live and waiting for the first host.
In testing◆One signed executable, updates itself◆427 location bookmarks◆117 character models◆677 animation sets◆26 face shape controls◆451 debug menu items◆Node 22 server, zero dependencies◆Bodies created at runtime, no fixed pool◆No player ceiling in the protocol◆Free and non-commercial◆Bring your own copy of the game◆In testing◆One signed executable, updates itself◆427 location bookmarks◆117 character models◆677 animation sets◆26 face shape controls◆451 debug menu items◆Node 22 server, zero dependencies◆Bodies created at runtime, no fixed pool◆No player ceiling in the protocol◆Free and non-commercial◆Bring your own copy of the game◆
The case · Filed under free roamPage one
Nobody left this behind
There was no dormant netcode to switch on, no cut lobby to restore, and no leftover replication waiting in the executable.
Nobody at Rockstar or Team Bondi built a multiplayer mode for L.A. Noire. The game shipped in 2011 as a single detective in a city of scripted strangers, and it was never asked to be anything else. Fourteen years of wishing did not change that.
Every system here was found by reading what the shipped game already does — the reflection layer it uses to talk to itself, the developer menu Team Bondi left wired up behind a debug flag, the animation graph that walks its own detectives down Wilshire — and then asking that machinery to do something nobody asked it to do.
What came out is a framework rather than a game mode: an injected client, an authoritative server, and script resources you write yourself. The roleplay does not ship with it. That part is yours to write, and the city was always big enough for it.
Free, non-commercial, and open about how it works — including about the parts that do not work yet.
Downtown Los Angeles, plotted from the game's own location index. All 427 bookmarks are reachable in free roam.
Evidence
What is actually in it
01
Real bodies, real animation
Other players are not sliding props. Each one drives a persistent body that the game itself paths and animates — walk, jog, run — through the same locomotion the story characters use.
Bodies built at runtime, moved by the game's own AI
Locomotion path
677 animation sets
input
local client
server
30 Hz authority
snapshot
over the wire
body
built at runtime
no preallocated pool — the engine's own actor factory builds each one
idlewalkjogrun
Plate II — 26 shape controls, synced over the wire and persisted26 controls
02
Your own face
A face editor that runs while the game does: 26 shape controls, skin tone, hair and beard, built on the fly and streamed straight into the engine. No repacked game archives, and no two detectives alike.
Plate III — 427 of Team Bondi's own location bookmarks427 bookmarks
03
The city as it shipped
The whole map in free roam, 427 of Team Bondi's own location bookmarks, districts switched live, and the studio's internal developer menu wired into an in-game panel.
resources/
└─core/
└─characters/
└─vehicles/
└─world/
└─precinct/yours
└─index.ts
Plate IV — Drop a folder in, hook the events, add commandsno build step
04
A server you can script
A Node.js server with a resource system in the shape FiveM taught everyone to expect: drop a folder in, hook the events, add commands. What the roleplay is, is yours to write.
For developers
The roleplay is yours to write
The server is plain TypeScript on Node 22 with no build step and no dependencies. A resource is a folder with an index.ts that exports init; the api it is handed carries the events, the characters, the world clock, vehicles and server-owned actors.
55 calls and events · Written against the interface the server actually exposes.
resources/precinct/index.ts
1import { arg, API_VERSION, type ResourceApi, type ResourceManifest } from"#server";23exportconst manifest = { api: API_VERSION } satisfies ResourceManifest;45exportfunctioninit(api: ResourceApi) {6 api.on("playerJoined", ({ player }) => {7 api.broadcast(`${player.name} signed in at the precinct.`);8 });910// Store by identity, never by name: it survives reconnects and renames.11 api.on("appearanceChanged", ({ player, look }) => {12 api.saveLook(player.identity, player.name, look);13 });1415// The schema names and parses the arguments; the handler gets them typed.16 api.command("goto", { args: [arg.num("x"), arg.num("y"), arg.num("z")] },17 (player, { x, y, z }) => api.teleport(player.id, { x, y, z }));1819// One clock for everyone; the engine reads the hour every frame.20 api.setTimeOfDay(23.5);21 api.setTimeRatio(0);22}
The list
Find a server
Every server announces itself to the master list. Search it, filter it by language, and take the connect line straight into the game.
The launcher is live and keeps itself current, and testers are playing on it. This is what is finished, what is being fought with right now, and what comes next.
Phase 0–1
Injection and overlay
An ASLR-safe x86 client injects into the retail game and draws its own overlay over the engine's D3D9 and D3D11 paths.
Closed
Phase 2
The game's own systems, opened
The engine's reflection layer and Team Bondi's internal developer menu wired into an in-game panel. Live case switching: free roam reaches an empty world in four seconds.
Closed
Phase 3
Persistent bodies and faces
Remote players drive real bodies that the game paths and animates. The runtime face editor is synced over the wire and persisted.
Closed
Phase 4
Vehicles, combat, scale
Vehicle sync and weapons are in and imperfect; seeing a player fire does not yet mean the damage landed. This is the open work, and it is open while the build is out.
Open
Phase 5
The launcher and the server list
One executable a player keeps, signed releases behind it, and a master list servers announce themselves to. Live for testers since 8 September 2026; an open release waits on phase 4.
Closed
The precinct
It happens on Discord
Testers get the build, and the Discord is where they are found. The dev log carries what got built this week; run /apply if you want in while it is still small.
Run /apply in the Discord and answer four short questions. Accepted testers get the Tester role, the testing area, and the launcher channel the builds land on.
Every announcement is translated, and each language has its own channels.
Stick around and you get ranked
Cadet0
Patrolman10
Detective100
Sergeant500
Lieutenant2,000
Messages sent in the server.
Questions
Before you ask
Q.Do I need to own L.A. Noire?
A.
Yes. You need your own copy of L.A. Noire (2011) on PC — the Steam build is what this is developed against. Nothing here ships game files, and there is no piracy support.
Q.How do I get in?
A.
Through the launcher, and through the Discord. NoireMultiplayer.exe updates your game folder and starts the game on the server you pick, but the servers are the tester group's while vehicles and combat are still rough — so run /apply in the Discord first. There is no separate installer and no injection step to run yourself.
Q.Will this get me banned?
A.
L.A. Noire has no online component and no anti-cheat, so there is nothing to be banned from. The mod is injected at runtime and does not modify your game files.
Q.Is it legal? Is it free?
A.
It is a free, non-commercial fan project, not affiliated with or endorsed by Rockstar Games or Team Bondi. No paid features, no sales, no donations tied to access.
Q.How many players can a server hold?
A.
Nothing caps it structurally. Player ids are 16-bit, so the wire addresses tens of thousands, and bodies are no longer drawn from a preallocated pool — they are built at runtime through the engine's own actor factory, so spawning thousands of them is not the problem it used to be. What nobody has done yet is put thousands of players behind those bodies. The 32 in the server's --max flag is a comfortable default, not a limit, and every number on this page is untested at scale.
Q.Can I host a server?
A.
Testers can. The server is plain TypeScript on Node 22 with no build step and no runtime dependencies: forward one UDP port, run it, and pass --announce if you want it listed here. The API reference covers writing your own resources.
Q.Can I help?
A.
Yes. Testers, server scripters, translators and people who just report bugs properly are all useful. Start in the Discord.