Framework hub
Move into the QBCore landing page to compare verified scripts, framework fit, and install-ready products built for modern FiveM servers.
Open QBCore hubUse this guide to narrow the framework decision, then move into the core commercial hubs for verified scripts, curated bundles, and a faster server launch path.
Framework hub
Move into the QBCore landing page to compare verified scripts, framework fit, and install-ready products built for modern FiveM servers.
Open QBCore hubFramework hub
Use the ESX landing page to compare framework-specific resources, launch guidance, and premium products that fit ESX-first servers.
Open ESX hubPremium catalog
Move from research into the main shop to compare real products, framework labels, screenshots, and production-ready quality signals.
Open premium shopLearn how to optimize FiveM server loading times by managing resources, using efficient mods, and choosing the right server host to eliminate annoying delays.
You're scratching your head about this Patreon switch for FiveM, right? Thinking, "Another platform? Seriously?" Yeah, I get it. Change can be a pain. But...
Ready to turn your FiveM or Discord community into a profit‑making hub? Our step‑by‑step guide walks you through setting up a Tebex store, choosing a stunning design, adding game‑boosting perks, and m
A step‑by‑step guide to build, export, package, test, optimize, and ship FiveM MLOs with Blender, Sollumz, CodeWalker, and OpenIV—plus troubleshooting, QA, and performance budgets.


