How to Install Custom Maps and MLOs in FiveM
Learn how to install custom FiveM maps and MLOs: stream folder setup, ytyp/DLC_ITYP_REQUEST, this_is_a_map, enforceGameBuild, and troubleshooting invisible models.
On this page
Custom maps and MLOs (Map Level Objects — interiors and exterior add-ons) are among the highest-impact additions you can make to a FiveM server. A detailed Miami Ghetto district or a faithful NYC block grid transforms your server from a stock map into a unique world. But unlike scripts, map resources involve multiple file types, ytyp registration, and a set of fxmanifest directives that, if any one is missing, produce the same frustrating result: an invisible or entirely absent map.
This guide walks through the complete installation process for any custom FiveM map or MLO resource — from understanding the files involved to troubleshooting missing models and dealing with newer DLC build requirements.
Understanding the Files in a Map Resource
Before touching fxmanifest.lua, it helps to understand what each file type does. A well-packaged map resource will include some or all of the following in its stream/ folder:
| File Extension | Full Name | Purpose |
|---|---|---|
| .ydr | Drawable | 3D model geometry and materials for a single object or building |
| .ytd | Texture Dictionary | Texture atlas referenced by one or more .ydr models |
| .ybn | Bounds | Collision mesh — required for players and vehicles to interact with the model physically |
| .ymap | Map Placement | Defines where in the world each entity (model instance) is placed and its rotation/scale |
| .ytyp | Archetype Definition | Registers each model with the game's entity streaming system — required for the engine to know the model exists |
The .ytyp file is the most commonly misunderstood and most commonly missing piece. Without it, GTA V's streaming system has no record of your custom archetypes, and the .ymap placement data references entity types that the engine considers non-existent — resulting in invisible or missing objects.
Setting Up the Stream Folder
All map files must be placed inside a folder named stream/ within your resource directory. FiveM automatically streams every file from this folder to connecting clients. The folder structure for a map resource should look like this:
- my-custom-map/ — resource root
- my-custom-map/fxmanifest.lua — resource manifest
- my-custom-map/stream/ — all model/placement/texture files go here
- my-custom-map/stream/custom_building.ydr — model geometry
- my-custom-map/stream/custom_building.ytd — textures
- my-custom-map/stream/custom_building.ybn — collisions
- my-custom-map/stream/custom_building.ytyp — archetype registration
- my-custom-map/stream/custom_map.ymap — world placement data
fxmanifest.lua for a Map Resource
The fxmanifest.lua for a map resource has two directives that are different from a regular script resource: this_is_a_map and the data_file entry for DLC_ITYP_REQUEST. Both are required for the map to work correctly. The this_is_a_map directive signals to FiveM that this resource contains world placement data. The DLC_ITYP_REQUEST data_file registers your .ytyp archetype file with the game engine.
fx_version 'cerulean'
game 'gta5'
author 'Your Name'
description 'Custom map or MLO resource'
version '1.0.0'
this_is_a_map 'yes'
files {
'stream/**'
}
data_file 'DLC_ITYP_REQUEST' 'stream/custom_building.ytyp'Multiple ytyp Files
If your map resource contains more than one .ytyp file, add a separate data_file 'DLC_ITYP_REQUEST' line for each one. Missing even one ytyp registration will cause those archetypes to be invisible in-game.
Registering the Resource in server.cfg
Your map resource must be listed in server.cfg with ensure. Place it in a logical position relative to other resources — after your base game config but before any scripts that reference the map's interior or exterior zones.
# server.cfg — ensure map resources
ensure my-custom-map
# then ensure scripts that use it
ensure my-target-zones
ensure my-interior-scriptsv_enforceGameBuild for Newer DLC Props
GTA V has received multiple DLC updates since launch, each adding new props, interiors, and entity types. If a custom MLO uses props that were added in a specific DLC, clients without that DLC build will be missing those prop models — causing partial or fully invisible interiors. The sv_enforceGameBuild convar in server.cfg forces all connecting clients to load a specific game build.
# server.cfg — force a specific game build
# Example: build 2944 includes The Contract DLC content
sv_enforceGameBuild 2944
# Or for Cayo Perico content
# sv_enforceGameBuild 2189Check the documentation or release notes for your specific MLO or map pack to find out which game build it requires. If the map creator does not specify a build, it likely uses only base-game props and does not need enforceGameBuild.
Load Order: Why It Matters for Maps
FiveM loads resources in the order they are listed in server.cfg (accounting for dependencies). For maps, incorrect load order causes the streaming system to attempt placing entities before their archetype registrations exist. The correct order is: core FiveM resources first, then map resources, then any scripts that interact with those maps.
- System resources (sessionmanager, mapmanager, etc.) — these load automatically
- Framework resources (es_extended, qb-core, etc.)
- Map resources and MLOs
- Script resources that reference map locations (target zones, teleport menus, job scripts tied to interiors)
Installing NYC and Miami Map Packs
Large-scale city map packs — like the NYC or Miami map packs available from CRM Development — follow the same installation process but typically contain multiple ytyp files, dozens of ymap placement files, and multiple texture dictionaries. Each ytyp must have its own DLC_ITYP_REQUEST entry. When installing a pack like the NYC or Miami Ghetto maps, carefully read the included installation instructions, as these packs often specify a required sv_enforceGameBuild value and a recommended load order position.
- Extract the resource folder into your server's resources directory.
- Add every .ytyp file as a separate DLC_ITYP_REQUEST data_file line in fxmanifest.lua (most packaged maps have this pre-configured).
- Ensure the resource in server.cfg in the correct position.
- Set sv_enforceGameBuild in server.cfg if the pack requires it.
- Restart the server fully — do not attempt a resource restart for map resources, as the streaming data must be loaded at server start.
Troubleshooting: Invisible or Missing Map Objects
If your map installs without errors but objects are invisible or missing in-game, work through this checklist systematically.
- Verify every .ytyp file has a corresponding DLC_ITYP_REQUEST data_file entry in fxmanifest.lua.
- Confirm this_is_a_map 'yes' is present in fxmanifest.lua.
- Check that the resource is listed with ensure in server.cfg and appears in the F8 console resource list.
- Check the server console and F8 client console for streaming errors referencing unknown archetype names — these point to missing or misnamed ytyp registrations.
- Confirm sv_enforceGameBuild is set to the value required by the map, and that all clients are on that build.
- Verify the .ybn collision file is present and named correctly — a map can be visually present but passable (no collisions) if the ybn is missing.
- If only textures are missing (grey/pink models), check that the .ytd texture dictionary is in the stream/ folder and matches the reference name inside the .ydr.
- Try teleporting directly to the map coordinates using a command — sometimes the issue is the camera spawn point being far from the map location, not an actual streaming failure.
Collisions, LODs, and Performance
A well-optimized custom map includes LOD (Level of Detail) models — lower-polygon versions of buildings and objects that render at distance, reducing GPU load. LOD files typically follow the naming convention _lod or _slod appended to the base model name and have their own ytyp archetype entries. If your server has frame rate issues near a custom map, the most common causes are missing LOD models (forcing the engine to render full-detail geometry at all distances) and uncompressed or oversized texture dictionaries.
Texture Compression for Map YTDs
Map texture dictionaries follow the same rules as vehicle textures: power-of-two dimensions (1024, 2048, or 4096) and DXT1 or DXT5 DDS compression. A single uncompressed YTD in a map resource can cause significant stuttering for all players in the area.
Installation Checklist Summary
- All map files (.ydr, .ytd, .ybn, .ymap, .ytyp) are in the stream/ folder
- fxmanifest.lua contains fx_version 'cerulean' and game 'gta5'
- this_is_a_map 'yes' is present in fxmanifest.lua
- Every .ytyp file has a data_file 'DLC_ITYP_REQUEST' line in fxmanifest.lua
- Resource is ensured in server.cfg in the correct load order position
- sv_enforceGameBuild is set if the map requires a specific DLC build
- Server was fully restarted (not just the resource) after installation
- F8 console and server console show no streaming or archetype errors
Ready-to-Install Map Packs from CRM Development
If the installation process feels overwhelming or you want to skip straight to a working result, CRM Development's map packs — including the NYC city grid and the Miami Ghetto/coastal district — are packaged as ready-to-install FiveM resources with pre-configured fxmanifest.lua files, correct ytyp registrations, and detailed installation guides. Every pack is tested against current FiveM builds and includes support for any setup questions. Drop the folder in, add one line to server.cfg, and your server has a new world to explore.
Frequently asked questions
Why is my FiveM MLO invisible after installation?+
The most common causes are a missing or incorrectly registered ytyp file (DLC_ITYP_REQUEST data_file), the resource not being ensured in server.cfg, or a missing this_is_a_map 'yes' declaration in fxmanifest.lua. Check all three before anything else.
What is this_is_a_map in FiveM?+
this_is_a_map 'yes' is a directive in fxmanifest.lua that tells FiveM the resource contains map data. Without it, entity types and world placements in your map files may not load correctly.
What does sv_enforceGameBuild do and when do I need it?+
sv_enforceGameBuild forces all clients to run a specific GTA V game build. Newer DLC props and interiors (e.g. Cayo Perico, The Contract) only exist in certain builds. If your MLO uses props from a newer DLC, clients without that build will see missing or invisible objects.
What files go in the stream folder for a FiveM map?+
The stream folder should contain your .ydr (drawable models), .ybn (collision bounds), .ytd (texture dictionaries), .ymap (entity placement maps), and .ytyp (archetype definitions) files. All of these must be present for the map to appear correctly in-game.
Does load order matter for custom FiveM maps?+
Yes. Map resources should generally be ensured after the base game resources but before any scripts that interact with the map (such as target zones or teleport scripts). If your map depends on another resource's props, that resource must be ensured first.
