Een stapsgewijze gids om te bouwen, exporteren, verpakken, testen, optimaliseren en verzenden FiveM MLOs met Blender, Sollumz, CodeWalker en OpenIV — plus probleemoplossing, QA en prestatiebudgetten.
TL;DR: Je stelt tools in (Blender + Sollumz, CodeWalker, OpenIV), modelleert een interieur met de juiste topologie en texel-dichtheid, maakt collisies (YBN), portalen/kamers/occlusie (YTYP), exporteert met Sollumz, verpakt een resource met een fxmanifest.lua, valideer in-game en voldoe aan prestatiebudgetten met Resmon.
Voor wie deze gids is bedoeld
FiveM Server Owners and Asset Creators
Voordat u begint: tools & downloads
Vereist
- Blender (3.x of nieuwer): https://www.blender.org/download/
- Sollumz (Blender add-on voor RDR2/GTAV-formaten): https://github.com/Skylumz/Sollumz
- CodeWalker (kaarteditor / YTYP / portaal tools): GTAForums thread → https://github.com/dexyfex/CodeWalker
- OpenIV (asset exploratie, textuurpaden):
- FiveM-documentatie (resource manifest, streaming): https://docs.fivem.net/
Leuk om te hebben
- Visual Studio Code voor het bewerken van manifests.
- Afbeeldingseditor (Photoshop, Affinity, GIMP) voor texturen.
Licentienotitie: Respecteer Rockstar/Cfx-beleid en licenties van derden. Herdistribueer geen propriëtaire game-assets buiten wat is toegestaan.
Snelle start (10 minuten durende overzicht)
- Installeren Blender + Sollumz en schakel de add-on in.
- Maak een nieuwe scène in meters (1 Blender-eenheid = 1 meter). Importeer indien nodig referentiemeshes.
- Modelleer uw interieur modulair; houd de texeldichtheid consistent; vermijd onzichtbare vlakken.
- Creëren collision meshes (eenvoudige primitieven) en markeer ze voor YBN-export.
- In CodeWalker, definieer kamers/portals/occluders en genereren YTYP items.
- Exporteer met Sollumz → YDR/YDD/YBN/YTYP waar van toepassing.
- Bouw een resource map met
streamen eenfxmanifest.lua. - Resource toevoegen aan
server.cfg, start server, valideren in-game. - Profiel met Resmon; repareer lekken, overtekeningen en zware materialen.
Kijk, ik heb dat ook meegemaakt.
Je loopt rond op je server, je ziet een gebouw dat het zou zijn perfect plek voor een garage of een verborgen kartel schuilplaats, en je loopt naar de deur... en niets. Gewoon een platte textuur. Een nepdeur. Het maakt je gek, toch?
Dat gevoel is precies waarom ik begon met het maken van MLOs (Map Loader Objects). Ik wilde gewoon de deur openen.
Maar toen opende ik de tutorials, en plotseling schreeuwden mensen over “vertex paints” en “ytyps” en “portals”, en ik wilde eerlijk gezegd bijna stoppen. Het voelde alsof ik een architectendiploma nodig had om alleen al een doos in een videogame te plaatsen.
Dus, haal diep adem. Pak een koffie (of een Red Bull, ik oordeel niet). Ik ga je hier doorheen loodsen zoals ik wou dat iemand het aan mij had uitgelegd—rommelig, onvolmaakt, maar begrijpelijk.
Hier leest u hoe u daadwerkelijk interieurs voor FiveM gaat maken.
De Toolkit (Sla dit niet over)
Je kunt geen huis bouwen zonder hamer. Voor GTA V interieurs heb je een specifieke set gereedschappen nodig. Het is vervelend om in te stellen, ik weet het, maar je hoeft het maar één keer te doen.
- Blender: De industriestandaard voor 3D-modellering. Het is gratis. Het is in het begin intimiderend, maar we hebben maar een fractie nodig van wat het kan doen.
- Sollumz: Dit is een plugin voor Blender. Zie het als de vertaler. Blender spreekt “3D”, maar GTA V spreekt “Rage Engine”. Sollumz vertaalt je model zodat de game het begrijpt.
- CodeWalker: De map-editor. U gebruikt deze om uw gebouw in de wereld te plaatsen en het spel te vertellen: “Hé, dit is een interieur.”
- OpenIV: Je hebt dit waarschijnlijk al. Het is de bestandsbeheerder/viewer.
Korte zijsprong: Als je Sollumz nog niet hebt geïnstalleerd, doe dat dan eerst. Er zijn een miljoen YouTube video's over hoe je het installeert. Ik wacht hier wel.
Stap 1: De “Shell” (Het bouwen van de doos)
Oké, dus een MLO is niet zomaar een kamer. Het is een omhulsel.
Stel je voor dat je een poppenhuis bouwt. Je hebt de buitenmuren (het gebouw dat je vanaf de straat ziet) en de binnenkamer.
- Open Blender. Verwijder die standaard kubus. (Het is traditie. Sorry, kubus.)
- Importeer het Originele Model: Als je een bestaand GTA-gebouw aanpast, moet je dat gebouw importeren met Sollumz zodat je weet waar je het gat voor de deur moet snijden.
- Snijd het gat: Verwijder letterlijk de vlakken waar de deur moet komen.
- Model de Kamer: Maak een eenvoudige doos achter dat gat. Ga nog niet te wild met details. Maak gewoon een vloer, muren en een plafond.
Het “Inside Out”-shirtprobleem
Hier is iets waar ik een week lang mijn haar uit trok: Normals.
In 3D heeft een muur maar één kant. Als de “Normaal” (de voorkant) naar buiten wijst, en je staat binnen de kamer, zal de muur onzichtbaar zijn. Je moet ervoor zorgen dat de blauwe lijnen (normalen) naar binnen de kamer wijzen.
Als je in het spel laadt en je muren zijn onzichtbaar, zijn het je normals. Het zijn altijd de normals.
Stap 2: Texturing (Muren schilderen)
Je kunt het niet zomaar grijs laten. GTA haat modellen zonder textuur.
In Blender/Sollumz pas je shaders toe. Je gebruikt meestal standaard GTA shaders (zoals gta_default). U koppelt een textuur - zoals een bakstenen muur of een betonnen vloer - aan uw mesh.
Pro tip: Houd je texturen “Powers of Two.” $512 bij 512$, $1024 bij 1024$, etc. Als je probeert een $500 bij 500$ afbeelding te gebruiken, zal het spel van slag raken en crashen. Dat heb ik op de harde manier geleerd.
Stap 3: Het Angstige Deel (Portals)
Dit is het deel dat ieders brein breekt.
A Portaal is in feite een onzichtbaar gordijn. Het vertelt de game engine: “Wanneer de speler door deze deuropening kijkt, begin dan met het renderen van de binnenkant van de kamer. Wanneer ze weggaan, stop dan met het renderen ervan om geheugen te besparen.”
Zonder portalen krijg je de “leegte”. Weet je wel, waar je door de deur kijkt en het lijkt alsof je in de Blauwe Hel onder de kaart staart? Ja.
In Sollumz, het creëren van een portaal omvat:
- Selecteer de vertices van je deuropening.
- Een “Room ID” creëren voor buiten (Limbo) en een “Room ID” voor binnen (Kamer 1).
- Verbinden ze.
Zie het als een luchtsluis op een ruimteschip. Je moet de overgang tussen de “Buitenwereld” en de “Binnenruimte” afsluiten.”
Stap 4: De Export en de “YTYP”
Zodra je model klaar is, exporteer je het als een .ydr (drawable) en een .ybn (collision). Maar de game weet nog niet dat het bestaat.
Je hebt een .ytyp bestand. Dit is in feite een manifest—een lijst—die GTA vertelt: “Ik heb een nieuw object, hier is de naam, en hier zijn de eigenschappen.”
- Open CodeWalker.
- Maak een nieuwe YTYP.
- Voeg uw nieuwe model toe via de MLO Archetype definitie.
- Hier definieer je de MLO vlaggen.
Eerlijk? De eerste keer dat je dit doet, werkt het niet. Het werkt gewoon niet. Je laadt in, loopt naar je gebouw en valt door de vloer. Het is een rite de passage.
Meestal betekent dit dat je Botsing (.ybn) niet is uitgelijnd met je visuele model. Of, je bent vergeten om “Embedded Collision” aan te vinken in de exportinstellingen in Sollumz. Vink dat vakje aan.
Stap 5: Plaatsen in de Wereld (YMAP)
Laatste stap. Je hebt het object. Nu moet je het plaatsen.
In CodeWalker:
- Open het project.
- Maak een nieuwe .ymap.
- Plaats je nieuwe MLO object precies waar het op de map past.
- Sla alles op.
Een laatste gedachte
Ik laat dit lineair klinken, maar het is echt rommelig. Je zult uren besteden aan het repareren van een flikkerende lichttextuur of proberen uit te zoeken waarom regen in je woonkamer valt (dat is een “Occlusion” probleem, maar dat bewaren we voor een andere keer).
Begin klein. Serieus. Probeer niet meteen een politiebureau te bouwen voor je eerste project. Bouw een letterlijke doos met een deur. Zodra je die doos kunt betreden zonder door de wereld te vallen, ben je officieel een MLO-ontwikkelaar.
Het gevoel van een kamer binnenlopen jij gebouwd, je vrienden zien roleplayen in een ruimte die gisteren niet bestond? Dat is het beste gevoel ter wereld. Het is de hoofdpijn waard.
Wat moet je nu doen?
Je moet je handen vuil maken.
Wil je dat ik je begeleid door de specifieke installatie-instellingen voor de Sollumz-plugin in Blender, of moeten we ons richten op het oplossen van een specifiek probleem dat je al ziet?
Tips voor het maken van MLOs
- Schaal: Werk in meters. Deuren ~2,0–2,2m hoog; balies ~0,9m; trappen stijgen ~0,17m.
- Collecties:
INT_MLO,COLLISIONS,LIGHTS,PROPS_STATIC,PROPS_INSTANCED. - Naamgeving:
int_shop_main_wall_A,coll_floor_A,door_backroom_A. Consistente voorvoegsels besparen uren later. - Draai-/oorsprongspunt: Stel zinvolle oorsprongen in (scharnieren voor deuren), pas transformaties toe (Ctrl‑A) vóór export.
Modelleren & topologie best practices
- Modulair: Bouw muren/vloeren/plafonds als modules om te hergebruiken en te onderhouden.
- Topologie: Geef de voorkeur aan quads, houd de edge flow schoon, vermijd overbodige loops.
- Texel dichtheid: Doelwit ~512–1024 px/m voor hero oppervlakken; 256–512 px/m voor achtergrond.
- Trim sheets & atlases: Verminder het aantal materialen; bundel props in atlases.
- Verberg verborgen vlakken: Verwijder onzichtbare geometrie (achter muren, onder vloeren) om overdraw te verminderen.
Materialen, texturen & verlichting
- PBR: Gebruik BaseColor/Roughness/Metallic/Normal. Houd materialen beperkt (≤ 8 voor kleine interieurs).
- Textuur groottes: Geef de voorkeur aan 1k–2k; vermijd massieve 4k, tenzij absoluut noodzakelijk. Gebruik BC7 of DXT waar van toepassing.
- Emissives: Voor borden/LED's; houd de intensiteit redelijk om bloom-problemen te voorkomen.
- Gebakken belichting: Optionele lightmaps kunnen het interieur stabiel houden gedurende de dag.
- Hergebruik vanilla: Gebruik met OpenIV bestaande textures/shaders als de licentie dit toestaat.
Collisions (YBN)
- Gebruik low-poly primitieven (dozen/cilinders) om beloopbare oppervlakken en blockers te benaderen.
- Scheid collision collection (
COLLISIONS) en houd namen consistent (bijv.,coll_wall_A). - Deuren/ramen die niet doorzichtig moeten zijn: zorg ervoor dat de botsing de opening bedekt of wordt geschakeld met deurslogica.
- Veelvoorkomende valkuil: botsingen met hoge details veroorzaken fysica-problemen—vereenvoudigen.
Kamers, portalen, occlusie & YTYP
- Kamers: Logische ruimtes (winkel, achterkamer, gang) met portalen bij deuropeningen.
- Portals: Zichtbaarheidspoorten; voorkom het renderen van kamers die je niet kunt zien.
- Occluders: Grote oppervlakken die de rendering erachter blokkeren (bijv. solide muren).
- YTYP: Definieert archetypen, LOD-afstanden, kamer-/portaalverbindingen.
- In CodeWalker: kamers toewijzen, portalen plaatsen, occluders toevoegen, genereren YTYP. Valideer met CW's visualisatietools (kamers kleuren, portaallijnen).
Exporteren met Sollumz
- Installeer vanuit GitHub, schakel add-on in de Blender-voorkeuren in.
- Toewijzen Sollumz shaders en exporteer flags indien nodig.
- Controleren schaal en rotaties worden toegepast (Ctrl‑A) vóór export.
- Export doel(en):
- YDR/YDD voor tekenbare modellen / drawables met skeletten.
- YBN voor botsingen.
- YTYP voor archetype/kamer/portaaldefinities (vaak gefinaliseerd via CodeWalker).
Het verpakken van de resource (fxmanifest)
Mapstructuur
[mlo-yourinterior] ├─ fxmanifest.lua └─ stream/ ├─ mlo_shop.ydr ├─ mlo_shop.ybn ├─ mlo_shop.ytyp └─ props/ └─ ...
Minimaal 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 configuratie
Toevoegen aan uw server.cfg:
ensure mlo-yourinterior
Zie de officiële documentatie voor manifests & streaming: https://docs.fivem.net/docs/scripting-reference/resource-manifest/resource-manifest/
In-game validatielijst
- ☐ Teleporteer naar interieur; verifieer spawn height en geen door vloeren vallen.
- ☐ Loop door elke kamer; controleer deuropeningen; geen onzichtbare muren.
- ☐ Bekijk elk portal; bevestig dat render culling werkt.
- ☐ Controleer Z-fighting bij muur/rand-intersecties.
- ☐ Cyclus tijd-van-de-dag; bevestig dat verlichting/emissieve effecten er natuurlijk uitzien.
- ☐ Sta in elke kamer; roteer camera 360°; kijk Resmon spikes.
- ☐ Test met 3–10 spelers; bekijk netwerk- en clientprestaties.
Prestatiebudgetten & Resmon
Typische doelen voor een kleine/middelgrote MLO:
- Materialen: ≤ 8–12 unieke materialen.
- Draw calls: laag houden via instancing en atlases.
- Textures: meestal 1k–2k; atlas waar mogelijk.
- Streamgrootte: richt ≤ 30–80 MB per MLO (afhankelijk van de context).
- Portals: voeg er genoeg toe om kamers te isoleren, maar niet excessief.
Profilering
- Gebruik Resmon (
F8 → resmon 1) om CPU/MS en geheugen te controleren. - Schakel interieurs in, verberg props om knelpunten te isoleren.
- Als er pieken verschijnen bij het kijken naar een deur, ga dan opnieuw naar portals/occluders.
Zie voor een uitgebreider serverbreed afstemmingshandboek Optimaliseer prestaties op FiveMX → /fivem-server-optimalisatie/.
Probleemoplossing
| Symptoom | Waarschijnlijke oorzaak | Oplossing |
|---|---|---|
| Val door de vloer | Ontbrekend/offset YBN | Lijn collision uit met render mesh; pas transforms toe; exporteer YBN opnieuw |
| Zie andere kamers door muren heen | Ontbrekend/onjuist portal/occluder | Definieer kamers correct in CodeWalker; voeg occluders toe; update YTYP |
| Zwarte/onzichtbare meshes | Shader/textuurpad probleem | Gebruik de juiste Sollumz shader; verifieer texture paden; zorg dat YTDs aanwezig zijn |
| Knipperen (Z-fighting) | Coplanare vlakken | Offset of voeg gezichten samen; pas de dikte van de rand aan |
| FPS tank gericht op deuropening | Overdraw door portaalopening | Portaal vergroten/verplaatsen; occluders toevoegen; materialen vereenvoudigen |
| Deuropeningen blokkeren speler | Collision overlaps | Bewerk YBN om doorgang vrij te maken; scheid deur-collider |
| Emissives te helder | Intensiteit/tonemapping | Lagere emissieve waarden; vermijd puur wit/emissieve spam |
FAQ
Heb ik een collision (YBN) nodig voor elke mesh?
Nee. Alleen voor beloopbaar of interactief oppervlakken. Decoratieve elementen kunnen zonder collision blijven.
Hoeveel portalen moet een interieur hebben?
Genoeg om logische kamers/hallen te verdelen en rendering tussen kamers te blokkeren - typisch één per deuropening/opening.
Kan ik GTA V-texturen hergebruiken?
Vaak ja voor gebruik in het spel, maar niet herverspreiden assets buiten toegestane voorwaarden. Controleer OpenIV-paden en licenties.
Mijn YTYP laadt niet.
Controleer de manifestbestandslijst, bestandsnamen en zorg ervoor this_is_a_map 'yes' is ingesteld.
Welke Blender-versie werkt het beste met Sollumz?
Huidige 3.x-releases worden vaak gebruikt; bevestig compatibiliteit op de Sollumz GitHub.
Bronnen & verdere lectuur
- FiveM Documentatie (resource manifests, streaming): https://docs.fivem.net/
- Sollumz (GitHub): https://github.com/Skylumz/Sollumz
- CodeWalker (GTAForums thread & builds): https://github.com/dexyfex/CodeWalker
- OpenIV:
- GTAV Modding (algemene wiki): https://gtamods.com/wiki/Main_Page
Wat nu? (Interne links & CTA's)
- Blader door MLO's → /fivem-mlos/ (Voorbeelden, inspiratie en kant-en-klare kaarten.)
- Beste MLOs Gids → /free-fivem-mlos/ (Samengestelde selecties, voor- en nadelen, prestatie-opmerkingen.)
- Optimaliseer je server → /fivem-server-optimalisatie/ (Resmon-gebruik, tips voor het streamen van assets.)
- Hulp nodig met mappen? → Neem contact op met FiveMX (aangepaste interieurs, optimalisatiebeoordelingen).
Assets kopiëren en plakken (optionele starter)
Plaats deze als basis in je project en pas ze aan.
Starter fxmanifest.lua (uitgebreid)
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'
}
Aanbevolen collecties (Blender)
INT_MLO ├─ STRUCTURE ├─ PROPS_STATIC ├─ PROPS_INSTANCED ├─ LIGHTS └─ COLLISIONS
Credits: Dank aan de onderhouders van Sollumz, CodeWalker en de Cfx.re documentatie voor hun uitstekende tools en documentatie.
