v3.1.1 patch
Test drives that leave cleanly, unique plates and a big round of fixes
20changes

Test drives that leave cleanly, unique plates and a big round of fixes
20changes

[02] Release
A big round of fixes. The test drive no longer drives into a wall and waits properly when its point is taken; finance, hire and the waiting list appear in the showroom again; a plate can no longer be sold twice; promotions are actually shown on the car; staff can attend customers at every dealership; hired cars are handed back with a key; boats are delivered on the water; and guided tours draw on top again. Also included: private showrooms per customer, working sales-desk offers, a creator that no longer freezes and ESX tables without a job column.
config/client/dealership.lua: hire, the key that hands a hired car back. If you keep your old file, the defaults are used (BACKSPACE, held 1.6 seconds) — copy it in only to change them.Every customer in a showroom now takes a routing bucket of their own: First routing bucket (Settings → Dealerships, 61000 by default) plus their server id. If another resource on your server uses buckets in that range, move it somewhere free.
IsTemporaryVehicle now also covers hired cars, and there is a new IsRentalVehicle export.
Replace every file in the resource, except what you edited yourself:
config/ — only config/client/dealership.lua changed (the optional hire block).client/custom/framework/qb.lua and qbx.lua, client/custom/target/ox_target.lua and qb-target.lua changed. If you edited them, copy your changes onto the new files.server/custom/vehicles/esx.lua — only used on ESX. If you edited it, keep your changes and copy in the new Columns() function and the new body of Vehicles.Give.locales/ — every language changed. Re-apply any translation you edited.IsTemporaryVehicle now also covers hired cars, and IsRentalVehicle answers for them alone — for garages and other resources that should refuse a hire.
First routing bucket is now the start of one bucket per customer, numbered by server id. The default of 61000 suits nearly every server.
A bay facing a wall, a fence or the showroom glass launched the car at full speed into it. The car now starts facing the way out, follows the nearest road instead of a point through the buildings, and slows down or steers round anything in its path — a lamp post, a bollard, a parked car — for the whole roll-out.
A car parked on the test-drive point left the screen white while it waited, and printed a timeout in F8. The wait now happens with the showroom still open and a message saying what it is waiting for.
They were switched on in the settings but never reached the showroom, so the options were missing at the counter.
A custom plate typed with a space in front (" ABC") got past the check and registered a second car with a plate already on the road. Fixed in the showroom and at the sales desk.
The vehicle card, the strip of cars and the catalogue now show the struck-through price, the sale price and the promotion's name. The till always charged the promotion; nothing said so.
Pressing Cash with Bank selected added cash to a split instead of switching to it. A split total now reads "$3,767 + $3,767" rather than two numbers side by side.
The on-screen button could not be clicked while driving. Hold BACKSPACE at the wheel and a ring fills up. The hire timer also counts down properly (it showed 0 minutes), and hiring answers at once with a single notification.
"Attend this customer" never appeared at a dealership whose counter is outside its grounds (Benefactor, in the shipped set). It now opens the sales desk with that customer chosen everywhere.
Your bank in the header, the till and the overview now update on their own. The sales desk keeps the deal on screen, the rank no longer shows twice in the header, and Finance shows the car's name instead of its spawn code.
A boat is now created at the water's surface whatever height the delivery point was placed at. The "Preparing your vehicle" panel no longer appears on top of the purchase screen.
Temporary cars can no longer be sold to the dealership. The sell option reaches 6 metres from the driver's seat, and its hints no longer show in the creator, while furnishing or while sitting in a car.
The tour card was greyed out and sat behind the rows it was explaining.
Some models (the Zeno, for one) floated above the floor. The showroom also no longer opens while you are dead or downed, and boats show "—" for grip instead of 0%.
Boat, plane and helicopter dealerships are no longer flagged as half-built; Go there puts you in front of the counter; furnishing opens over open ground instead of a roof; ESC no longer also opens the pause menu; TAB in a text field no longer hides the panel; tills show in full; the sales chart shows the right days.
Visits used to share one private world per dealership, so two people browsing the same shop stood in each other's shot. Every customer now gets a world of their own — themselves and the car they are looking at, nobody else — and is back with everyone the moment they leave.
Choosing cash or bank on the offer card was answered with "Choose how you want to pay" whatever was picked, with nothing in F8 or the server console. The card now pays with the chosen currency. Buying in the showroom was never affected.
Placing a new dealership's counter as a target zone stopped the creator's camera for good — WASD moved your character instead and only a script restart got it back (attempt to index a nil value in F8). A drawing problem can no longer stop the camera.
Older and forked owned_vehicles tables have no job (or type, or stored) column and every purchase failed with Unknown column 'job'. The script now fills only the columns your table has, and never changes it.