How to install an MLO or map in FiveM
Step-by-step guide to install an MLO or map on your FiveM server: resource structure with stream/, the fxmanifest, entrance coordinates and tools like CodeWalker.
The problem
You downloaded an MLO or a map (an interior, a police station, a shop, a new island) and you don't know how to add it to the server so you can walk in and see it in-game.
The cause
An MLO (Map Loader Object) is a modeled interior that replaces or adds geometry to the GTA V map. It's not a script: it's a bundle of assets (.ytyp with the archetype definitions, .ymap with the placement in the world, and .ybn with the collisions) that FiveM has to serve via streaming. If the stream/ folder is missing, if the fxmanifest doesn't declare the resource as a map, or if the .ymap files aren't loaded as a data_file, the interior won't appear, will show up without collisions (you fall through), or the resource won't even start.
The solution
Put every asset inside a stream/ folder and declare the resource as a map in the fxmanifest. With this_is_a_map 'yes' FiveM treats the .ymap files in stream as part of the world; if the MLO uses external .ymap files you can also declare them with data_file 'MAP_OVERRIDE'. Typical structure: my_mlo/ fxmanifest.lua stream/ interior.ytyp interior.ymap interior.ybn (collisions) *.ydr / *.ytd (models and textures) fxmanifest.lua:
fx_version 'cerulean'
game 'gta5'
author 'YourName'
description 'Example MLO / map for FiveM'
version '1.0.0'
-- Mark this resource as a map: FiveM will load the .ymap files from stream
this_is_a_map 'yes'
-- FiveM streams EVERYTHING inside stream/ (.ytyp, .ymap, .ybn, .ydr, .ytd)
-- You don't need to list each file; the stream/ folder is enough.
-- If your MLO ships .ymap or .ytyp that must override the base world,
-- declare them explicitly as a data_file:
files {
'stream/interior.ytyp',
'stream/interior.ymap',
}
data_file 'DLC_ITYP_REQUEST' 'stream/interior.ytyp'
data_file 'MAP_OVERRIDE' 'stream/interior.ymap'Step by step
- 1.Copy the MLO folder into resources/[maps]/ (or wherever you keep your maps) and check there's a stream/ subfolder with the .ytyp, .ymap, .ybn and the models/textures.
- 2.Create or review fxmanifest.lua: fx_version 'cerulean', game 'gta5' and this_is_a_map 'yes'. If the interior needs its .ytyp, add it as well with data_file 'DLC_ITYP_REQUEST'.
- 3.Add `ensure my_mlo` to your server.cfg (or to your [maps] category manifest) so the resource loads on startup.
- 4.Restart the server and teleport to the MLO's entrance coordinates. If the creator didn't provide them, open it in CodeWalker, find the .ymap, select the interior entity and copy its XYZ position to use `setcoords` or a vMenu teleport.
- 5.If you fall through the floor or walk through walls, the collisions are missing: confirm the .ybn is inside stream/ and that no other resource overrides the same interior.
- 6.Use CodeWalker to inspect or edit the .ymap position and OpenIV to review the models. Watch performance: too many heavy or overlapping MLOs spike streaming usage and drop FPS.
- 7.Before installing map packs from shady sources, scan them: a hidden .lua or resource manifest inside a 'map' is a classic backdoor vector. A legit MLO should only contain assets, not server scripts.
Related guides
Last updated: 2026-06-29. Crxative-M is not affiliated with Cfx.re or Rockstar Games.
