FiveM MLO Scripts Troubleshooting FAQ: 12 Common Issues Fixed
MLOs (Map Loader Objects) are custom interiors that replace or extend GTA V's default map. They're powerful but finicky — a single misconfigured file can prevent the entire…

MLOs (Map Loader Objects) are custom interiors that replace or extend GTA V's default map. They're powerful but finicky — a single misconfigured file can prevent the entire interior from rendering. This guide covers the 12 most common MLO issues and how to fix them.
Interior Not Loading

The most frequent MLO problem: you walk to the location and see nothing, or you fall through the ground where the interior should be.
Check the resource's fxmanifest.lua for correct data file entries:
-- fxmanifest.lua must declare map and type files
fx_version 'cerulean'
game 'gta5'
data_file 'DLC_RIPT_REQUEST' 'stream/*.ytyp'
files {
'stream/*.ytyp',
}
this_is_a_map 'yes'
Fix checklist:
- The
.ytypfile is listed infiles {}and referenced as adata_file - The
.ymapfile is in thestream/folder - The resource is
ensured in server.cfg - File names in the manifest match the actual file names exactly (case-sensitive on Linux)
- Restart the resource and clear your FiveM cache
Collision Issues
Walking through walls or falling through floors means the collision mesh (.ybn file) is missing or misaligned.
Verify the collision file exists in the stream/ folder alongside the .ymap and .ydr files. If it exists but collisions are still wrong, the collision mesh was likely exported at different coordinates than the visual mesh. Both must match exactly.
A common workaround while debugging is to use SetEntityCollision() on problematic entities, but the real fix is re-exporting the collision file at the correct position.
Floating Objects
Props hovering in mid-air inside the MLO indicate a coordinate mismatch. This happens when:
- Props were placed in a 3D editor at world coordinates but the MLO origin shifted
- The MLO was repositioned after prop placement
- Props are referencing a different coordinate system
Fix by re-exporting the MLO with all props relative to the same origin, or manually adjust each prop's Z-coordinate in the .ymap file.
Teleport Not Working
MLO entry usually works via teleporting the player from an exterior door to interior coordinates. If the teleport drops you in the void:
-- Debug: print the target coordinates
print(string.format('Teleporting to: %.2f, %.2f, %.2f', x, y, z))
-- Verify the interior is loaded at those coordinates
local interior = GetInteriorAtCoords(x, y, z)
print('Interior ID: ' .. interior) -- Should be non-zero
If the interior ID is 0, the MLO isn't loaded at those coordinates. Either the coordinates are wrong or the MLO resource isn't streaming.
Door Locks Not Functioning
Door lock scripts need exact entity data for each door. For MLO doors:
-- Get door info at your current location
local coords = GetEntityCoords(PlayerPedId())
local door = GetClosestObjectOfType(coords.x, coords.y, coords.z, 2.0, GetHashKey('v_ilev_door'), false, false, false)
print('Door entity: ' .. door)
print('Door model: ' .. GetEntityModel(door))
print('Door coords: ' .. tostring(GetEntityCoords(door)))
Use these exact coordinates and model hash when configuring your door lock resource. Approximate values won't work — door lock systems match on precise coordinates.
MLO Causing Crashes
Client crashes near an MLO usually mean the client ran out of streaming memory. This is especially common with large, detailed interiors.
Optimization steps:
- Reduce texture resolution from 4K to 2K or 1K
- Lower polygon count on detailed props
- Remove unnecessary hidden geometry
- Split very large MLOs into sections that stream independently
Check your server.cfg for streaming memory settings:
# Increase streaming memory budget (default is usually enough for small MLOs)
set sv_enforceGameBuild 2699
Performance Impact
FPS drops near MLOs come from the rendering cost of the interior's geometry and textures loading simultaneously.
Performance optimization checklist:
- Total prop count under 500 per interior
- Textures compressed to DXT format
- LOD models provided for distance viewing
- Unnecessary interior detail removed
- Occluder planes set up to prevent rendering hidden areas
IPL Conflicts
GTA V has built-in interiors (IPLs) at specific map locations. If your MLO occupies the same space, both will try to render, causing visual glitches.
-- Remove conflicting default IPLs on client startup
Citizen.CreateThread(function()
RemoveIpl('v_lesters')
RemoveIpl('v_lesters2')
-- Add all conflicting IPL names here
end)
You can find IPL names for specific locations on the FiveM docs.
Wrong Positioning
MLO position is embedded in the .ymap file. To reposition without re-exporting from your 3D editor:
- Open the
.ymapfile in a text editor (it's XML) - Find the
<position>values under<CEntityDef> - Adjust X, Y, Z coordinates
- Re-pack the resource and restart
Note that repositioning the .ymap also requires moving the collision .ybn file to match.
Lighting Issues
Dark interiors with no ambient lighting need interior proxies configured during the 3D export process. Without light probes, GTA V's lighting engine treats the space as exterior, resulting in incorrect shadows and flat lighting.
If you can't re-export with proper lighting data, a workaround is to place dynamic light entities inside the MLO using a prop-based lighting solution.
MLO Not Showing on Map
MLOs have no automatic map representation. Add blips manually:
Citizen.CreateThread(function()
local blip = AddBlipForCoord(-1043.0, -2745.0, 21.0)
SetBlipSprite(blip, 475)
SetBlipDisplay(blip, 4)
SetBlipScale(blip, 0.8)
SetBlipColour(blip, 3)
SetBlipAsShortRange(blip, true)
BeginTextCommandSetBlipName("STRING")
AddTextComponentString("Custom Interior")
EndTextCommandSetBlipName(blip)
end)
Streaming Memory Errors
The dreaded ERR_MEM_EMBEDDEDALLOC_ALLOC crash means the client exceeded its streaming memory budget. This happens when too many high-resolution assets load simultaneously.
Solutions (in order of effectiveness):
- Optimize the MLO's textures (reduce resolution, use compression)
- Reduce the number of unique props
- Remove other heavy streaming resources from your server
- Ensure players have sufficient VRAM (4GB+ recommended for modded servers)
Recommended Scripts
Browse tested MLO interiors for your server:
- FiveM MLO Scripts — Premium and free MLO interiors
- Best FiveM Scripts 2026 — Top-rated scripts across all categories
Frequently Asked Questions
Why is my FiveM MLO interior not loading?
MLO interiors fail to load when the resource isn't streaming correctly. Check that the fxmanifest.lua includes the .ytyp and .ymap files in the data_file entries, that the resource is ensured in server.cfg, and that there are no file path errors in the manifest.
Why are there collision issues inside my MLO?
Collision problems occur when the .ybn collision file is missing or misaligned with the visual model. Verify the collision file is included in the resource's stream folder and that it was exported at the same coordinates as the visual mesh.
Why are objects floating inside my MLO?
Floating objects happen when props are placed at world coordinates instead of relative to the MLO's origin point, or when the MLO position was moved after props were placed. Re-export the MLO at the correct world position or adjust prop Z-coordinates.
Why isn't the teleport working to enter my MLO?
Teleport-based MLO entries depend on correct interior coordinates. If teleporting puts you underground or in the void, the target coordinates don't match the MLO's actual position. Use the MLO creator's provided coordinates, not estimated ones.
Why aren't door locks functioning in my MLO?
Door locks require the door entity to be registered in your door lock script (ox_doorlock, qb-doorlock). Each door needs its model hash and exact coordinates. If the door is part of the MLO, extract its position from the .ymap file.
Why is my MLO causing client crashes?
MLO crashes are typically caused by exceeding the streaming memory budget. Large MLOs with high-poly models and 4K textures consume significant VRAM. Reduce texture resolution, lower polygon counts, or split the MLO into multiple streaming chunks.
Why is my MLO causing performance issues?
Performance drops near MLOs come from excessive prop count, high-resolution textures, or missing LOD (level of detail) models. Optimize by reducing the total prop count, using compressed textures, and adding LOD variants for distant viewing.
Why do IPL interiors conflict with my MLO?
GTA V's built-in IPL interiors occupy the same map space as custom MLOs. If your MLO overlaps with a default interior location, you must disable the conflicting IPL using RemoveIpl() on the client side before the MLO will render correctly.
