Skip to main content
TRACK A·ADD CONTENT·Verified June 2026 · Lua 5.4 · ox_lib 3.x
Learning with an AI assistant?
Copies this lesson plus 2026 ground rules (no lua54 'yes', Cfx.re Portal, correct callback signatures) as a ready-to-paste mentor prompt.

Map an interior and stream it in FiveM

Custom interiors turn a generic GTA building into YOUR space - a police station, a gang hideout, a player apartment. This lesson walks the full pipeline from CodeWalker to in-game, covering the file types that confuse every beginner and the exact fxmanifest lines that make it work.

You'll build
A custom MLO interior mapped with CodeWalker, exported as a FiveM resource, and streamed into your server.
Time
~40 minutes
You need
CodeWalker (free GTA V mapping tool), a local FiveM server, and basic understanding of YMAP/YBN files.
You'll learn
What MLOs are, how YMAPs and YTYP files define interiors, using CodeWalker to place and export interiors, writing the correct fxmanifest, and streaming the interior in-game.
BEFORE YOU START

Build it

Create the interior in CodeWalker

Your YMAP and YTYP files are exported.
  1. Open CodeWalker, load the GTA V world
  2. Navigate to the building you want to map (e.g., an empty warehouse)
  3. Use the object browser to place walls, floors, furniture, lighting
  4. Once satisfied, Export → select both YMAP and YTYP formats

Export names must match. If your interior is called my_interior, you get:

code
my_interior.ymap
my_interior.ytyp

Create the resource structure

The FiveM resource is ready.
code
resources/my_interior/
fxmanifest.lua
stream/
my_interior.ymap
my_interior.ytyp
my_interior.ybn       <- any bound files
my_interior.ydd       <- any drawable dictionary
my_interior.ydr       <- any drawable model
my_interior.yft       <- any fragment model
my_interior.ytd       <- any texture dictionary

Write the fxmanifest

FiveM streams your interior.
code
fx_version 'cerulean'
game 'gta5'

description 'My Custom Interior'

files {
'stream/*.ymap',
'stream/*.ytyp',
'stream/*.ybn',
'stream/*.ydd',
'stream/*.ydr',
'stream/*.yft',
'stream/*.ytd',
}

data_file 'DLC_ITYP_REQUEST' 'stream/my_interior.ytyp'

this_is_a_map 'yes'

Critical lines:

  • files {} - lists every streamed asset
  • data_file 'DLC_ITYP_REQUEST' - loads the YTYP (archetype definitions)
  • this_is_a_map 'yes' - tells FiveM this resource adds map data

Verify placement and fix issues

The interior is correctly positioned with no gaps.

Join the server, go to the building, and check:

  • Do the walls appear inside the building shell?
  • Is the lighting correct (not too dark/bright)?
  • Can you walk through the space without falling through the floor?

Common fixes:

  • Floating objects: adjust Z position in CodeWalker and re-export
  • No collision: the YBN (bound) file is missing - add it to files {}
  • Missing textures: the YTD is missing - add it to files {}

Keep reading the full lesson

Sign in to start, then unlock every step of this lesson and the full FiveM School with a membership.

Still ahead in this lesson
  • Common failures

The remainder of Map an interior and stream it in FiveM is available to FiveM School members.