DEV Community

FiveM MLOs
FiveM MLOs

Posted on

Why Your FiveM MLO Causes Texture Loss (and How to Check Before You Install It)

If you run a FiveM roleplay server, sooner or later a player reports that the city "goes blurry" or that textures pop in around a certain building. In my experience the cause is often an MLO (a custom interior) that was built without much thought for streaming memory. This post walks through what to check in an MLO resource before you put it on a live server.

1. Know what is inside the resource

A typical MLO resource looks like this:

my_mlo/
├── fxmanifest.lua
└── stream/
    ├── my_mlo.ytyp   -- archetype definitions, including the MLO interior
    ├── my_mlo.ymap   -- where the interior is placed in the world
    ├── my_mlo.ybn    -- collision
    ├── my_mlo.ydr    -- models
    └── my_mlo.ytd    -- textures
Enter fullscreen mode Exit fullscreen mode

And a minimal manifest:

fx_version 'cerulean'
game 'gta5'

this_is_a_map 'yes'

data_file 'DLC_ITYP_REQUEST' 'stream/my_mlo.ytyp'
Enter fullscreen mode Exit fullscreen mode

If the .ytyp is not registered with DLC_ITYP_REQUEST, the interior can fail to load properly or show up without its rooms and portals. That is the first thing to check when an interior looks "empty" or you can see through walls.

2. Check texture dictionary sizes

The biggest performance issue I see is oversized .ytd files. One 4096x4096 texture on a small prop adds up fast when a building has hundreds of them. The FiveM client warns in the console about oversized assets (roughly above 16 MB of physical memory), and those warnings are worth taking seriously.

Quick checks:

  • Open the .ytd in OpenIV or CodeWalker and look at texture resolutions. Floors and walls rarely need more than 1024 or 2048.
  • Make sure textures are compressed (DXT1/DXT5 or BC7), not uncompressed A8R8G8B8.
  • Look for duplicate textures shared across several .ytd files.

3. Rooms, portals and occlusion

A proper MLO is split into rooms connected by portals. The game uses portals to decide what to render, so a well-built interior only draws the room you are in plus what you can see through doorways. A badly built one is a single giant room, which means everything gets drawn all the time.

In CodeWalker, select the MLO and check:

  • Is the interior split into several rooms, or is it one big room?
  • Do the portals line up with real doorways and windows?
  • Are entity sets used for optional props instead of everything being always on?

4. LOD distances and the exterior

Exterior shells with huge LOD distances get streamed from far away. For an interior that sits in a dense area such as Mission Row or Pillbox, that adds load on every client driving past. Check the lodDist values in the .ymap and keep them reasonable for the size of the building.

5. Test it on a clean server first

Before an MLO goes live, I test it on a local server with only the base resources:

  1. Start the resource and watch the client console for "oversized asset" warnings.
  2. Walk through every room and check for missing collision (falling through floors) and see-through walls.
  3. Use resmon while standing inside to make sure nothing script-side is spiking.
  4. Drive around the exterior at speed to see if textures pop in.

If you want a full step-by-step on the install side, there is a guide on how to install a FiveM MLO that covers the manifest and server.cfg part in more detail.

6. What to ask a seller before you buy

If you are buying an interior rather than building one, ask the seller:

  • Total streamed size of the resource and the largest .ytd.
  • Whether it is split into rooms with portals.
  • Whether it conflicts with any default interiors or popular map packs.
  • Whether you get updates when game builds change.

Business interiors like garages get used constantly on RP servers, so for something like a FiveM mechanic MLO it is worth being picky about performance. Stores such as FiveM MLOs list interiors by category, which makes it easier to compare options before you commit.

Wrapping up

Most "my server lags in this area" complaints come down to a few things: oversized textures, missing room and portal setup, and long LOD distances. Spending 15 minutes checking an MLO in CodeWalker before it goes live saves a lot of player complaints later.

If you have other checks you run on interiors, drop them in the comments.

Top comments (0)