A step‑by‑step guide to build, export, package, test, optimize, and ship FiveM MLOs with Blender, Sollumz, CodeWalker, and OpenIV—plus troubleshooting, QA, and performance budgets.
This guide is part of our , covering everything from MLO design to scripting, vehicle modding, and building your creator brand.
TL;DR: You’ll set up tools (Blender + Sollumz, CodeWalker, OpenIV), model an interior with proper topology and texel density, create collisions (YBN), portals/rooms/occlusion (YTYP), export with Sollumz, package a resource with an
fxmanifest.lua, validate in-game, and hit performance budgets using Resmon.
Creators who want production‑ready FiveM interiors (MLOs) with solid performance and clean packaging. You should be comfortable with Blender basics and running a FiveM server locally.
Required
Nice to have
Licensing note: Respect Rockstar/Cfx policies and third‑party licenses. Do not redistribute proprietary game assets beyond what is permitted.
stream and an fxmanifest.lua.server.cfg, start server, validate in-game.You’re walking around your server, you see a building that would be the perfect spot for a mechanic shop or a hidden cartel hideout, and you walk up to the door… and nothing. Just a flat texture. A fake door. It drives you crazy, right?
That feeling is exactly why I started making MLOs (Map Loader Objects). I just wanted to open the damn door.
But then I opened up the tutorials, and suddenly people were screaming about “vertex paints” and “ytyps” and “portals,” and I honestly almost quit right there. It felt like I needed a degree in architecture just to put a box in a video game.
So, take a deep breath. Grab a coffee (or a Red Bull, I don’t judge). I’m going to walk you through this the way I wish someone had explained it to me—messy, imperfect, but understandable.
Here is how you actually start creating interiors for FiveM.
You can’t build a house without a hammer. For GTA V interiors, you need a specific set of tools. It’s annoying to set up, I know, but you only have to do it once.
Quick aside: If you haven’t installed Sollumz yet, go do that first. There are a million YouTube videos on how to install it. I’ll wait here.
Okay, so an MLO isn’t just a room. It’s a shell.
Imagine you’re building a dollhouse. You have the outer walls (the building you see from the street) and the inner room.
The “Inside Out” Shirt Problem
Here is something that made me pull my hair out for a week: Normals.
In 3D, a wall only has one side. If the “Normal” (the front face) is pointing outwards, and you’re standing inside the room, the wall will be invisible. You need to make sure the blue lines (normals) are facing into the room.
If you load into the game and your walls are invisible, it’s your normals. It’s always the normals.
You can’t just leave it gray. GTA hates untextured models.
In Blender/Sollumz, you apply shaders. You’ll usually use standard GTA shaders (like gta_default). You map a texture—like a brick wall or concrete floor—to your mesh.
Pro tip: Keep your textures “Powers of Two.” $512 \times 512$, $1024 \times 1024$, etc. If you try to use a $500 \times 500$ image, the game will throw a fit and crash. I learned that the hard way.
This is the part that breaks everyone’s brain.
A Portal is basically an invisible curtain. It tells the game engine: “When the player looks through this doorway, start rendering the inside of the room. When they leave, stop rendering it to save memory.”
Without portals, you get the “void.” You know, where you look through the door and it looks like you’re staring into the Blue Hell under the map? Yeah.
In Sollumz, creating a portal involves:
Think of it like an airlock on a spaceship. You need to seal the transition between “Outside World” and “Inside Room.”
Once your model is ready, you export it as a .ydr (drawable) and a .ybn (collision). But the game doesn’t know it exists yet.
You need a .ytyp file. This is basically a manifest—a list—that tells GTA, “I have a new object, here is its name, and here are its properties.”
Honestly? The first time you do this, it won’t work. It just won’t. You’ll load in, walk to your building, and fall through the floor. It’s a rite of passage.
Usually, it means your Collision (.ybn) isn’t lined up with your visual model. Or, you forgot to “Embedded Collision” on the export settings in Sollumz. Check that box.
Last step. You have the object. Now you need to place it.
In CodeWalker:
I’m making this sound linear, but it’s really messy. You will spend hours fixing a flickering light texture or trying to figure out why rain is falling inside your living room (that’s an “Occlusion” issue, but let’s save that for another day).
Start small. Seriously. Don’t try to build a police station for your first project. Build a literal box with a door. Once you can walk into that box without falling through the world, you’re officially an MLO developer.
The feeling of walking into a room you built, seeing your friends roleplay in a space that didn’t exist yesterday? That’s the best feeling in the world. It’s worth the headache.
You need to get your hands dirty.
INT_MLO, COLLISIONS, LIGHTS, PROPS_STATIC, PROPS_INSTANCED.int_shop_main_wall_A, coll_floor_A, door_backroom_A. Consistent prefixes will save hours later.COLLISIONS) and keep names aligned (e.g., coll_wall_A).YDR/YDD for drawable models / drawables with skeletons.
YBN for collisions.
YTYP for archetype/room/portal definitions (often finalized via CodeWalker).
## Packaging the resource (fxmanifest)
Folder structure
| [mlo-yourinterior] | ├─ fxmanifest.lua
└─ stream/
├─ mlo_shop.ydr
├─ mlo_shop.ybn
├─ mlo_shop.ytyp
└─ props/
└─ ... |
| --- | --- |
| Minimal fxmanifest.lua | fx_version 'cerulean' |
| game 'gta5' | name 'mlo-yourinterior'
description 'Custom MLO: YourInterior'
version '1.0.0' |
files {
'stream/*.ytd',
'stream/*.ydr',
'stream/*.ydd',
'stream/*.ybn',
'stream/*.yft',
'stream/*.ytyp',
'stream/props/*'
}
-- Ensure YTYPs are loaded
this_is_a_map 'yes'
Server config
Add to your server.cfg:
ensure mlo-yourinterior
See the official docs for manifests & streaming: [https://docs.fivem.net/docs/scripting-reference/resource-manifest/resource-manifest/](https://docs.fivem.net/docs/scripting-reference/resource-manifest/resource-manifest/)
Typical targets for a small/medium MLO:
Profiling
F8 → resmon 1) to check CPU/MS and memory.For a broader server‑wide tuning playbook, see Optimize Performance on FiveMX → .
Symptom
| Likely cause | Fix |
|---|---|
| Fall through floor | Missing/offset YBN |
| Align collision to render mesh; apply transforms; re‑export YBN | See other rooms through walls |
| Missing/incorrect portal/occluder | Define rooms properly in CodeWalker; add occluders; update YTYP |
| Black/invisible meshes | Shader/texture path issue |
| Use correct Sollumz shader; verify texture paths; ensure YTDs present Flickering (Z‑fighting) | Coplanar faces |
| Offset or merge faces; adjust trim thickness | FPS tank facing doorway |
| Overdraw due to portal gap | Resize/realign portal; add occluders; simplify materials |
| Doorways block player | Collision overlaps |
| Edit YBN to clear passage; separate door collider | Emissives too bright |
| Intensity/tonemapping | Lower emissive values; avoid pure white/emissive spam |
## Do I need a collision (YBN) for every mesh? No
**Do I need a collision (YBN) for every mesh?**
No. Only for walkable or interactable surfaces. Decorative elements can remain without collision.
How many portals should an interior have?
Enough to divide logical rooms/halls and block cross‑room rendering—typically one per doorway/opening.
Can I reuse GTA V textures?
Often yes for in‑game use, but don’t redistribute assets beyond allowed terms. Check OpenIV paths and licenses.
My YTYP won’t load.
Check manifest file listing, file names, and ensure this_is_a_map 'yes' is set.
What Blender version works best with Sollumz?
Current Blender 3.x releases are commonly used, but always confirm compatibility on the Sollumz GitHub before starting a new production project.
Put these into your project as a baseline and customize names, authors, files, and collections.
fx_version 'cerulean'
game 'gta5'
name 'mlo-yourinterior'
author 'YourName @ FiveMX'
version '1.0.0'
this_is_a_map 'yes'
files {
'stream/**.ytd',
'stream/**.ydr',
'stream/**.ydd',
'stream/**.ybn',
'stream/**.yft',
'stream/**.ytyp'
}
Recommended Blender collections:
INT_MLOSTRUCTUREPROPS_STATICPROPS_INSTANCEDLIGHTSCOLLISIONSCredits: Thanks to the maintainers of Sollumz, CodeWalker, and the Cfx.re docs for their tooling and documentation.
Launch faster
Bundles shorten the path from planning to launch by grouping the highest-leverage scripts into a cleaner commercial starting point.