Installation
Dependencies, setup steps, and migration from the legacy BIN format.
Dependencies
| Resource | Required | Notes |
|---|---|---|
| oxmysql | Yes | |
| ox_lib | Yes | |
| filo_textui | Yes | |
| eye_minigames | Yes | |
| community_bridge | Yes | Framework abstraction layer |
| filo_blips | No | Falls back to native FiveM blips |
| ox_target / qb-target | No | Falls back to textui if not present |
| xsound | No | Ignition and hotwire sound effects |
Setup
Download and extract filo_vehiclekeys into your resources folder.
Add the following to your server.cfg:
ensure ox_lib
ensure qbx_core # or the framework you are using
ensure ox_target
ensure ox_inventory
ensure community_bridge
ensure eye_minigames
ensure filo_textui
ensure filo_vehiclekeysStart your server. The SQL table is created automatically on first boot — no manual database imports required.
Configure the resource to match your server setup. See the Configuration page.
SQL Table
The following table is created automatically. You do not need to run this manually.
CREATE TABLE IF NOT EXISTS `filo_vehiclekeys` (
`plate` VARCHAR(15) NOT NULL,
`data` LONGTEXT NOT NULL,
`updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`plate`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;Inactive vehicle records are pruned automatically based on the VehicleDataRetentionMonths
config value. Only vehicles owned by a player are ever written to the table.
Items
If you are using ox_inventory, add the following to your items.lua:
["vehiclekey"] = {
label = "Vehicle Key",
weight = 10,
width = 1,
height = 1,
stack = false,
close = true,
},
["locksmith_tablet"] = {
label = "Locksmith Tablet",
weight = 150,
width = 1,
height = 1,
close = true,
},
["key_cutting_tool"] = {
label = "Key Cutting Tool",
weight = 100,
width = 1,
height = 1,
close = true,
},
["blank_key"] = {
label = "Blank Key",
weight = 50,
width = 1,
height = 1,
close = true,
},
["electrical_tools"] = {
label = "Electrical Tools",
weight = 10,
width = 1,
height = 1,
stack = false,
close = true,
},Then update your Config.Locksmith.Items to match the item names you defined:
Config.Locksmith.Items = {
BlankKey = 'blank_key',
KeyCuttingTool = 'key_cutting_tool',
OBD = 'locksmith_tablet',
}vehiclekey and electrical_tools have stack = false — each key is a unique item
with its own metadata (plate, key ID, model info) so stacking must be disabled.