# How to add an MLO interior to a FiveM server

> Install an MLO interior on a FiveM server: the files that belong in stream/, the this_is_a_map manifest, the ensure line, and what to do when two maps clash.

Source: https://fam-tools.com/guides/fivem-mlo-install · FAM Tools · published 2026-09-11 · updated 2026-09-11 · about 12 min

**Short answer.** An MLO is a resource whose `stream` folder holds the interior’s models (`.ydr`), textures (`.ytd`), collisions (`.ybn`), placement (`.ymap`) and archetype definitions (`.ytyp`). Its manifest usually needs only `fx_version`, `game` and `this_is_a_map 'yes'`. Add `ensure` for it, make sure no other map occupies the same place, and start map dependencies (such as bob74_ipl) in the order the MLO expects.

## Key points

- An MLO is stream-only in most cases: models, textures, collisions, ymap and ytyp.
- `this_is_a_map 'yes'` in the manifest marks the resource as a map.
- Two maps in the same place = invisible walls, flicker or missing interiors.
- Escrow (FXAP) MLOs only load on servers whose Cfx account owns them.
- Large MLOs raise streaming memory — watch the oversized-asset warnings.

MLOs are custom interiors — a police station you can walk into, a nightclub, a mechanic’s workshop — and they are what make a city feel lived in. Installing one is usually as simple as dropping a folder in and adding one line, but when two maps claim the same space or a file is missing, the symptoms (invisible walls, floating props, falling through the floor) are confusing. This guide covers both.

## What is inside an MLO

| File type | What it is |
| --- | --- |
| `.ydr` / `.ydd` | Models (drawables and drawable dictionaries) |
| `.ytd` | Textures |
| `.ybn` | Collisions — what you can walk on and bump into |
| `.ymap` | Placement — where the interior and its props sit in the world |
| `.ytyp` | Archetypes — the interior’s definition, rooms and portals |

“MLO” (Milo) is the game’s term for an interior with rooms and portals, which lets the engine hide what is outside when you are inside. That is why a proper MLO performs better than a building made of loose props.

## Installing

1. Unzip the MLO into `resources/[maps]/` and check the folder contains `fxmanifest.lua` directly (not a folder inside a folder).
2. Open the manifest: it should look like the example below.
3. Add `ensure the_mlo_name` to server.cfg, after any dependency the author lists.
4. Restart the server and walk to the location.

*fxmanifest.lua for a typical MLO*

```lua
fx_version 'cerulean'
game 'gta5'

this_is_a_map 'yes'

-- files in stream/ are streamed automatically
```

Some MLOs also register their `.ytyp` explicitly with `data_file 'DLC_ITYP_REQUEST' 'stream/name.ytyp'`. Keep whatever the author shipped; do not add it if it is not there.

## Escrow (FXAP) MLOs

Most paid MLOs are protected with Cfx asset escrow. The files are encrypted and only decrypt on a server whose license key belongs to the Cfx account that bought the asset. If an escrowed MLO shows nothing, check that the server uses the right license key and that the asset is assigned to that account in the Cfx portal. Escrowed files cannot be opened or edited, so a broken escrowed MLO has to be fixed by its author.

## Conflicts: the source of most MLO problems

| Symptom | Likely cause |
| --- | --- |
| Invisible walls or walking into air | Collision from another map at the same spot |
| Interior flickers or props pop in and out | Two maps overlap and both draw there |
| Interior is empty or missing | The ytyp did not load, the MLO did not start, or an IPL loader removed it |
| Falling through the floor | Collision (`.ybn`) missing or not streamed yet |
| Original building still visible inside | The MLO expects a vanilla object to be removed; a required dependency is missing |

Many MLOs replace or build on vanilla interiors that `bob74_ipl` also manages. If both edit the same interior, start the MLO after bob74_ipl, or disable that interior in bob74_ipl’s config. [Interiors and IPLs](https://fam-tools.com/guides/fivem-interiors-ipl) explains how IPL loading works.

> **Finding the other map** — Walk to the broken spot and stop map resources one at a time (`stop resourcename`). When the problem disappears, you have found the conflict. Base packs and “all-in-one” map bundles are the usual suspects.

## Performance and memory

Every MLO adds textures and models that clients stream when near it. A detailed MLO can easily carry textures above the size FiveM warns about; the server prints an “Asset … uses X MiB” line for anything over 16 MiB. Dozens of heavy MLOs downtown are a common cause of textures loading slowly or not at all — see [the oversized assets warning](https://fam-tools.com/guides/fivem-oversized-assets-warning).

## Questions

### How do I install an MLO in FiveM?

Put the MLO folder in `resources`, make sure its `fxmanifest.lua` includes `this_is_a_map 'yes'`, add `ensure foldername` to server.cfg and restart the server.

### Why is my MLO invisible?

The resource did not start, an escrowed MLO is not owned by your server’s Cfx account, or another map overlaps the same location.

### What does this_is_a_map do?

It marks the resource as a map so its map data is loaded as such. MLO and map resources include it in their manifest.

### Why do I fall through the floor of an MLO?

The collision file is missing, not streamed yet, or overridden by another map. Check the `.ybn` files are present and look for conflicting maps.

### Can MLOs conflict with bob74_ipl?

Yes, when both change the same vanilla interior. Start the MLO after bob74_ipl or disable that interior in bob74_ipl’s configuration.

## Related

- https://fam-tools.com/guides/fivem-ymap-guide
- https://fam-tools.com/guides/fivem-interiors-ipl
- https://fam-tools.com/guides/fivem-oversized-assets-warning
- https://fam-tools.com/guides/fivem-streaming-assets
