Skip to content

MetaDen Tailor System

A premium tailor-job experience for FiveM servers, combining progression-based clothing crafting, configurable delivery contracts, and seamless wearable metadata integration for crafted apparel.

Overview

  • Crafting categories: Tops, Bottoms, Accessories, Materials.
  • Tailor progression using Config.Levels thresholds.
  • Delivery order loop with configurable pickup/dropoff/payment behavior.
  • Optional item-driven clothing equip/unequip using recipe clothing metadata.
  • Framework bridge pattern via metabridge.

Requirements

  • FXServer (cerulean, lua54).
  • metabridge.
  • ox_lib.
  • oxmysql.

Installation

  1. Import database.sql into your server database.

  2. Place resource folder as metaden-tailor.

  3. Ensure dependency order:

    cfg
    ensure ox_lib
    ensure oxmysql
    ensure metabridge
    ensure metaden-tailor
  4. Configure config.lua for your recipes, levels, interactions, and delivery payment routing.

Configuration

Top-level keys

KeyTypeDefaultNotes
Config.debugbooleanfalseExtra logging where implemented.
Config.EnableClothingCommandsbooleanfalseEnables /tailor_toggle_cloth, /tailor_dump, /tailor_capture_cloth.
Config.UseCustomInteractionUIbooleantruetrue: custom proximity + NUI flow. false: target-wrapper fallback flow.
Config.UseTargetInteractionUIbooleantrueWhen target zones are active, toggles target->NUI behavior.
Config.VanModelstring'speedo'Delivery van model spawn name.
Config.TailorRecipestable<string, Recipe[]>n/aRecipe catalog keyed by category.
Config.Levelstable<number, number>n/aXP threshold map by level index.
Config.MaterialsMaterialPrice[]n/aMaterial menu/shop pricing list.
Config.OrderPickupLocationvector4[]n/aRandom pickup points for order materials.
Config.VanSpawnLocationvector4n/aSpawn location for delivery van.
Config.ReturnSpawnLocationvector3n/aReturn/check-in location.
Config.DeliveryLocationsvector4[]n/aRandom delivery destinations.
Config.DeliveryAmountMin/Maxnumber5 / 30Crafted item amount range per delivery order.
Config.DeliveryRewardMin/Maxnumber70 / 180XP reward range per delivery completion.
Config.DeliveryRep.maxRepnumber1000Upper bound used for payout scaling.
Config.DeliveryPaymentDeliveryPaymentConfign/aPayout routing (event, bank, item).

Recipe schema

lua
---@class Recipe
---@field name string
---@field title string
---@field price number
---@field level number
---@field duration number -- ms
---@field required { item: string, amount: number }[]
---@field reward { item: string, amount: number, experience: number }[]
---@field clothing? ClothingEntry[]

ClothingEntry schema

lua
---@class ClothingVariant
---@field drawable number
---@field texture? number

---@class ClothingEntry
---@field type 'component'|'prop'
---@field component? number -- required when type='component'
---@field prop? number      -- required when type='prop'
---@field male? ClothingVariant
---@field female? ClothingVariant
---@field drawable? number  -- fallback when male/female not provided
---@field texture? number

DeliveryPaymentConfig schema

lua
---@class DeliveryEventConfig
---@field name string
---@field args? any[] -- supports templates: '{playerId}', '{amount}', '{reason}', '{business}', '{citizenId}'

---@class DeliveryPaymentConfig
---@field method 'event'|'bank'|'item'
---@field reason string
---@field itemName string
---@field business string
---@field event DeliveryEventConfig
---@field extraEvents? DeliveryEventConfig[]

Troubleshooting

  • Clothing does not apply:
    • Verify ped model slot/drawable/texture values.
    • Use /tailor_dump and /tailor_capture_cloth to capture correct values.
  • Missing notifications:
    • Ensure metabridge is started and notify path is available.
  • Delivery payout not received:
    • Re-check Config.DeliveryPayment.method and event target names/args.