Skip to Content
Mavix

Create a Location

Build a new mechanic shop in game with /mechaniccreator, step by step, from the job to the last lift.

What it is

The mechanic creator is an in-game menu for admins. With it you make a new mechanic shop (or change one) without typing coordinates: you give the shop a name and a job, set the prices, and then walk around and place every point (customer bays, car lifts, parts counters, stashes) where you look.

Everything is kept in a working copy until you press Save. Then the server checks it, writes it to creator/data/locations.json and builds the shop file the mechanic script reads. After a save you restart mvx_mechanic and the shop is live.

The Mechanic creator: every shop, the built-in shops switch, Save and Discard.
The Mechanic creator: every shop, the built-in shops switch, Save and Discard.

Before you start

You need three things:

  1. Admin rights. Only the ESX groups owner and admin can open and save the creator. The server checks this again on every load and every save.
  2. A job for the shop (owned shops only). Every owned shop is run by one ESX job. GearHead Customs uses the job mechanic. For a second shop with its own staff and money, make a new job first (step 2 below).
  3. A place. The building should already exist in the map. If the shop has doors you want to lock, see Doorlock System.

1. Open the creator

Type /mechaniccreator in chat. The Mechanic creator menu opens with:

OptionWhat it does
New shopStart a new shop. It begins with the stock LS Customs settings, so you only change what is different.
One row per shopOpen that shop. The line under the name shows its id, type and how many bays, lifts, shops and stashes it has.
Built-in shops: On/OffSwitches Benny's and LS Customs (the two shops written in config.lua) on or off. They are Off on this server.
SaveChecks and saves everything. It says "You have unsaved changes" when you have changed something.
Discard unsaved changesGoes back to the last save. Only shown when something changed.

While a shop's menus are open, its points are drawn in the world so you can see what you already placed.

2. Make the job (owned shops)

An owned shop needs an ESX job that already exists on the server. The creator lists every job it finds, and it refuses to save a job name that does not exist. /setjob also only works for jobs that exist.

On this server the mechanic job is mechanic with five ranks: 0 Recruit, 1 Novice, 2 Experienced, 3 Leader, 4 Boss. You can give a new shop the same mechanic job: then the same staff and the same company account work at both shops.

For a shop with its own staff and its own money, add a new job to the database. Jobs are not made in game for mechanic shops; you add them with SQL (for example in HeidiSQL or phpMyAdmin, database mavix). Example for a shop called Paleto Customs with the job name paletomech:

INSERT INTO jobs (name, label, whitelisted) VALUES ('paletomech', 'Paleto Customs', 1);

INSERT INTO job_grades (job_name, grade, name, label, salary, skin_male, skin_female) VALUES
  ('paletomech', 0, 'recruit', 'Recruit',       180, '{}', '{}'),
  ('paletomech', 1, 'mechanic', 'Mechanic',     200, '{}', '{}'),
  ('paletomech', 2, 'lead',    'Lead Mechanic', 230, '{}', '{}'),
  ('paletomech', 3, 'boss',    'Boss',          280, '{}', '{}');

INSERT INTO addon_account (name, label, shared) VALUES ('society_paletomech', 'Paleto Customs', 1);
  • jobs: the job itself. The name (here paletomech) is what you pick in the creator. Use only small letters, numbers and _. whitelisted = 1 means only a boss or staff can give it, and it leaves a fired player's F3 job list.
  • job_grades: one row per rank, starting at 0. The top rank should be named boss. salary is the pay every paycheck; mechanic ranks on this server pay $180–$280.
  • addon_account: the shop's company account, always society_ + the job name. Customer payments go in here, and counter parts are paid from it.

Then restart the server at a quiet time, so ESX loads the new job and the new company account. (Admins can type /refreshjobs to load new jobs without a restart, but the company account only appears after a restart.)

Watch outJob name must match exactly

The job name in the database, in the creator and in /setjob must be the same, small letters included. paletomech and PaletoMech are two different jobs.

3. Create the shop

Pick New shop and fill in the form:

New shop: id, name, type and job.
New shop: id, name, type and job.
FieldWhat it meansExample
IdA unique key for the shop: 1–32 characters, only a-z, 0-9 and _. It is saved in the mechanic_data table with the shop's balance. Changing it later starts a fresh balance.paleto_customs
NameShown on the map blip and in game. Up to 50 characters. If the boss later renames the shop on the tablet, that name is kept.Paleto Customs
TypeOwned (job, employees, tuning) or Self-service (anyone). See Self-Service Shops.Owned
JobThe ESX job that runs the shop. Required for an owned shop. A self-service shop may leave it empty.paletomech

