# MLO Studio: Every Way an MLO Breaks, Turned Into One Export Button

By AJTheDev — 2026-10-15
Canonical: https://ajthe.dev/case-studies/posts/mlo-studio-fivem-mlo-builder.html
Client: Personal Product · Tech: Node.js, three.js, CodeWalker.Core, PowerShell 7, Python, MCP

> If you've ever built a house in The Sims, you already know how to make an MLO with this. Draw the rooms, click a wall for a door, press Export. Everything an MLO needs to actually work in game is handled for you, and the Studio checks it all before it hands you a resource.

---

![MLO Studio: an eight-room house drawn on the floor plan on the left and shown in 3D on the right, with the Checks panel reading Ready to export](https://ajthe.dev/assets/images/case-studies/mlo-studio-banner.jpg)

An eight-room house: the plan on the left, the same build in 3D on the right. The 3D view is exactly what gets exported.

## The hard part was never the walls

Anyone can model four walls and a floor. The reason most people give up on MLOs is everything that happens after: you load in and fall straight through the floor. You walk through a door and the next room vanishes. You stand in your own building and the game decides you're outside, so the lighting and weather behave as if you're out in the street.

None of those are modelling problems. They're data problems hiding in files you never see: which room every collision triangle belongs to, which way every portal faces, where each room's model sits, how a door's rotation is stored. Get one number wrong and the interior looks perfect in Blender and breaks in game.

MLO Studio started on 28 September 2026, after an interior I'd built by hand for my own server broke twice. First its collision tagged every surface as limbo. Then a re-export fixed that but left a hole at the entrance and an invisible wall 0.9 m in front of the visible one. I didn't want a better checklist. I wanted a tool where that class of mistake can't happen.

## How simple it is to use

**Place**Stand where the interior goes, press F8, paste the vector4. It builds around that spot.

**Draw rooms**Press R and drag. Rooms that touch share a wall automatically.

**Click walls**D for a door, W for a window. Inside walls get portals; outside walls become exits.

**Export**About ten seconds later you get a streamable resource that has already checked itself.

Along the way you can hang real base-game doors (the opening resizes to fit the one you pick), add boxes for counters, pillars and steps, stack floors and join them with a generated stairwell, drop in your own image as a texture, and walk round the whole thing at eye height before it goes anywhere near your server.

![MLO Studio 3D view of an eleven-room police station with a lobby, front desk, offices, a corridor and four cells](https://ajthe.dev/assets/images/case-studies/mlo-studio-police-3d.jpg)

An eleven-room police station: lobby, front desk with a serving hatch, offices, a cell block and four cells, with eleven real game doors hung.

![In game: the police station corridor with framed doors and a cell gate at the far end](https://ajthe.dev/assets/images/case-studies/mlo-studio-ingame-corridor.jpg)
![In game: looking through a barred cell door into a tiled cell with a bunk](https://ajthe.dev/assets/images/case-studies/mlo-studio-ingame-cell.jpg)

The same build in game on FiveM Enhanced, 11 October 2026: the corridor, and a real cell door hung by the Studio.

## The knowledge I had to connect

MLO Studio is mostly one generator. The 3D preview, the visible walls, the collision and the portals all come from the same code, from the same triangles. That one decision removes the most common failure outright: collision that drifts away from what you can see. The rest is a set of rules I had to dig out, prove in game, and then build in so nobody has to know them again.

| What goes wrong in game | The actual cause | What the Studio does about it |
| --- | --- | --- |
| The game thinks you're outside while you're standing in the room | Collision tagged as room 0, which is "limbo", the outside world | Tags every collision triangle with its own room, and refuses to export if a single one is limbo |
| You fall through the floor at a doorway, or hit an invisible wall | Collision rebuilt separately from the visible model and drifted out of line | Builds both from the same triangles, then compares them vertex by vertex after compiling |
| Walk through a door and the next room disappears | The portal is wound backwards | Winds every portal from the room you're in to the room you're entering. Exit portals always face outwards |
| Only one room ever draws | Every room's model is placed at the interior's origin | Puts each room's model at that room's centre, with the geometry relative to it |
| A real game door hangs backwards, outside its frame | Rockstar stores an interior entity's rotation inverted, and the door's origin is its hinge, partway up the leaf | Read 733 doors from 236 of the game's own interiors to learn the convention, then hangs every door that way and checks it after compiling |
| CodeWalker reports nothing, or a file won't load | Undocumented quirks: NaN written into drawable bounds, a manifest file that must be forced to PSO | Patches both automatically and reloads every compiled file in CodeWalker as a check |
| A 14-room interior weighs 43 MB | Every room carrying its own copy of every texture | One shared texture dictionary by default: the same hospital build came out at 3.1 MB and walked identically in game |

There's a hard limit hiding in there too. Collision stores the room number in 5 bits, so an MLO can have at most 31 rooms. The Studio tells you before you hit it, not after.

## It checks its own homework

An export doesn't stop at writing files. The Studio compiles them through CodeWalker, decodes its own output again and runs up to 16 checks on what actually came out. Every one of them exists because something broke once.

![MLO Studio export dialog: Built and verified in 10.9 seconds, followed by a list of passed checks on the compiled files](https://ajthe.dev/assets/images/case-studies/mlo-studio-export.jpg)

"Built and verified in 10.9 s": collision room IDs, collision matching the geometry, walkable floor everywhere, every portal facing the right way.

- **Walkable floor everywhere:** a 25 cm grid over every room floor, plus every door threshold, must land on collision in the right room. On the house above that's 4,371 points.
- **Every visible surface has collision behind it,** except trims that are meant to be visual only, like door architraves.
- **Stairs climb continuously** to every landing, probed along the ramp.
- **Real doors hang in their openings:** each door is read back from the compiled file, and its far edge has to land on the far jamb.

If a check fails, it tells you the rule it tested and what it found. You don't find out from a player falling through the map.

## Putting it inside a real building

Most MLOs live inside a building that's already on the map, and that's where people get stuck next. The Studio's walk-in tools read your own GTA V install and show the real building around your rooms as a grey ghost.

Find

### The building and its doorways

Paste coordinates from the doorway, tick the building, and the Studio finds its openings and lines your exit door up with one in a click.

Measure

### The space inside

It measures the clear space inside the real walls, so you know how big your rooms can be before you draw them.

Replace

### Stock doors in the way

Tick the game's own door and the export hides it at runtime with a small client script, so your door takes its place. No game files touched.

Probe

### The host's collision

It checks the map's collision around your interior and names the exact tile if something blocks an exit or sits inside a room.

For glass shopfronts where the doors are modelled into the wall, it can cut those exact doorways out of the building and its collision on export. I tested that on a real medical centre with double glass doors, and found the hard way that its night-time light overlay paints the glass back in after dark. That gets cut too now.

## Not just MLOs

- **Housing shells:** New shell builds the teleport-in kind housing scripts spawn. You get one model with its collision inside, plus the entry point as a `vector4` ready for your script's config.
- **No Blender? Still editable:** every export also writes the whole interior as one OBJ that opens in Blender, 3ds Max, Maya or anything else. Edit it, and the Studio splits it back into rooms, rebuilds the collision and runs every check again.
- **Prefer Blender?** Every export has an `_xml` folder that imports into Sollumz 2.9 with real names and every room linked to its model.
- **Let Claude build it:** the Studio is also an MCP server with 32 tools. Ask for "a two-floor pawn shop with a back office and a flat upstairs" and Claude draws it, looks at the floor plan, checks it and exports it, using your licence.

## Turning my tool into a product

The first build walked in game the day after I started. Making it work for someone else was its own project. Version 1.1.0 ships as a single `MLOStudio.exe` that opens in its own window. There's no Node to install, no terminal, and no source to set up. You need Windows, PowerShell 7 and the free CodeWalker dev build, and the readme walks you through all three.

Licensing goes through Gumroad: planning, editing, the 3D view and walk mode all work without a key, and the key is only asked for the first time you export. It activates on two PCs and keeps working for 14 days offline. Before release I checked the zip the way a stranger would get it: no source inside, no export without a key, and a fake key refused.

**Being straight about what's proven.** Enhanced (gen9) output has been walked in game: rooms, doors and hung game doors, the shared-texture hospital, the cut-open glass doors. Legacy (gen8) builds and passes every check, but I don't have a Legacy install, so it hasn't been walked yet. Windows, stairwells and shells are newer than the core rooms and doors. If one misbehaves in game, I want to hear about it.

The Studio builds the shell, not the furniture. Exports have no props, so a bare room looks bare. Every purchase includes a guide to furnishing it in CodeWalker.

## MLO Studio licences

Same Studio, same features. The licence decides what you can do with the MLOs you make.

Personal

### MLO Studio Personal

£59.99 personal licence

For building MLOs and shells for your own servers.

[Buy Personal on Gumroad →](https://ajthedev.gumroad.com/l/MLOStudio?variant=Personal)

Commercial

### MLO Studio Commercial

£129.99 commercial licence

For selling or distributing the original MLOs you make with it. The Studio itself is never resold.

[Buy Commercial on Gumroad →](https://ajthedev.gumroad.com/l/MLOStudio?variant=Commercial)

Under either licence, anything you release has to follow Rockstar Games / Cfx.re rules, including Tebex and Cfx Marketplace requirements. Want to finish your builds in Blender? My [FiveM Enhanced MLO Guide](https://ajthedev.gumroad.com/l/ComprehensiveFiveMModelling) (£29.99) covers the whole Sollumz side. Questions before you buy? [Ask me in the Discord](https://discord.gg/YKAKTQhvEw).

## Questions people ask about making MLOs

Do I need to know Blender or CodeWalker?

No. You draw rooms and doors in the Studio and press Export. It drives CodeWalker for you; you only install it. Blender with Sollumz is optional, for detailing an export afterwards.

Does it work for FiveM Legacy as well as Enhanced?

Enhanced (gen9) is the default and its output has been walked in game. Legacy (gen8) builds and passes every export check, but hasn't been tested in game yet. Reports from Legacy servers are welcome.

Can it make housing shells?

Yes. New shell builds a teleport-in housing shell: one model with its collision inside, plus the entry offset as a `vector4` for your housing script's config.

Does an export include Rockstar assets?

No. Exports reference base-game doors by name. The only exception is the optional cut-open host building for doors modelled into a wall, which ships modified copies of that building's files, and the Studio tells you when that's the case.

How do I install an export on my server?

Drop the folder in your resources, `ensure` it, and do a full server restart (MLOs stream files, so a live `restart` isn't enough). Then walk every exit door once.

## The bigger idea

Every MLO tutorial teaches you the rules: tag the collision, wind the portals, place the room entities, fix the bounds. That's knowledge you need every single time, and one slip costs an evening of server restarts to find.

MLO Studio is what happens when you stop teaching the rules and build them in instead. Everything I learned the hard way, from the game's own files and from walking broken interiors, is now code and a list of checks. All you see is rooms, doors and an Export button.

---

## Want to skip the hard part?

MLO Studio turns rooms you draw into a verified FiveM interior in about ten seconds. If you need something bespoke instead, a full map project, scripts or a custom tool, I build those too.

[Get MLO Studio on Gumroad →](https://ajthedev.gumroad.com/l/MLOStudio)

[Talk to me about a custom FiveM build](https://ajthe.dev/contact/).
