DEV Community

FiveM MLOs
FiveM MLOs

Posted on

Optimizing MLO Streaming for 64+ Player FiveM Servers

Most FiveM servers do not notice their map problems at 20 players. They notice them the first weekend the city fills up. Textures load late, people fall through floors in the hospital, the police station takes ten seconds to render, and someone in Discord posts "is the server lagging or is it just me?"

Usually it is not the server. It is the client trying to stream far more custom map data than it can hold, in the exact places where everyone gathers. This post is the process I use to keep custom interiors (MLOs) workable once a server goes past 64 slots. None of it needs special tools beyond what FiveM and a few community utilities already give you.

Why player count changes the problem

A custom interior is streamed to every client that gets near it. One player standing in an MLO only needs to load that MLO. Forty players spread across the city means the server is fine, but each client still has to load whatever is around it, plus everything every nearby player's vehicle, ped and clothing brings in.

The places that hurt most are predictable: the main hospital, the main police station, the central garage, the mechanic shop and whatever club or bar is popular this month. These are the spots where crowds, emergency vehicles, custom cars and custom interiors all overlap. A map that looks perfect in a solo test can be the one that tips a mid-range PC over its texture budget when twenty people are standing in front of it.

Remember that past 32 slots you are running OneSync, and with it larger culling and population behaviour. That is all good for scale, but it means more entities near the player at peak times, so the map has less headroom than it did on a small test server.

Step 1: Audit what you are actually streaming

Before optimizing anything, list it. Go through your resources folder and write down every map and MLO resource, what it replaces or adds, and where it is in the world. You are looking for three things:

  1. Duplicates. Two versions of the same interior, often an old one left behind after an upgrade. Both stream, both collide, and both cost memory.
  2. Overlaps. Two different maps that touch the same area. Overlapping collisions are the most common cause of "I fell through the floor" reports.
  3. Dead weight. Interiors nobody uses. If no job, script or storyline points players to a building, it is paying a memory cost for nothing.

On most servers I have helped with, this audit alone removes several resources. That is the cheapest optimization you will ever do.

Step 2: Watch the warnings FiveM already gives you

FiveM's client console warns about oversized assets when they load. Run the server locally, fly around each custom interior, and keep the console open. Any map that repeatedly throws size warnings is a candidate for rework or replacement.

Also use the built-in resource monitor (resmon) while standing inside each interior. MLOs are mostly streamed data rather than scripts, so the monitor will not show the texture cost directly, but it will show you if a map ships with a bundled script (doors, elevators, lights) that is burning client time every frame. Bundled scripts that tick constantly with no player nearby are worth flagging to the creator.

For deeper problems, the client profiler (profiler record in the F8 console, then view the capture) shows frame spikes while you walk through a building. A spike every time you cross a doorway usually points at a portal or room setup issue, not the textures.

Step 3: Cut texture weight where nobody looks

Texture dictionaries are usually where the memory goes. A single interior can ship with very large textures for small things: a poster, a floor mat, a label on a box. At normal view distances, nobody can tell the difference between a huge texture and one a quarter of its size.

Practical rules:

  • Downscale small-surface textures. Signs, posters, decals, small props. These rarely need high resolutions.
  • Keep detail where players stand close. Reception desks, the main counter, the cells in a police station. Players stare at these during roleplay, so keep them sharp.
  • Check for duplicated textures across maps. Some creators each ship the same generic textures under different names. If you control the files, sharing one dictionary helps.
  • Respect the license. Only edit files if the asset's license allows it. If a map is escrowed, you cannot change it, so performance has to be a buying criterion instead (more on that below).

After any change, retest in the same spot. Texture work is easy to overdo, and a hospital that looks blurry is a roleplay problem of its own.

Step 4: Fix collisions and portals before players find them

Collision issues show up as people falling through floors, getting stuck in walls, or vehicles launching off a ramp that should not exist. With more players, these happen more often simply because more people walk more paths.

Things to check in every interior:

  • Walk every room, stair and doorway on foot. Then do it again in a vehicle where relevant (garages, ambulance bays, sally ports).
  • Open and close every door. Make sure doors locked by your door-lock script line up with the actual door models.
  • Look through windows and doorways from outside. If the inside pops in late or vanishes, the portals or room boundaries are wrong.
  • Check the transition between the MLO and the surrounding street. Seams are where overlapping maps usually fight.

If you find problems in a paid map, report them to the creator with coordinates and a short clip. Good creators fix these. If they do not, that tells you something for your next purchase.

Step 5: Spread the load across the city

This one is about design, not files. If every important building is in the same few blocks, every client near downtown is loading all of them at once.

Some servers deliberately spread key locations: hospital in one district, main PD in another, the busiest mechanic somewhere else. That is not always possible, and it has roleplay trade-offs (response times, travel), but it is worth thinking about when you choose which interiors to add. If you are deciding how many custom interiors a server of your size really needs, this breakdown of fivem server mlos by player count is a good starting point for planning before you buy.

Step 6: Test under real load, not on an empty server

Solo testing finds broken files. It does not find performance problems. For that you need people.

A simple load test:

  1. Schedule a 30 to 60 minute session with as many staff and trusted players as you can get.
  2. Pick the three busiest locations and have everyone gather there in turns, with emergency vehicles and custom cars.
  3. Ask testers to note their PC specs and FiveM graphics settings (especially the texture budget settings), and to report anything that loads late or flickers.
  4. Record the server's own metrics during the test so you can separate client-side streaming issues from server-side lag.

Keep a short spreadsheet: location, what went wrong, which testers saw it, and what spec they were running. Patterns appear quickly. If only low-VRAM players report the hospital, it is texture weight. If everyone sees it, it is more likely collision, portals or a conflict.

Step 7: Make performance part of buying

The easiest optimization is choosing well in the first place. Before you add an interior, ask the seller or check the listing for:

  • Whether the files are open or escrowed (can you optimize them later?).
  • Whether there are known conflicts with popular base maps.
  • Real in-game footage, ideally walking through the whole interior, not just one angle.
  • How updates are delivered when the game or FiveM changes.

Whatever store you use, whether that is a creator's own page, a marketplace or a specialist shop like fivemmlos.com, ask for that information before you pay. Five minutes of questions can save you a weekend of debugging.

A short checklist to keep

  • One version of each interior, no leftovers.
  • No overlapping maps in the same area.
  • Console clean of repeated size warnings near busy locations.
  • Bundled map scripts checked in resmon.
  • Small-surface textures reasonable, close-up surfaces sharp.
  • Every door, stair and vehicle entry walked by hand.
  • Key locations not all stacked in the same few blocks.
  • One real load test before every major map change.

Final thoughts

Big servers do not need fewer custom interiors. They need fewer wasted ones, and they need the ones they keep to be clean. Do the audit, watch the warnings, test with real people, and treat performance as a buying criterion rather than a problem you fix after launch. Your players will not notice that you did any of this, and that is the point.

If you have your own tricks for keeping a busy city smooth, I would like to hear them in the comments.

Top comments (0)