Features
Menu System
The customization menu is a multi-level navigation system:
Main Menu
├── Repair (dynamic pricing)
├── Preview Mode (toggle)
├── Performance
│ ├── Engine (Levels 1-4)
│ ├── Brakes (Levels 1-4)
│ ├── Transmission (Levels 1-4)
│ ├── Suspension (Levels 1-4)
│ ├── Armor (Levels 1-4)
│ ├── Turbo (toggle)
│ └── Engine Sound (20+ sounds)
└── Customization
├── Decals (Spoiler, Bumpers, Skirts, etc.)
├── Horns (58 options)
├── Paint
│ ├── Primary / Secondary
│ │ ├── Metallic (100+ colors)
│ │ ├── Matte (20 colors)
│ │ ├── Chrome
│ │ ├── Metal (5 finishes)
│ │ └── Chameleon (70+ flip colors)
│ ├── Pearlescent
│ ├── Wheels Color
│ ├── Dashboard Color
│ ├── Interior Color
│ ├── Neon Lights
│ ├── Xenon Headlights
│ ├── Tyre Smoke
│ └── Window Tint
├── Wheels
│ ├── Sport, Muscle, Lowrider, SUV, etc.
│ ├── Benny's Original / Bespoke
│ └── Custom Tyres (toggle)
└── Stance
├── Suspension Height
├── Front / Rear Offset
├── Front / Rear Camber
├── Wheel Size
└── Wheel WidthCinematic Cameras
Every part has a dedicated camera that focuses exactly on what's being changed. The camera engine is heading-independent (lookAt based), so shots are framed correctly no matter which way the vehicle is parked. Interior parts aim at the real vehicle bones (steering wheel, seats) so they work consistently across different vehicles.
- Wheels — Low side angle with wheel zoom, showing the full wheel profile
- Bumpers — Front or rear camera angle
- Spoiler — Elevated rear angle
- Interior — Aims at the real vehicle bones (steering wheel, seats, dashboard)
- Engine Bay — Hood opens automatically, camera focuses on the engine
- Trunk — Trunk opens automatically, camera focuses on the boot
- Default — Orbital camera with mouse rotation and scroll zoom around the focused part
The player ped is hidden inside the bay (`config.hidePlayer`) so it never blocks the shot. Developers can enable `config.cameraTuning` and press `F6` to nudge any camera and copy the exact values.
HUD Handling
While the customs UI is open, ORB Customs auto-detects your server HUD (qb-hud, ps-hud, ox_hud, qs-hud, hud_apx, esx_hud, and more) and hides it — along with the native GTA HUD and minimap — then restores everything on close. No edits to your HUD resource are required. For HUDs that aren't auto-supported, the config.hud block provides an events/exports escape hatch.
Repair System
Repair pricing is calculated dynamically based on actual vehicle damage:
repairCost = (bodyDamage * 50) + (engineDamage * 50)Where bodyDamage and engineDamage are percentages (0-100). A fully destroyed vehicle costs approximately $10,000 to repair. The repair card is hidden when the vehicle has no damage.
Stance System
The stance menu opens as an overlay with real-time sliders. Each parameter has 10 positive steps and (for applicable types) 10 negative steps:
Stance values are preserved across all other modifications. Changing wheels, paint, or performance mods will not reset your stance.
Preview Mode
Toggle preview mode to freely rotate the camera around the vehicle without the UI overlay. Press the preview button again or Backspace to return to the menu.
Routing Buckets
Each player entering customs is assigned a private routing bucket (isolated game world instance). This means:
- Players cannot see each other during customization
- No interference from other players or NPCs
- Up to 100 concurrent sessions (configurable)
- Buckets are automatically recycled when players leave
- Cleanup runs on player disconnect and resource stop
Gamepad Support
Full gamepad support with D-pad navigation:
- D-pad Right — Open customs menu (when near zone)
- Standard NUI gamepad controls for menu navigation
Vehicle Properties Saving
When a player exits customs, their vehicle modifications are automatically saved to the database through the framework bridge. This ensures modifications persist across server restarts and vehicle spawns.