F.A.Q

3 min readUpdated 3 weeks ago

Setup

All frameworks supported by ml_bridge: QBCore, QBox, ESX, and Standalone. Inventory support includes ox_inventory, core_inventory, ps-inventory, qs-inventory, and tgiann-inventory.

Set Config.Interaction = 'textui' in shared/config.lua. When set to nil, ml_bridge auto-detects the available target system.

Set Config.DuiRenderDistance = false in shared/config.lua.

Six: English, Italian, German, Spanish, French, and Brazilian Portuguese. Set via Config.Locale.

Stations

Persistent stations (persistent = true) are saved to the database and survive server restarts. Temporary stations (persistent = false) are removed when the server restarts.

Use Config.FixedStations to define permanent world stations. These cannot be picked up or destroyed by players.

Set spawnProp = false in the fixed station definition and configure a zone instead:

shared/config.lua
1{
2    id = 'my_campfire',
3    stationType = 'campfire',
4    coords = vec3(100.0, 200.0, 30.0),
5    heading = 0.0,
6    spawnProp = false,
7    zoneType = 'sphere',
8    zoneRadius = 2.0,
9}

The station breaks and cannot be used until repaired. Repair items are defined per station type in RepairItems. When picking up a broken station, the item preserves its durability via the furnacelife metadata field.

Each player can place up to Config.MaxStationsPerPlayer stations. Fixed stations do not count toward this limit. The count is based on the player's identifier, not the server source.

Recipes

Each recipe has a carbonize_time in seconds. After crafting completes, a timer starts. If the player does not collect the finished item before this timer expires, the item is destroyed (carbonized).

Add multiple entries to the station's cook_categories array:

shared/config.lua
1cook_categories = { 'food', 'medical', 'default' },

Add a new entry to Config.Recipes with a unique key. The category must match one of the categories in a station's cook_categories:

shared/config.lua
1['my_recipe'] = {
2    category = 'food',
3    tier = 1,
4    cook_time = 30,
5    carbonize_time = 120,
6    ingredients = {
7        { name = 'item_a', count = 2 },
8    },
9    results = {
10        { name = 'item_b', count = 1 },
11    }
12},

XP / Progression

Set Config.XP.Enabled = false. All tier restrictions are bypassed (every recipe becomes craftable regardless of level) and the Progression tab is automatically hidden in the UI.

  • 'internal' if you want it to work out of the box with no extra resources
  • 'ml_skills' if you already have the ml_skills resource and want the crafting tree synced with player skills
  • 'devhub' if you run the DevHub XP system
  • 'custom' to wire your own backend via the handlers in open/server.lua

Change Config.XP.Provider to one of: 'internal', 'ml_skills', 'devhub', 'custom'. Each provider has its own configuration block in Config.XP.

Two bonus types, both configurable per tier in Config.XP.Tiers:

  • speed: Reduces cook time by a percentage (e.g., 0.12 = 12% faster)
  • antiCarbonize: Extends carbonization time by a percentage (e.g., 0.20 = 20% more time to collect)

Both can be toggled globally in Config.XP.Bonuses.

Updates

  1. Download the latest version from CFX Portal
  2. Backup shared/config.lua, server/config_server.lua, and open/ folder
  3. Replace all files except your backed-up configs
  4. Compare your config with the new defaults for any added keys
  5. Restart the resource

Database tables are migrated automatically, missing columns are added on startup.