Chapter 01 · The Grand Archive
3D Creation Pipeline
From Blender mesh to a streamable FiveM prop.
— Crafted for Legacy —
What you're actually building
A piece of digital jewelry in GTA / FiveM is a prop — a small 3D model (a .ydr drawable) with its textures (.ytd) and metadata (.ymt) that the game can stream in, attach to a bone on the player, and render like any other prop.
There is no "jewelry" file format. You are building the same asset type Rockstar uses for a coffee cup or a suitcase, then attaching it to the neck, wrist or finger of the player skeleton.
Tools you need
- Blender 4.x — modeling and UV unwrapping.
- Sollumz — Blender addon that exports directly to GTA V formats (YDR, YDD, YTD).
- CodeWalker — inspect models, verify collisions, preview in-game before streaming.
- OpenIV — texture packing and RPF inspection (optional but useful).
- Substance Painter / Photoshop / GIMP — texture authoring (metals, gems, roughness maps).
The pipeline, step by step
- 01
Model low-poly
Jewelry sits close to the camera, but it's still a small object on-screen most of the time. Target 2k–8k tris for a full chain. Rings and studs: under 1k tris.
- 02
Bevel the edges
Sharp jewelry looks CG. Bevel every visible edge slightly (0.2–0.5 mm scale) so highlights catch the light. This is the single biggest visual win.
- 03
UV unwrap cleanly
Metals need clean UVs so the roughness / normal map wraps predictably. Diamonds and gems get their own material with a separate UV island.
- 04
Author PBR textures
Base color, metallic (near 1.0 for gold/silver), roughness (0.1–0.3 for polished, 0.5–0.7 for brushed), normal. GTA V uses a diffuse + spec workflow — Sollumz converts PBR on export.
- 05
Set up the Sollumz shader
In Blender, add a Sollumz Drawable and assign the vehicle_paint or normal_spec shader depending on the material. Set diffuse and spec samplers.
- 06
Export YDR + YTD
Sollumz > Export Drawable. You get a .ydr (mesh) and a .ytd (texture dictionary) — the two files FiveM will stream.
- 07
Preview in CodeWalker
Drop the .ydr into CodeWalker's RPF explorer or a test .ymap and confirm it renders, has correct scale, and no missing textures.
- 08
Package for streaming
Place files in your FiveM resource's stream/ folder. FiveM auto-loads any .ydr / .ytd found there.
Folder layout inside your FiveM resource
my-jewelry/
├── fxmanifest.lua
├── stream/
│ ├── jewel_chain_cuban_gold.ydr
│ ├── jewel_chain_cuban_gold.ytd
│ ├── jewel_ring_signet.ydr
│ ├── jewel_ring_signet.ytd
│ └── jewel_watch_ap_gold.ydr
├── client/
│ └── attach.lua
├── server/
│ └── main.lua
└── shared/
└── catalog.lua
Minimal fxmanifest.lua
fx_version 'cerulean'
game 'gta5'
lua54 'yes'
author 'Your Studio'
description 'Custom jewelry props + wear system'
version '1.0.0'
files {
'shared/catalog.lua',
}
shared_script 'shared/catalog.lua'
client_script 'client/attach.lua'
server_script 'server/main.lua'
-- FiveM auto-streams anything in stream/, no manifest entry needed
What this guide does NOT cover
This is a scripting-first guide. Deep 3D authoring — Blender fundamentals, UV theory, Substance material graphs — has better dedicated resources on YouTube and the Sollumz wiki. Once your .ydr and .ytd exist, jump to Chapter 02 — Scripting to wire them into the game.

