# Installation > Setup guide for ML Vehicle Crafting Category: VEHICLE CRAFTING · Source: https://miciomods.it/docs/ml-vehiclecraft-installation · Last updated: 2026-09-26 ## Overview `ml_vehiclecraft` turns a chassis item into a drivable owned vehicle. A player places a bare shell in the world, installs its parts one at a time with a full carry and mount sequence, and finishes the project into a registered vehicle. It ships with a placement ghost, a holographic progress board over the shell, crew collaboration, an admin panel with a map view, wreck salvaging and an optional paid layer. Runs on ESX, QBCore, Qbox and standalone through `ml_bridge`. ## Quick Start 1. Download from [CFX Portal](https://portal.cfx.re) 2. Extract to your `resources` folder as `ml_vehiclecraft` 3. Add to `server.cfg`: **server.cfg** ```cfg ensure oxmysql ensure ox_lib ensure ml_bridge ensure ml_vehiclecraft ``` > **WARNING:** Load Order > > `ml_vehiclecraft` must start AFTER `ml_bridge`, `ox_lib` and `oxmysql`. Starting earlier fails the schema install. > **DANGER:** Do not rename the folder > > The resource folder must be named `ml_vehiclecraft`. Renaming it locks the script. ## Database The schema installs automatically on first start. `_INSTALL/ml_vehiclecraft.sql` is provided for servers whose database user cannot run DDL at runtime. `ml_vehiclecraft_builds`: Every project in the world: vehicle, owner, crew, coordinates, slot state, plate, shell colour `ml_vehiclecraft_unlocks`: Permanent per-vehicle unlocks, only used by the paid layer `ml_vehiclecraft_credits`: Per-player balance of paid uses, only used by the paid layer All three use `CREATE TABLE IF NOT EXISTS`. This table creation step preserves rows in existing tables. ## Item Registration Copy the entries in `_INSTALL/items.lua` into your inventory definition, and every file in `_INSTALL/images` into `ox_inventory/web/images`. With the shipped defaults only these are needed: - `vc_chassis`: the bare shell, stamped with the vehicle it builds - `vc_engine`, `vc_transmission`, `vc_brakes`, `vc_wheel`, `vc_door`, `vc_seat`, `vc_bonnet`, `vc_boot`, `vc_exhaust`: the parts - `vc_bp_rebel`, `vc_bp_bison`, `vc_bp_youga`, `vc_bp_dinghy`, `vc_bp_elegy2`, `vc_bp_sultan`, `vc_bp_futo`: blueprints for tier 2 and tier 3 vehicles The per-vehicle `vc_chassis_` entries in the same file belong to `Config.ChassisMode = 'items'` and can be skipped otherwise. `toolkit` is only needed if `Config.Tools.enabled` is turned on. > **WARNING:** A plain giveitem produces a blank chassis > > With the default `Config.ChassisMode = 'metadata'`, a chassis or a part carries the vehicle it belongs to in its metadata. `/giveitem vc_chassis` hands out an unstamped item that does nothing. Use the admin panel, the console commands, or the exports on the Developer page. ## Where parts come from Choose how players will obtain chassis and parts before opening the system to them. Connect a shop, loot table or crafting recipe using the examples on the Developer page; Vehicle Craft does not distribute these items on its own. The admin panel covers testing on its own: open `/vehiclecraft`, pick a vehicle under **Spawn for testing** and press **Chassis** and **Parts**. These buttons provide the items needed to test a build before connecting a shop or loot system. For production, the Developer page has copy-paste snippets for a shop entry, a crafting recipe, a loot table reward and a generic give call. ## Verify After starting, the server console prints the resource banner and the number of restored projects. Give yourself a chassis and use it: ```lua /vc_givechassis emperor /vc_giveparts emperor ``` Using the chassis opens placement. Set the shell down, walk up to it, and the build panel opens on the target option. **Troubleshooting** - **Nothing happens when the chassis is used**: the item was given without metadata. Use `/vc_givechassis` or the admin panel instead of `/giveitem`. - **The console warns about metadata support**: the inventory does not carry metadata. Part quality and model lock switch themselves off, and chassis mode falls back to the per-vehicle items, which have to exist in the inventory. - **`/vehiclecraft` says access denied**: the account has none of the aces in `Config.Permissions.Admin` and is not a framework admin. - **The shell is invisible to other players**: expected. The shell is spawned client side by everyone within `Config.Carcass.streamDistance` and is never networked. - **A project cannot be placed**: `Config.Build.maxNearby` refuses a new shell when too many already sit within `crowdRadius`, and `Config.Placement.zoneRestricted` limits placement to the listed zones. - **The panel opens but the mount button is missing**: `Config.Collaboration.install` does not allow that player on that project.