The shop opens. Its menu has these rows:

One shop in the creator: settings at the top, then the point lists.
One shop in the creator: settings at the top, then the point lists.
RowWhat you set
DetailsId, name, type, job and Commission (%): the share of a finished order paid from the company account to the mechanic who did it (0–100). GearHead uses 0.
Management ranksOwned shops. Which ranks of the job are managers (see step 7).
LogoA picture from mvx_mechanic/logos: bennys.png, ls_customs.png or gearhead_customs.png, or no logo.
Map blipShow a blip or not, Sprite (icon number, see the FiveM blip list), Colour and Scale.
Mod pricesPrice of each mod category (step 6).
TuningOwned shops. For each tune (engine swaps, drivetrains, turbocharging, tyres, brakes, drift tuning, gearboxes): offered or not, and whether it needs the item.
Customer bays, Employee-only zones, Car lifts, Shops, StashesThe points of the shop (step 4).
Delete shopRemoves the shop from the working copy (step 9).

4. Place the points

There are five kinds of point. Open a list (for example Car lifts (0)) and pick Add …:

PointWhat it doesWho can use itLimits
Customer bayA square zone. A driver inside it presses E (Customise vehicle) to open the mod menu. Each bay can show the map blip.EveryoneUp to 30 bays and zones. At least one, or the shop has no mod menu.
Employee-only zoneThe same mod menu, but only staff of the job see it (for a staff-only workshop).StaffShares the 30 with bays
Car liftA real lift. Drive on it and press E (Use car lift) to raise or lower the car.Staff (owned shop), anyone (self-service)Up to 30
Shop (parts counter)A counter that sells items. With a ped, use the third eye on the clerk; without, stand in its zone.Staff only, needs a jobUp to 20, up to 100 items each
StashShared storage for the staff.Staff only, needs a jobUp to 20

There is no separate duty, boss or garage point: staff go on duty, manage the shop and connect cars on the tablet (see Mechanics & Tablet).

The placement tool

When you add or move a point, a see-through ghost of it follows where you look (up to 40 m away). For a lift it is a lift with a car on it. A prompt shows the keys:

The placement prompt while placing a customer bay.
The placement prompt while placing a customer bay.
KeyWhat it does
EPlace it here
Mouse wheelBays and zones: size. Lifts, shops and stashes: turn.
Shift + wheelFine steps (0.1 m or 1°)
Ctrl + wheelRow of lifts only: the gap between lifts
BackspaceCancel

Everything is put on the floor for you, so you only aim at the ground where it should go.

Settings of each point

After placing, open the point in its list. Every point has Teleport to, Move (place it again) and Remove. Bays, zones, shops and stashes also have Settings; shops have Items.

The car lifts list: add one, add a row, or open a lift.
The car lifts list: add one, add a row, or open a lift.
PointSettings
Customer bay / employee zoneSize (m) from 0.5 to 50, and Show the map blip here.
ShopName, Zone size (when there is no ped), Use a ped and Ped model (default s_m_m_lathandy_01). When you add a shop you choose to Start from an empty shop or the stock Servicing Supplies or Advanced Upgrades list.
Shop → ItemsAdd, change or remove items: Item name exactly as in ox_inventory (for example engine_oil), Label and Price.
StashName, Slots (1–500), Max weight in grams (default 50,000 = 50 kg), zone size, ped.

Add a row of lifts places several lifts side by side in one go: choose How many lifts (2–10, default 5) and the Gap between lifts (3–12 m, default 5.5 m, centre to centre). 5.5 m keeps each lift's work area clear of the next.

5. Sizes and turning

WhatDefaultRangeStep (fine with Shift)
Customer bay / zone size6.5 m (bay), 3 m (staff zone)1–30 m while placing (0.5–50 m in Settings)0.5 m (0.1 m)
Shop / stash zone size2 m0.5–6 m while placing (up to 10 m in Settings)0.5 m (0.1 m)
Turning lifts, shops, stashes–0–360°5° (1°)

A bay is a square box of that size around its point, as high as it is wide. Make it big enough for a whole car, but keep bays apart: two bays must not overlap.

6. Prices and self-service

