Version 1.52.0
Highlights
- Added the full supply storefront and delivery app for ordinary jobs, with job-specific artwork, a shopping basket, order history and personal or company payment.
- Added physical supply deliveries with boxes, configurable carried items and pallets, partial collection and transfer into authorized job storage.
- Added multiple access points for shared storage, lockers, shops, wardrobes, duty terminals, boss menus and public forms while preserving existing storage contents.
- Improved Crime configuration with grouped systems, a single Drug System section and direct navigation to settings with only one page.
- Added editable prop limits for each garage vehicle, with remaining-stock counts, visible exhausted equipment and a clear unlimited-stock label.
- Added Collect all to return nearby equipment from the selected vehicle to its stock while leaving other vehicles' and inventory-placed props untouched.
Notable Changes
- Fixed an issue where changing the online shop switch in General did not remain saved or agree with the Shop tab.
- Added a configurable direct radio shortcut with no default key, while preserving each player's existing bindings.
- Improved unavailable radial actions so supported interactions can explain missing requirements while remaining blocked.
- Fixed an issue where one incoming native phone call could be recorded in multiple dispatch centres at the same time.
- Fixed an issue where directly assigning a dispatch unit failed while recording the activity message.
- Fixed an issue where a prepared tablet notification could appear for another character or job after switching context.
- Added optional Chezza and Hex inventory integrations that recognize Sky restraints without requiring the original Jaksam Jobs Creator.
- Fixed an issue where removing placed vehicle equipment did not restore its available stock.
- Improved vehicle prop selectors so stock changes appear while the menu is open and delayed responses cannot overwrite another vehicle's selection.
Other Changes
- Improved standalone form controls and floating selectors with neutral backgrounds and the configured job colour.
- Improved shop categories, information cards, prices and product images with matching job colours and neutral image backgrounds.
- Added a dedicated restraint-tool image and expanded supply-delivery and Crime setting translations.
- Changed insufficient-funds boss-menu notices to informational logs while retaining error logs for actual failed transactions.
- Added translated vehicle-stock labels, collection controls and prop-limit descriptions across all seventeen supplied languages.
Changed Files
sky_jobs_base/config/config.luasky_jobs_base/config/inventory/README.mdsky_jobs_base/config/inventory/chezza_restraints.luasky_jobs_base/config/inventory/hex_restraints.luasky_jobs_base/config/inventory/restraint_tool.pngsky_jobs_base/config/locales/*sky_jobs_base/fxmanifest.luasky_jobs_base/import.sqlsky_jobs_base/source/*— delete and reinsert
Update InstructionsWhat to copy, what to keep and what to check1.51.01.52.0
Simplified update
Update sky_jobs_base safely
Read the complete update instructions in one continuous guide.
1. Back up and stop the server
Update sky_jobs_base from 1.51.0 to 1.52.0. For an older installation, complete the intervening guides first.
- Download
1.52.0and extract the ZIP. - Back up the installed resource folder and game database outside
resources/. - Stop the whole server in txAdmin or your hosting panel.
- Update Base to
1.49.0during the same maintenance. If you use Sky Mechanic, also update it to1.38.0; the shared supply owner and the Mechanic adapter must match.
2. Install the complete runtime and support files
Inside the installed sky_jobs_base folder:
- Delete
source/and copy the complete newsource/folder from1.52.0into its place. - Replace
fxmanifest.luaandimport.sqlwith the files from the same download. - Replace the complete
config/locales/folder, including the Job Configurator language packs. Transfer only your edited wording from the backup into matching new entries and keep new keys. - Copy
config/inventory/README.md,config/inventory/chezza_restraints.lua,config/inventory/hex_restraints.luaandconfig/inventory/restraint_tool.pngto the same paths. The hook files are optional integrations; copying them does not enable them in your inventory. - Keep your existing
config/config.lua, jobs, item definitions and other unchanged configuration. Follow the settings step for its new options.
No streamed models need replacing for this update. The delivery props use the configured GTA models.
3. Preserve saved settings and add file-based options
Open the installed sky_jobs_base/config/config.lua and find Config.UseIngameConfigurator.
true (normal setup): keep it enabled. Existing saved settings remain, and missing new defaults are supplied automatically. No /jobconfigimport is required. Do not import the download just to obtain new settings, because that can overwrite your saved choices. The optional in-game changes below can be made after startup.
Only when Config.UseIngameConfigurator = false: open the installed sky_jobs_base/config/config.lua and make these additions. Keep every existing job, location, provider secret and other setting.
- Find
Config.Tablet = { ... }, then itsapps = { ... }table. Immediately after the existingonline_shop = ...entry, addonline_shop_deliveries = true,if it is missing. Usefalseinstead if you deliberately hide the new delivery app. - Find
Config.Bells = { ... }. After that table's closing}, and beforeConfig.Interactions = {, add this complete block ifConfig.OnlineShopDeliverydoes not already exist:
Config.OnlineShopDelivery = {
allowsprint = true,
openDurationMs = 5500,
interactionDistance = 2.0,
boxModel = "prop_cs_cardbox_01",
carryItems = {
enabled = true,
storageDistance = 2.5,
forkliftModels = { "forklift" },
items = {},
deliveryPallet = { enabled = true, prop = "prop_boxpile_02c" },
},
}
- Within the existing
Config.Interactionstable, findboss_menu,duty_terminal,wardrobe,storage,locker,wholesale_shopandpublic_forms. Addunique = false,immediately after each entry's opening{if you want more than one access point of that type. Replace an existingunique = true,instead of adding a duplicate. Keep an explicittruewhere a single point is intentional. Multiple storage points in the same station open the same stock. - The direct radio binding is optional. Find
Config.JobRadial.keybindsand add this entry besidehandcuffif it is absent. An empty key leaves the action unbound; change onlykeyif you want a server default:
dispatch_radio_operate = {
enabled = true,
command = "sky_jobs_dispatch_radio",
key = "",
description = "Jobs: Operate radio"
},
- Find the existing
Config.PropPlacement = { ... }table. Immediately below itsvehicleAccess = ...line, addvehicleCollectDistance = 30.0,if it is missing. Keep your existingvehicleAccessvalue and all other entries. This is the collection radius around the vehicle in metres; choose a value from1to200if you want a different radius. The default is30.0.
These delivery-handling defaults apply to ordinary jobs. Mechanic keeps its own transport configuration. A job's existing onlineShopSettings now also accepts deliveryMode = "standard" for physical collection or deliveryMode = "player_inventory" for collection directly into the player's inventory. An omitted value uses physical collection. Keep the existing catalogue, collection points, delivery time and payment settings.
Existing ordinary-job online shops: an omitted delivery mode now uses physical collection. To keep collection directly into the employee's inventory, select Player inventory in the job's Online shop → Delivery mode setting after startup and save. Mechanic retains its existing mode unless you override it for the job.
Optional — configure the supply shop after startup: run /jobconfig, select the resource and job, then open Online shop. Keep existing access, catalogue and collection points. Choose Delivery mode → Physical delivery for boxes/pallets or Player inventory to put the collected order into the employee's inventory, then save. Ordinary jobs remain disabled until you enable their Online shop. The new delivery app uses the same job access. Company payment still requires the supply purchase permission.
For shared handling, open Jobs Base → Jobs & Storage → Supply delivery handling. This controls parcel opening time, pickup distance, parcel model, sprinting, storage distance, allowed forklifts, carried-item models/attachments and the delivery pallet. Save only deliberate changes. Mechanic retains its existing handling settings.
Optional — radio shortcut: open Jobs Base → Radial & Alerts → Job radial menu → Direct keybinds → Operate radio and set its key, then save. Players can set their own key in FiveM settings → Key bindings → FiveM → Jobs: Operate radio. The new default is unbound and does not replace saved player bindings.
Optional — set vehicle prop limits after startup: run /jobconfig, select the job's resource and the job, then open Vehicles. Find the existing vehicle by its spawn name. Under Prop limits, choose Add prop limit, enter a model from the job's existing Props list and set its limit. 0 disables that model for this vehicle; a model without a limit remains unlimited. Remove its limit row to make it unlimited again. Save, collect any equipment already placed from that vehicle, then park it and take it out again. New limits apply to the next vehicle spawn, not the one already outside.
Only if you maintain that job in Lua instead of /jobconfig: open the job resource's installed config/config.lua, for example sky_ambulancejob/config/config.lua. Inside Config.Jobs, find the matching job, then its vehicles list and the existing entry with the required model = .... Beside that vehicle's model line, add this complete table if propCounts is missing; if it already exists, adjust only the model keys you want to change and retain its other entries:
propCounts = {
["prop_roadcone02a"] = 4,
["prop_barrier_work05"] = 0,
},
Use model names from that job's existing prop catalogue. This example allows four cones and disables the listed barrier; omitted models stay unlimited. Existing custom per-vehicle props or trunkProps catalogues keep their explicit quantities and take precedence over propCounts. Do not remove custom catalogues during this update. Collect equipment, then park and take out the vehicle again to apply deliberate changes.
Optional — change the shared collection radius: run /jobconfig and open Jobs Base → World Interactions → Prop Placement → Collect-all radius (m). Keep the default 30 or choose 1–200, then save. This shared value measures distance from the vehicle. With Config.UseIngameConfigurator = false in Jobs Base, use the Config.PropPlacement.vehicleCollectDistance file entry described above instead.
Using Collect all: go on duty, stand beside the current job vehicle and open Radial → Vehicle interactions → Props. The selector shows remaining stock against its limit, or Unlimited; exhausted limited entries remain visible but unavailable. Collect all (count) returns that current vehicle's nearby placed equipment to its stock. Props taken from another vehicle spawn, props placed from inventory items and props outside the configured radius stay where they are. Removing one of the vehicle's props individually also returns its stock once. These vehicle-prop changes add no SQL migration or inventory item registration.
4. Update the database and check optional inventory hooks
Required database update: this version adds claim_reservations to the existing sky_mechanic_part_deliveries table so interrupted physical collection can be tracked. The historical table name is also used for ordinary jobs. Keep existing rows and order IDs.
- In
sky_jobs_base/config/config.lua, findConfig.AutoExecuteQuery. - If it is
true, do not run SQL manually. Start the updated server in the next step and wait for the database update to finish successfully. - If it is
false, open your database tool and select the actual game database before starting the server. On MariaDB, run the newsky_jobs_base/import.sql. On MySQL, opensky_mechanic_part_deliveriesin the table editor and check whetherclaim_reservationsexists. Only if it is absent, run:
ALTER TABLE `sky_mechanic_part_deliveries`
ADD COLUMN `claim_reservations` LONGTEXT NULL;
Do not add it twice, delete orders or run clear.sql. This MySQL step applies to an already complete 1.51.0 database; older installations must complete their earlier migrations first.
Inventory: no new item registration is required for this release. Existing restraint_tool registrations remain valid. The supplied restraint_tool.png is an additional image; keep your current configured item image unless you deliberately choose to use it.
Optional — Chezza Inventory 4.3.9: after Jobs Base is installed, open that inventory's fxmanifest.lua. In its existing client_scripts list, add '@sky_jobs_base/config/inventory/chezza_restraints.lua', before client/*.lua and after its shared configuration loads. If you customized Config.isHandcuffed, transfer your additional restraint checks into the downloaded hook before enabling it. This hook also disables the original Jaksam-only trunk bridge when its owner is stopped.
Optional — Hex Inventory 1.1.7: in that inventory's fxmanifest.lua, add '@sky_jobs_base/config/inventory/hex_restraints.lua', immediately after client/os_functions.lua in client_scripts. The hook keeps the original checks and adds Sky restraint denial. Use only the hook for your inventory; no other inventory files need replacing. Neither hook requires Sky Job Creator.
5. Start and verify the installed features
- Finish all installed resource updates. In
server.cfg, start the framework, database connector and chosen providers first, then Base1.49.0, Jobs Base1.52.0and the installed job resources. If used together, keep DOJ before Police and Ambulance before Crime. - Start the server, wait for database migration to finish and resolve the first console error before players join. Confirm Jobs Base reports
1.52.0. - Reconnect. Open
/jobconfigand confirm your existing jobs and locations remain. Save only deliberate optional changes from the settings step. - Open a job's tablet and garage. If its Online shop is enabled, place a small test order, collect it using the selected delivery mode and confirm it reaches the intended inventory or authorized station storage. With Mechanic installed, check an existing order and its delivery app too.
- Check your dispatch unit assignment and radio shortcut if used. If you enabled an inventory restraint hook, confirm a restrained player cannot open that inventory.
- If vehicle props are enabled for the job, go on duty and take out a job vehicle. Stand beside it, open Radial → Vehicle interactions → Props, place a limited prop and check that its available count drops. Use Collect all nearby and confirm the prop disappears and the count returns. Check that another vehicle's props and any props outside the collection radius remain placed.
Keep the backup until these checks pass. Configurator saves do not install SQL, items or inventory manifest entries.