propsytypstreaming9 min read · updated 9/11/2026

Adding custom props to a FiveM server

Signs, furniture, barriers, food models for a restaurant script — custom props are everywhere on roleplay servers. A prop is a model plus textures plus a small definition file that tells the game the model exists. Miss the definition and the prop simply never appears.

Short answer: Stream the prop’s .ydr (model), .ytd (textures) and optionally .ybn (collision) in stream/, and include a .ytyp that defines the archetype; declare it with data_file 'DLC_ITYP_REQUEST' 'stream/myprops.ytyp'. Spawn props from scripts with RequestModel and CreateObject, or place them permanently in a .ymap. Check model names with IsModelInCdimage and keep textures small.

Custom Props in FiveM: Streaming .ydr Models with a .ytyp

#The files

FileContains
.ydrThe prop model (drawable)
.ytdIts textures (or embedded in the ydr)
.ytypArchetype definitions: name, texture dictionary, LOD distance, flags
.ybnCollision (optional)
.ymapPlaced instances in the world (optional)
fxmanifest.lua
fx_version 'cerulean'
game 'gta5'

data_file 'DLC_ITYP_REQUEST' 'stream/myprops.ytyp'

#Spawning from a script

client.lua
local model = `my_sign_01`
if not IsModelInCdimage(model) then return print('prop not found') end
RequestModel(model)
while not HasModelLoaded(model) do Wait(0) end

local obj = CreateObject(model, 215.0, -810.0, 30.7, false, false, false)
PlaceObjectOnGroundProperly(obj)
FreezeEntityPosition(obj, true)
SetModelAsNoLongerNeeded(model)

Networked props that everyone must see are better created on the server — see server-side entities.

#Permanent placement with a .ymap

For props that are part of the world (a sign on a building, benches in a park), place them in CodeWalker and save a .ymap in the same resource. They load like map data and cost no script time — see ymaps explained and CodeWalker map editing.

#Common problems

SymptomCause
Prop never appears.ytyp missing or not declared with DLC_ITYP_REQUEST
Prop is pink/untexturedTexture dictionary name in the ytyp does not match the .ytd
Players walk through itNo collision (.ybn) or collision not in the ytyp
Pops in lateLOD distance in the ytyp too small

Large prop packs add texture memory — see oversized assets.

Questions

How do I add a custom prop to FiveM?
Stream its .ydr, .ytd and .ytyp in a resource and declare the ytyp with data_file 'DLC_ITYP_REQUEST'.
Why is my custom prop invisible?
Usually the .ytyp is missing or not declared, so the game does not know the archetype.
How do I spawn a custom prop?
RequestModel, wait for HasModelLoaded, then CreateObject.
How do I place props permanently?
Save them into a .ymap with CodeWalker and stream it.

Ready to pick a map?

Twelve themes on three base map styles, $8 each, instant download.