filo studios.
Paid Resources🔑 filo_vehiclekeys

Installation

Dependencies, setup steps, and migration from the legacy BIN format.

Dependencies

ResourceRequiredNotes
oxmysqlYes
ox_libYes
filo_textuiYes
eye_minigamesYes
community_bridgeYesFramework abstraction layer
filo_blipsNoFalls back to native FiveM blips
ox_target / qb-targetNoFalls back to textui if not present
xsoundNoIgnition 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_vehiclekeys

Start 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.

On this page