RPSync Benny's Job
RPSync Benny’s Job
Section titled “RPSync Benny’s Job”Complete and self-contained Benny’s Original Motor Works job for ESX
Legacy servers: a tuning bench that lets players customize everything on
a vehicle (performance, exterior, wheels, paint, neons, xenons, window
tint, extras, plate, livery) — with its own grade/employee system,
completely independent from ESX jobs (jobs / job_grades). Zero risk of
conflicting with a “mechanic” job you already have on your server.
✨ Features
Section titled “✨ Features”- Own employee system — dedicated SQL table (
rpsync_bennys_employees), fully independent from ESX’sjobs/job_grades. Players become employees through a hire command, not through a job center. - Configurable grades — defined in
config.lua. - Clock in / clock out — status stored in the dedicated table.
- Workshop blip — always visible on the map for every player, employee or not.
- Server-side validation everywhere — employee status, duty, distance, price, client funds: everything is re-checked server-side, a client can never force or obtain a modification without paying.
- Billing history — every payment is logged (
rpsync_bennys_invoices) for reference. - Admin commands to manage the roster without touching the database.
- Version check on startup — same system as RPSync Job Center, warns in the server console if an update is available.
Tuning Bench
Section titled “Tuning Bench”A single interaction point: the nearest vehicle becomes the target. Customization happens in real time, directly on the vehicle — no back-and-forth between a menu and the game:
- Performance — engine, brakes, transmission, suspension, armor, turbo
- Exterior — bumpers, hood, fenders, skirt, roof, exhaust, grille, spoiler (each slot only appears if it actually exists for the targeted vehicle model)
- Wheels — wheel type (Sport, Muscle, Lowrider, SUV, Off-road, Tuner, Bike, High-end) + front/rear wheels
- Paint — primary, secondary, pearlescent and wheel color
- Neons — 4 independent sides + free RGB color (native color picker)
- Xenons — toggle + color
- Window tint — 7 standard game tints
- Extras — mirrors, roof bars, etc. (auto-detected per vehicle)
- Plate — plate holder, stickers/trim
- Livery, when the vehicle has one
Net-change billing
Section titled “Net-change billing”The total only includes what actually differs from the vehicle’s state when the bench was opened: reverting a value back to its original state (toggling something back off, re-picking the starting color…) removes that slot from the invoice instead of still charging for it. Closing the window without paying restores the vehicle exactly as it was — no free modification is ever possible.
- Horizontal bar anchored at the bottom of the screen — not a centered window blocking the view: a compact bar with icon tabs (wrench, wheels, paint…) and horizontally scrollable setting cards, so the vehicle and surroundings stay visible during customization
- NUI design aligned with other RPSync products (Job Center, Garbage Collector, Police Job)
📦 Dependencies
Section titled “📦 Dependencies”| Resource | Role |
|---|---|
es_extended | Player identity and money (cash/bank) — no ESX job/garage system is used |
ox_lib | Zones, notifications, callbacks |
oxmysql | Access to the employee table and billing history |
All three resources must be started before rpsync_bennys in your
server.cfg.
📋 Requirements
Section titled “📋 Requirements”Before installing make sure your server has:
- FiveM server running
- ESX Legacy framework
- ox_lib
- oxmysql installed
- Basic server knowledge
📦 Installation
Section titled “📦 Installation”Step 1 — Database
Section titled “Step 1 — Database”Run install.sql once against your database (phpMyAdmin, HeidiSQL…) —
creates the rpsync_bennys_employees and rpsync_bennys_invoices tables.
Step 2 — Download
Section titled “Step 2 — Download”Download the script from your Tebex purchase.
Extract the archive to:
resources/rpsync_bennys
Step 3 — Add to server.cfg
Section titled “Step 3 — Add to server.cfg”After es_extended, ox_lib and oxmysql:
ensure rpsync_bennysStep 4 — Place the points
Section titled “Step 4 — Place the points”The default coordinates in config.lua are approximate (Benny’s area,
Strawberry). To adjust them:
- Start the server and connect as admin.
- Go to the desired spot and type
/bennys_poscoordsin chat. - Copy the displayed
vector4(x, y, z, heading)intoconfig.lua:Config.DutyPoint— clock in/out pointConfig.ShopBlip.coords— map blip position (thevector4from/bennys_poscoordsworks here too, just ignore thew)Config.BenchPoint— tuning bench (the nearest vehicle withinConfig.BenchRadiusbecomes the target)
Step 5 — Choose the billing mode
Section titled “Step 5 — Choose the billing mode”In config.lua:
Config.ChargeMode:'driver'(the vehicle’s driver pays — recommended for a real customer-facing mechanic role),'self'(the mechanic pays, useful for an internal fleet) or'free'(no payment)Config.PaymentAccount:'money'(cash) or'bank'Config.Prices: price charged per modified category
Step 6 — Hire your first employee, then restart
Section titled “Step 6 — Hire your first employee, then restart”refreshensure rpsync_bennys🔧 Employee Management
Section titled “🔧 Employee Management”This script doesn’t depend on any job center: hiring is done through
commands (admin-only, restricted by ACE — covered by the
add_ace group.admin command allow already present in a standard FiveM
server.cfg).
| Command | Effect |
|---|---|
/bennys_hire [id] [grade] | Hires player id at the given grade (0 by default) |
/bennys_fire [id] | Fires player id |
/bennys_setgrade [id] [grade] | Changes the grade of an already hired employee |
Player ids are the ones shown in-game (F8 / player list). Grades are the
ones defined in Config.Grades (currently informative — no grade-based
restriction is applied on the tuning bench, customize it in
client/customize.lua if needed).
🛠️ Using the Tuning Bench
Section titled “🛠️ Using the Tuning Bench”- A Bennys employee clocks in at the service point (
Config.DutyPoint). - The client parks their vehicle near the tuning bench (
Config.BenchPoint, radiusConfig.BenchRadius). - The employee presses
E: the nearest vehicle becomes the target, and the tuning bar opens at the bottom of the screen (the vehicle and surroundings stay visible above it). - Every change applies immediately to the in-game vehicle (a real preview, not an image) and updates the total shown in the bar’s header. Reverting to the original value brings the total back down (see “Net-change billing” above).
- Confirm bills the client (or the employee / nothing, depending on
Config.ChargeMode) and keeps the changes. Cancel (or the close button /Escape) restores the vehicle exactly as it was before the menu opened, with no charge at all.
⚙️ Configuration
Section titled “⚙️ Configuration”All configuration is located in:
config.lua
| Option | Description |
|---|---|
Config.Debug | Detailed logs in the server console (billing, checks) |
Config.Grades | Available grades (informative) |
Config.DefaultGrade | Grade assigned by default when hiring |
Config.DutyPoint | Clock in/out point |
Config.RequireDuty | Whether being on duty is required to use the tuning bench |
Config.BenchPoint / Config.BenchRadius | Interaction point and detection radius for the target vehicle |
Config.ChargeMode | Who pays: 'driver', 'self' or 'free' |
Config.PaymentAccount | Account charged: 'money' or 'bank' |
Config.Prices | Price per modified category |
Config.ModCategories | Modification slots offered (performance, exterior, wheels, plate, livery) |
Config.ExtraSlots | Extra IDs tested (1 to 14 by default) |
Config.WheelTypes | Wheel types offered |
Config.WindowTints | Window tints offered |
Config.PaintColorCount / Config.XenonColorCount | Number of color indexes offered in the UI |
Config.Markers | Ground marker shown at each point |
Config.ShopBlip | Workshop blip visible to everyone |
Billing mode
Section titled “Billing mode”Config.ChargeMode = 'driver' -- 'driver' | 'self' | 'free'Config.PaymentAccount = 'money' -- 'money' | 'bank'Prices per category
Section titled “Prices per category”Config.Prices = { performance = 3500, -- engine, brakes, transmission, suspension, armor, turbo exterior = 1200, -- bumpers, hood, fenders, skirt, roof, exhaust, grille, spoiler wheels = 1800, -- wheel type + front/rear wheels paint = 900, -- primary/secondary/pearlescent paint + wheel color neon = 2200, -- neons (per side) + color xenon = 1500, -- xenon headlights + color tint = 400, -- window tint plate = 300, -- plate holder / stickers livree = 900, -- livery extras = 500, -- extras (mirrors, roof bars, etc.)}Grades
Section titled “Grades”Config.Grades = { [0] = { label = 'Apprentice' }, [1] = { label = 'Mechanic' }, [2] = { label = 'Shop Manager' },}
Config.DefaultGrade = 0🔄 Version Check
Section titled “🔄 Version Check”server/version_check.lua automatically compares, 3 seconds after the
resource starts, the version declared in fxmanifest.lua against the
latest version published by RPSync, and prints the result to the server
console:
- 🟢 “You are running the latest version” — everything is up to date.
- 🟡 “A new version is available!” — shows your version, the latest available version, and a download/changelog link if provided.
- 🔴 “Version check failed” — the request failed (site unreachable, outbound firewall blocked, etc.); never prevents the resource from working, it’s purely informational.
This is the same system used by RPSync Job Center. It doesn’t collect or
send any data from your server: a single HTTP GET request is made to
rpsync-site.pages.dev to read the latest published version. To disable
it, simply remove server/version_check.lua from fxmanifest.lua.
🐛 Troubleshooting
Section titled “🐛 Troubleshooting”/bennys_hire does nothing
Section titled “/bennys_hire does nothing”Check that install.sql was executed and that your admin account has the
command.bennys_hire ACE permission (covered by command allow on the
admin group in a default server.cfg).
Duty point / tuning bench doesn’t appear
Section titled “Duty point / tuning bench doesn’t appear”Check the coordinates in config.lua (use /bennys_poscoords to verify
your current position), and that the player has actually been hired.
”No vehicle near the tuning bench”
Section titled “”No vehicle near the tuning bench””The vehicle must be within Config.BenchRadius meters of the point — move
it closer or increase the value.
The client isn’t charged
Section titled “The client isn’t charged”In 'driver' mode, the script identifies the driver by comparing
connected peds at confirmation time — make sure a player (not a ped) is
actually sitting in the driver’s seat.
A modification slot doesn’t appear
Section titled “A modification slot doesn’t appear”This is normal if the vehicle model doesn’t offer any option for that part type (native game behavior, not a bug).
”Version check failed” in console
Section titled “”Version check failed” in console”Your server can’t reach rpsync-site.pages.dev (blocked outbound access,
host firewall…) — no impact on the resource itself, it just can’t tell
whether an update exists.
📊 Changelog
Section titled “📊 Changelog”1.0.0
- Initial release
- Independent employee system (
rpsync_bennys_employees), separate from ESX jobs - Full tuning bench: performance, exterior, wheels, paint, neons, xenons, window tint, extras, plate, livery
- Real-time preview directly on the vehicle
- Net-change billing with configurable charge mode and prices
- Billing history (
rpsync_bennys_invoices) - Admin commands for roster management
- Automatic version checking system
📞 Support
Section titled “📞 Support”Before requesting support:
- Check documentation
- Check F8 console
- Restart resource
Support channels:
📜 License
Section titled “📜 License”RPSync License
Allowed:
- Use on your server
- Modify configuration
- Modify translations
Not allowed:
- Resell
- Redistribute
- Remove escrow protection