Open Mod prices. There is one row per category: Repair, Performance, Cosmetics, Stance, Respray, Wheels, Neon lights, Headlights, Tyre smoke, Bulletproof tyres and Extras.

One mod category: on or off, base price, share of the car's value and the level multiplier.
One mod category: on or off, base price, share of the car's value and the level multiplier.
FieldWhat it means
EnabledOffer this category at this shop.
Share of vehicle value (percentVehVal)The price is this share of the car's value. 0.01 = 1%. Used on this server, because Config.ModsPricesAsPercentageOfVehicleValue = true. The car's value is its price in the ESX vehicle list, or $30,000 for a car that is not in the list.
Base price (price)A fixed price. Only used if Config.ModsPricesAsPercentageOfVehicleValue is set to false.
Price multiplier per level (priceMult)Performance, Cosmetics and Wheels only. Each higher level costs more: price × (1 + level × multiplier).

Example: a $100,000 car with Performance at 0.01 and multiplier 0.1: a level 1 part costs $1,000 × 1.1 = $1,100, a level 3 part $1,000 × 1.3 = $1,300.

Who gets the money:

  • Owned shop: the customer pays by cash or bank when placing the order, and the money goes into the company account (society_<job>). A mechanic then installs it.
  • Self-service shop: the customer pays by cash or bank and gets the mods at once. The money does not go to anyone.

7. Staff and the owner

There is no separate "owner" field. The shop belongs to its job:

  • Everyone with the shop's job is staff (mechanic role): lifts, counters, stashes, tablet and work orders.
  • Ranks you tick in Management ranks are managers: on the tablet they also see Management (balance, deposit, withdraw), hire, change roles and fire. For GearHead this is rank 4 (Boss). New shops start with rank 4 ticked, so for a job whose top rank is 3, change it to 3.
  • To make someone the owner, give them the top rank: /setjob <id> paletomech 3.

Managers hire on the tablet (Management → Employees): the new person must stand within 5 m and accept within a minute. They get the shop's job.

8. Save

Back in the main menu, press Save. The server then:

  1. checks every field again (ids, job exists, logo file exists, sizes, prices, max 50 shops),
  2. writes the data to mvx_mechanic/creator/data/locations.json,
  3. builds mvx_mechanic/shared/zz-creator-locations.lua from it and test-runs that file. If it does not work, nothing is saved and the reason is shown.
  4. writes the shop name into the mechanic_data table (unless the boss already renamed the shop on the tablet).

If a field is wrong you see a message naming it, for example Shop "paleto_customs" job: "paletomech" is not a job. Nothing is saved until every shop is valid.

Watch outRestart after saving

The shop file is only read when the script starts. After Save, type restart mvx_mechanic in the server console or txAdmin. Anyone in the mod menu or on the tablet is thrown out, so do it at a quiet time.

Never edit shared/zz-creator-locations.lua by hand: the creator rewrites it on every save.

9. Edit, move or delete

  • Change settings: open the shop and change any row, then Save and restart mvx_mechanic.
  • Move a point: open it, pick Move and place it again. Teleport to takes you to it first.
  • Remove a point: open it, pick Remove and confirm.
  • Delete a shop: open it, pick Delete shop and confirm. Its balance stays in the database under its id.
  • Changed your mind? Discard unsaved changes goes back to the last save.

GearHead Customs was laid out by the owner. Only change it on purpose.

10. Test it

After restart mvx_mechanic:

  • The map blip shows at every bay with Show the map blip here on.
  • Driving into a customer bay shows [E] Customise vehicle.
  • Staff of the job can use the lifts, open the counters and stashes, and log in to the shop on the tablet.

11. Common mistakes

