Version 1.52.0
Highlights
- Added support for rcore Garage on ESX/QBCore and JG Vehicle Keys.
- Added persistent citizen display numbers that use available framework IDs and retain a stable fallback when no number exists.
Notable Changes
- Added voice-provider support for scoped muting, proximity limits and optional PMA muffling used by shared player interactions.
- Fixed an issue where automatic phone detection could choose different providers for fast and late-joining clients.
- Fixed an issue where LB Phone custom apps could remain unavailable after the phone restarted.
- Fixed an issue where interaction targets disappeared after a target-provider restart or used the wrong per-action distance with qb-target.
- Fixed an issue where interaction NPCs could appear above their authored coordinates.
- Fixed an issue where rejected ESX account credits were reported as successful.
Other Changes
- Improved vehicle registration so supported rewards and ownership imports can preserve garage ownership and key access together.
- Added normal ox_inventory player searches that retain the inventory's own access checks.
- Fixed an issue where Quasar and YSeries app notifications ignored the requested duration.
- Improved weather adapter loading so shared native helpers are ready before the selected integration.
Changed Files
sky_base/INSTALL.mdsky_base/config/README.mdsky_base/config/config.luasky_base/config/framework/esx.luasky_base/config/framework/qb.luasky_base/config/framework/qbox.luasky_base/config/integration/garage/ak47.luasky_base/config/integration/garage/codem.luasky_base/config/integration/garage/jg.luasky_base/config/integration/garage/msk.luasky_base/config/integration/garage/op.luasky_base/config/integration/garage/op_v3.luasky_base/config/integration/garage/qb.luasky_base/config/integration/garage/qbox.luasky_base/config/integration/garage/quasar.luasky_base/config/integration/garage/rcore.luasky_base/config/integration/garage/vms.luasky_base/config/integration/inventory/ox.luasky_base/config/integration/phone/lb-unique.luasky_base/config/integration/phone/lb.luasky_base/config/integration/phone/qs.luasky_base/config/integration/phone/yseries.luasky_base/config/integration/target/_init.luasky_base/config/integration/target/qb.luasky_base/config/integration/target/vivum.luasky_base/config/integration/vehiclekeys/jg.luasky_base/config/integration/vehiclekeys/server/_init.luasky_base/config/integration/voice/_init.luasky_base/config/integration/voice/_restrictions.luasky_base/config/integration/voice/pma.luasky_base/config/integration/voice/saltychat.luasky_base/config/integration/voice/yaca.luasky_base/config/integration/weather/helpers/native.luasky_base/config/integration/weather/native.luasky_base/config/locales/*sky_base/config/vehicle_storage.luasky_base/fxmanifest.luasky_base/import.sqlsky_base/source/*— delete and reinsert
Update InstructionsWhat to copy, what to keep and what to check1.51.11.52.0
Simplified update
Update sky_base safely
Read the complete update instructions in one continuous guide.
1. Back up and stop
These steps update sky_base from 1.51.1 to 1.52.0. If your installed version is older, complete its intervening update guides first.
- Download and extract the new resource. Back up the installed resource, customized configuration and translations, and the FiveM database.
- Finish active interactions and stop the server for the coordinated update. Keep the backup until the checks below pass.
2. Install the matching files
- Delete the installed
sky_base/source/folder and insert the complete newsource/folder, including the interface files. - Replace
fxmanifest.luaandINSTALL.mdfrom the same download. - Replace the complete
config/locales/folder. Copy only your customized wording into the matching new entries, keeping every supplied key and language file. - Follow the remaining file and configuration actions below before restarting.
Replace the listed framework adapters, phone adapters, target adapters, vehicle-key adapters, voice adapters and garage adapters with the new supplied files. If you customized one, compare its backed-up version and reapply only those custom changes to the matching new adapter. Copy the new config/integration/weather/helpers/native.lua before using the matching weather adapters and manifest. Replace config/vehicle_storage.lua, config/README.md and import.sql; preserve your existing configuration selections as explained next.
3. Keep settings and configure the update
Keep your current selections. In sky_base/config/config.lua, the existing garage = "auto" and vehiclekeys = "auto" values are unchanged; only their available-provider comments gained "rcore" and "jg". Keep your existing framework, phone, voice, weather, inventory and other provider choices. Base settings are file-owned; /jobconfig does not manage them.
The replacement config/vehicle_storage.lua adds the complete registration-defaults table below. Keep this table in the new file. If you use customized garage destinations, edit only the corresponding destination values in this table to match the installed garage, while keeping the new ownership-import functions in the supplied file. For example, the jg destination is "Legion Square"; rcore's job must match its own Config.DefaultGarageJob ("civ" by default). No vehicle is spawned by these defaults.
Sky.VehicleStorage.registrationDefaults = {
esx = { type = "car", stored = 1 },
qb = { state = 1, garage = "pillboxgarage" },
qbox = { state = 1, garage = "pillboxgarage" },
garages = {
msk = { type = "car", stored = 1, garage = "A" },
cd = { in_garage = 1, garage_id = "A", garage_type = "car", impound = 0, impound_data = "{}" },
jg = { type = "vehicle", in_garage = 1, garage_id = "Legion Square" },
codem = { parking = "Garage A" },
rcore = { job = "civ", type = "car" }, -- Match rcore's Config.DefaultGarageJob.
okok = { parking = "Legion Square" },
quasar = { type = "vehicle", garage = "Legion Square" },
op = { parking = "Würfelpark" },
},
}
Optional — rcore Garage: install and configure rcore_garage for ESX or QBCore, including its own database setup. In config/config.lua, keep garage = "auto" or replace the current garage value with "rcore". Start rcore before Base. This integration does not support Qbox or VRP. New vehicles do not have an assigned parking location until parked; rcore controls its own collection/transfer fees. Keep the key provider configured separately.
Optional — JG Vehicle Keys: follow JG's inventory setup and use one active key system. In config/config.lua, keep vehiclekeys = "auto" or replace its value with "jg"; start jg-vehiclekeys before Base. Preserve existing registered vehicles and keys. Removing a held key does not invalidate copies that were transferred or stored elsewhere.
No new voice setting is required in Base. Gag/hostage gameplay is configured in Jobs Base's own guide.
4. Database, items and assets
Base automatically creates sky_base_citizen_numbers on startup using its existing database migration system. Keep the table and its rows: fallback citizen display numbers must remain stable. Framework SSNs/citizen IDs remain preferred where available, and existing character identifiers still control records and permissions.
No separate SQL import is needed when the database account can perform the automatic creation. If your administrator provisions tables manually, select the same FiveM database and execute only the sky_base_citizen_numbers creation block at the top of the supplied sky_base/import.sql before starting Base:
CREATE TABLE IF NOT EXISTS `sky_base_citizen_numbers` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`identifier` VARBINARY(128) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uniq_citizen_number_identifier` (`identifier`)
) ENGINE=InnoDB;
This release adds no inventory item, item image or streamed model. Preserve existing vehicle ownership, account balances, phone data and custom provider configuration.
For the coordinated Jobs Base configurator migration, Crime Camper ownership migration, protected Coinshop subscriptions or optional Mechanic seasonal-tyre checkout: use oxmysql transactions. In this resource's config/config.lua, find the existing sql selector and set sql = "oxmysql", keeping the same database connection. Start oxmysql before Base. Other Base-only installations keep their existing supported SQL selector.
5. Start and check the result
Start the database connector, framework, inventory and configured phone/target/voice/garage/key providers first, then sky_base 1.52.0, then sky_jobs_base 1.55.0 if installed, followed by your installed consumers. Reconnect after the full restart; confirm the console has no provider or migration error.
Check an existing interaction NPC at its authored location and its configured target distance. During maintenance, check that interactions return after a planned target-provider restart. With LB Phone, check the existing Dispatch app after the phone starts again and with a newly connected player. On a supported garage/key setup, check an awarded vehicle's ownership and key access. Where citizen numbers are displayed, confirm the same person's number remains stable after reconnecting. Keep your existing providers if you do not use the new optional integrations.