Guide ยท Server Setup
A full walkthrough of installing any FiveM MLO โ understanding the file types (YMAP, YTYP, YBN, YDR, YTD), setting up the stream folder, removing conflicting vanilla buildings, and fixing collision issues. Works for every framework.
If you've already followed the scripts install guide, a lot of this will look familiar โ the folder still goes in resources/, and you still add an ensure line to server.cfg. But MLOs add two wrinkles that scripts don't have:
stream/ subfolder with binary GTA asset files (.ymap, .ytyp, .ybn, .ydr, .ytd) that the game loads into the world when a player gets close enough.fxmanifest.lua and server.cfg.For the experienced:
server-data/resources/[name]/fxmanifest.lua declares files and data_file entries for every .ymap / .ytypensure [name] to server.cfgExtract the MLO ZIP locally. You'll see a folder laid out something like this:
mansion-mlo/
โโโ fxmanifest.lua
โโโ stream/
โ โโโ mansion_int.ytyp # interior definition
โ โโโ mansion_int.ymap # placement in world
โ โโโ mansion_exterior.ydr # 3D geometry (exterior)
โ โโโ mansion_interior.ydr # 3D geometry (interior)
โ โโโ mansion.ytd # textures
โ โโโ mansion_coll.ybn # collision data
โ โโโ remove_vanilla.ymap # (optional) disables original building
โโโ README.md
Quick primer on the file types you'll see:
.ymap โ map data: where things go in the world (object placements, LODs, occluders, interior portals)..ytyp โ type definitions: describes rooms, interior geometry archetypes, portals, and what's inside each interior..ybn โ collision/bounds: the invisible walls that stop players falling through floors or walking through walls..ydr โ model: the actual 3D mesh you see..ytd โ texture dictionary: compressed textures packed into an atlas..ydd โ drawable dictionary: a group of .ydr models shipped together.You don't need to touch these files directly โ FiveM loads them automatically once the resource is registered. But knowing what they are helps when troubleshooting missing textures, collision problems, or invisible walls.
resources/Upload the entire MLO folder (containing fxmanifest.lua and the stream/ subfolder) into your server's resources/ directory. Most server owners group MLOs into a [mlo] bracket folder for organization:
server-data/
โโโ resources/
โโโ [qb]/
โโโ [mlo]/
โ โโโ mansion-mlo/
โ โโโ custom-police-station/
โ โโโ arcade-interior/
โโโ advanced-housing-script/
FiveM recursively scans resources/, so the nesting is purely cosmetic. What matters is that the folder contains a valid fxmanifest.lua at its root.
stream/ (lowercase) inside the resource. If the MLO ships it as Stream/, streams/, or stream_files/, rename it to stream/ before uploading. Anything else won't be auto-streamed.
fxmanifest.luaOpen fxmanifest.lua in your text editor. A valid MLO manifest declares both files and data_file entries for every YMAP and YTYP in stream/:
fx_version 'cerulean'
game 'gta5'
author 'DesignStudio'
description 'Custom Mansion MLO'
version '1.0.0'
this_is_a_map 'yes'
files {
'stream/mansion_int.ytyp',
'stream/mansion_int.ymap',
'stream/remove_vanilla.ymap',
}
data_file 'DLC_ITYP_REQUEST' 'stream/mansion_int.ytyp'
data_file 'MAP_TYPES_FILE' 'stream/mansion_int.ymap'
data_file 'MAP_TYPES_FILE' 'stream/remove_vanilla.ymap'
The key lines:
this_is_a_map 'yes' โ flags the resource as map data so FiveM's streamer handles it correctly.files { ... } โ every YMAP and YTYP must be listed (you don't need to list .ydr, .ytd, or .ybn โ those stream automatically from the stream/ folder).data_file 'DLC_ITYP_REQUEST' โ registers each .ytyp as a type request.data_file 'MAP_TYPES_FILE' โ registers each .ymap. Use this for both the main map and any "remove" YMAPs.If your MLO's manifest is missing these entries, the files stream but the game doesn't know what to do with them โ you'll see the exterior mesh but no interior, or the interior will load without its type definition and render as a floating archetype of props. Fix: add the missing lines and restart.
This is where MLO installs most often go wrong. If the MLO replaces an existing GTA V building (custom Mission Row PD, Pillbox Hospital rework, Pacific Bank redesign), the original building's geometry and collision need to be removed โ otherwise both load simultaneously and you get clipping, floating props, and doors that open into solid walls.
Most well-built MLOs include a remove_*.ymap, disable_*.ymap, or similar file that flags the vanilla building as removed. The previous step's fxmanifest.lua example already registered it โ as long as this_is_a_map 'yes' is set and the YMAP is registered as a MAP_TYPES_FILE, FiveM will apply it on load.
Some older or cheaper MLOs don't handle vanilla removal. You have two options:
server.cfgOpen server.cfg and add an ensure line for the MLO. Order matters less here than it did for scripts (MLOs don't depend on frameworks), but there's still one rule:
# server.cfg
# Framework first (if you run one)
ensure es_extended
ensure oxmysql
ensure ox_lib
# Scripts next
ensure qb-policejob
ensure advanced-housing-script
# MLOs last โ they stream regardless of what else runs
ensure mansion-mlo
ensure custom-police-station
ensure arcade-interior
Grouping MLOs at the bottom of server.cfg is a common convention โ it makes it easy to enable/disable a batch of map content without scrolling through framework and script entries. Nothing requires it, but it helps.
Restart the server and join in-game. MLOs stream on approach โ they don't fully load until a player is within roughly 300 meters, so teleport or drive to the location before judging the result.
Once you're there, do a perimeter walk:
First-load LOD pop-in is normal โ give the interior 5โ10 seconds on first entry for high-res textures and props to stream in. After the first entry it should load instantly on subsequent visits.
The .ytyp isn't registered. Open fxmanifest.lua and make sure every .ytyp file in stream/ has a data_file 'DLC_ITYP_REQUEST' line. Also verify this_is_a_map 'yes' is present at the top.
The remove/disable YMAP isn't working. Check: (1) the remove YMAP file is actually in stream/, (2) it's listed in both files { } and as a data_file 'MAP_TYPES_FILE', (3) no other resource is re-adding the vanilla building. If all three check out and it still clips, message the MLO's seller โ they usually have a pre-made fix.
The .ytd didn't stream. Verify the texture file is in stream/ (not a subfolder โ FiveM's auto-streamer doesn't recurse into stream/textures/, it expects everything flat inside stream/). Also check the filename matches what the .ydr expects โ case-sensitive on Linux servers.
The .ybn file doesn't match the .ydr. This almost always means a mismatched version โ the MLO's YDR was updated but the YBN wasn't regenerated. Re-download the MLO (in case the seller pushed a fix), and if it's still wrong, message the seller for a corrected collision file.
Missing or broken .ybn. Different failure than the above: here the collision file is entirely absent, not mismatched. Check stream/ for .ybn files โ if there are none, the MLO was shipped broken. Request a fix from the seller.
The teleport script's coordinates don't match the MLO's entry points. Open your teleport/door-lock script's config and update the coordinates to match the MLO's documented entry points. Most marketplace MLOs list exact entry coordinates in the README. If not, fly to the entry point in-game with a devmode tool and read the coords off the HUD.
Usually a malformed YMAP or a YTYP conflict. Isolate: remove the new MLO from server.cfg, restart, confirm the server boots. Then add the MLO back and watch the console as it loads โ the line right before the crash names the file that failed. Forward it to the seller. Before contacting the seller, also check if another recently-added resource is using the same archetype IDs.
The MLO's LOD chain is incomplete or the YMAP's lodDist values are too low. This is a building-quality issue โ ask the seller for a revision. Temporary workaround: reduce your server's population_density to free up streaming bandwidth, which sometimes masks the problem.
Each MLO contributes to streaming bandwidth and draw calls. Use FiveM's client-side profiler to see what's eating frame time. If your server targets low-end clients, stick to MLOs that ship LOD meshes and avoid stacking more than 5โ6 heavy interiors in a single area. Consider upgrading to a dedicated server if streaming is the bottleneck โ VPS setups can choke when many players load a heavy MLO at the same time.
Now that MLO installs are familiar, here's where to take your server next:
stream/ pattern MLOs use.Yes, as long as they don't both try to replace the same vanilla building. Two MLOs that each add new geometry in empty space coexist fine. Two MLOs that both claim the same lot (e.g., two different Mission Row PDs) will conflict โ pick one.
Yes. MLOs are pure map data and have no framework dependency. An MLO works identically on ESX, QBCore, QBox, and standalone servers โ it's the scripts that interact with it (door locks, job zones, teleports) that care about the framework.
Check the README first โ most marketplace MLOs document entry points explicitly. If it's not documented, load the MLO on a test server and fly to each entry point in noclip with a devmode tool; the in-game HUD shows your exact x, y, z. Open CodeWalker and load the .ymap if you want to inspect every portal/door without being in-game.
Normal streaming behavior. FiveM only loads the full interior geometry when a player is within roughly 300 meters; from farther away you see the exterior LOD only. If the exterior LOD itself is missing, that's an incomplete MLO โ ask the seller for a version with LOD meshes.
Yes, with the right tools โ CodeWalker can edit YMAPs and YTYPs visually, and you can swap props, move walls, and re-export. Most sellers allow buyers to modify MLOs for use on their own server. The standard work-for-hire restriction still applies: you can't repackage and resell the modified MLO as your own product.
Usually a client-side mod the video creator had that your server doesn't. MLOs are server-streamed, so they should work for every connected player โ but some creators film on a client with extra standalone map mods layered on top (overlay packs, enhanced vanilla replacements). Confirm with the seller whether the MLO is self-contained.