ProblemWhyFix
"… is not a job" on saveThe job is not in the database, or the name differs (capitals, spaces).Add the job with SQL, restart, and pick it from the list.
No Customise vehicle promptThe shop has no customer bay, the bay is too small or placed inside a wall, or mvx_mechanic was not restarted.Add or resize a bay, Save, restart.
Staff can't open counters or stashesTheir job is not the shop's job, or the shop has no job./setjob <id> <job> <rank>.
Manager sees no Management on the tabletTheir rank is not in Management ranks.Tick the rank, Save, restart.
Counter purchases failThe company account is empty or missing.Deposit money on the tablet; for a new job, check the addon_account row and restart.
Bays open the wrong menu or flickerTwo bays (or a bay and another shop's bay) overlap.Move them apart or make them smaller.
Lift or ped inside a wall or floorAimed at a wall while placing.Move and aim at the floor.
Doors can be opened by anyoneDoors are not part of the creator.Lock them with /doorlock, see Doorlock System.
New balance after renamingThe Id was changed.Keep the id; change only the Name.
NoteDoors

Mechanic shop doors are not locked out of the box. Create them in game with the doorlock menu (/doorlock, staff only). See Doorlock System and the official ox_doorlock guide.

Keys & commands

Key / commandWhat it doesWho
/mechaniccreatorOpen the creatorESX groups owner, admin
E / wheel / Shift / Ctrl / BackspacePlace, size or turn, fine steps, lift gap, cancelWhile placing
/refreshjobsLoad new jobs from the databaseAdmins
restart mvx_mechanicApply a saved creator change (server console)Server owner

Config options

Creator settings: [esx]/[jobs]/[mechanic]/mvx_mechanic/creator/config.lua.

OptionWhat it changesExample
CreatorConfig.CommandThe chat command'mechaniccreator'
CreatorConfig.PermissionESX groups that may use it{ 'owner', 'admin' }
CreatorConfig.PlacementReach, size and turn steps, row of lifts defaultsMaxDistance = 40.0, RowSpacing = 5.5
CreatorConfig.DefaultsWhat a new shop starts with: type, job, management ranks, logo, blip, mod prices, tuning, ped, counter items, stash sizejobManagementRanks = { 4 }
CreatorConfig.KnownLogosLogo files offeredbennys.png, ls_customs.png, gearhead_customs.png

Admin Quick Test

This builds a test shop called Paleto Customs from zero in the open car park at the trucker base, then removes it.

Setup

  1. Add the job: run the SQL from step 2 (job paletomech, ranks 0–3, account society_paletomech), then restart the server.
  2. Check it loaded: /setjob me paletomech 3. You see your job change to Paleto Customs, Boss. (If you see an error, the job is not in the database.)
  3. Give yourself money and a tablet: /giveaccountmoney me bank 50000, /giveitem me mechanic_tablet 1.

Build the shop

  1. Teleport to an open car park: /tp -1161.38 -2163.77 13.38 (trucker base).
  2. Type /mechaniccreator. The Mechanic creator menu opens.
  3. New shop: Id paleto_customs, Name Paleto Customs, Type Owned, Job Paleto Customs (paletomech). Confirm. The shop menu opens.
  4. Management ranks: tick rank 3, untick 4. The row shows "Grades 3".
  5. Customer bays (0) → Add customer bay. Aim at the ground, scroll to about 6.5 m, press E. Add a second bay a few metres away. The list shows 2 bays.
  6. Car lifts (0) → Add a row of lifts → 2 lifts, gap 5.5 m. Aim, turn with the wheel, press E.
  7. Shops (0) → Add shop → Start from Servicing Supplies, tick Use a ped. Place it. Open it → Items: the stock items are listed (engine oil $45 …).
  8. Stashes (0) → Add stash → name Parts Bin, 10 slots, 50,000 g. Place it.
  9. Mod prices → Performance: check the share is 0.01 and the multiplier 0.1.
  10. Back to the main menu → Save. You see a success message; the main menu now says "Nothing changed since the last save".

Make it live

  1. In the server console type restart mvx_mechanic. Wait for it to start.
  2. A Paleto Customs blip shows at the bays.

Test it

  1. Spawn a car /car sultan, drive into a bay: [E] Customise vehicle shows. Press E, pick a respray, Place Order, pay by bank. "Your Order Has Been Placed".
  2. Third eye on the counter clerk: the Servicing Supplies counter opens. Open the stash: the Parts Bin opens.
  3. Drive onto a lift and press E: the lift goes up.
  4. Type /tablet, pick Paleto Customs, log in. Management shows the order money in the balance. Work Orders shows your order.
  5. /setjob me unemployed 0 and walk to the counter: it no longer opens (staff only).

Clean up

  1. /mechaniccreator → Paleto Customs → Delete shop → confirm → Save, then restart mvx_mechanic. The blip is gone. (Remove the paletomech job rows from the database if you don't need them.)

If it doesn't work: "is not a job" means the SQL was not run or the server was not restarted. No prompt in the bay means mvx_mechanic was not restarted after Save, or the bay is too small. Only ESX groups owner and admin can open the creator.

On this page