Skip to content

Access Levels

Core Mechanic uses a tiered access system. Each tier unlocks more parts and services through different tool props.

Overview

Bare Hands
No item needed. Players interact with vehicles directly using target. Oil changes only by default.
Toolbox
An inventory item. Use it to place a toolbox prop — interact with it via target to access oil, nitro, tires, sparkplugs, and engine patching.
Mechanic Tools
An inventory item. Place it down and target it for full part access, cosmetics, body repair, and car wash.
Workshop
Can be placed as an item OR configured at fixed locations in config. Full access plus fuel, scrapping, and customer ordering.

Bare Hands

No item required — players just walk up to a vehicle and use target to interact. By default only oil changes are available.

lua
EnableBarehandAccess = true,
BarehandAccess = {
    ['oil'] = true
},

Set EnableBarehandAccess = false to disable entirely.

Toolbox

The toolbox is an inventory item called toolbox. Players use the item to place a toolbox prop in the world, then interact with it via target to access parts on nearby vehicles.

Give a player the item with /giveitem [id] toolbox [amount].

lua
ToolBoxProp = 'prop_tool_box_04',
ToolBoxItemName = 'toolbox',
ToolBoxAccess = {
    ['oil'] = true,
    ['nitro'] = true,
    ['tires'] = true,
    ['sparkplugs'] = true,
    ['patchengine'] = true
},

Mechanic Tools

Same concept as the toolbox but with more access. The item mechanic_tools places a larger tool chest that unlocks all performance parts, cosmetics, and services.

Give a player the item with /giveitem [id] mechanic_tools [amount].

lua
MechanicToolsProp = 'prop_toolchest_01',
MechanicToolsItemName = 'mechanic_tools',
MechanicToolsAccess = {
    -- Performance
    ['oil'] = true,
    ['nitro'] = true,
    ['tires'] = true,
    ['brakes'] = true,
    ['suspension'] = true,
    ['sparkplugs'] = true,
    ['engine'] = true,
    ['transmission'] = true,
    ['turbo'] = true,

    -- Cosmetics
    ['exhaust'] = true,
    ['hood'] = true,
    ['spoiler'] = true,
    ['bumperfront'] = true,
    ['bumperrear'] = true,
    ['primarycolors'] = true,
    ['secondarycolors'] = true,
    ['wheels'] = true,
    -- ... full list in config.lua

    -- Services
    ['bodyfix'] = true,
    ['washcar'] = true
},

Workshop

The workshop is the top tier. It can be used in two ways:

  1. As an item — give a player the mechanic_workshop item, they place it down and target it just like toolbox/mechanic tools
  2. As fixed locations — configure permanent workshop positions in config that are always available

Fixed Workshop Locations

Workshops can be placed at fixed coordinates in config.lua. These are always present in the world without needing an item:

lua
MechanicWorkshopDefaultLocations = {
    {coords = vector3(1172.86, 2637.65, 37.78 - 1.02), heading = 20.0},
    {coords = vector3(734.57, -1091.20, 22.17 - 1.02), heading = 20.0},
    {coords = vector3(-226.45, -1328.41, 30.89 - 1.02), heading = 20.0}
},

Workshop Item

Give a player the item with /giveitem [id] mechanic_workshop [amount].

Workshop Config

lua
MechanicWorkshopProp = 'prop_toolchest_02',
MechanicWorkshopItemName = 'mechanic_workshop',

-- Extra Features
MechanicWorkshopOrdering = true,      -- Customers can order installations
MechanicWorkshopSelfService = false,  -- Customers can self-service

MechanicWorkshopAccess = {
    -- All performance and cosmetic parts
    -- Plus additional services:
    ['bodyfix'] = true,
    ['washcar'] = true,
    ['fuelcar'] = true,
    ['scrapcar'] = true
},

TIP

Enable MechanicWorkshopOrdering to let customers place orders that mechanics can fulfill later — great for roleplay servers.

Detection Settings

lua
AccessDistance = 10.0,          -- Distance to trigger auto-open near tool prop
DetectDistance = 3.0,           -- Vehicle detection range when using items
OnlyOwnedVehicles = false,     -- Restrict to owned vehicles only

Customizing Access

To add or remove parts from any access level, simply set the part key to true or remove it:

lua
-- Example: Give toolbox users access to brakes
ToolBoxAccess = {
    ['oil'] = true,
    ['nitro'] = true,
    ['tires'] = true,
    ['sparkplugs'] = true,
    ['brakes'] = true,       -- Added
    ['patchengine'] = true
},