Version 1.24.0
Highlights
- New
one_inventorysupport — auto-detected and selectable viaConfig.inventory = "one". Item, metadata, slot, and weapon handling all route through one_inventory. - New
codembanking backend — auto-detected and selectable viaConfig.banking = "codem". Job/society balances are read and updated through codem banking, with an automatic fallback to your framework's banking when needed. - Custom phone apps — sky_base can now register custom phone apps and push app notifications through the active phone adapter (currently
lbandcodem), so dependent resources can surface their own phone UI and alerts. - Streamed interaction NPCs — interaction-point peds now spawn and despawn based on player proximity, lowering the client entity count and improving performance on maps with many NPCs. Controlled by
Config.streamNpcEnabled(setfalsefor the previous "always spawned" behaviour).
Notable Changes
one_inventoryadapter — addsconfig/inventory/one.luaand registers one_inventory in auto-detection.Config.inventory = "auto"picks it up automatically; set"one"to pin it.codembanking adapter — addsconfig/banking/codem.lua. Auto-detection recognises codem banking and prefers it when present, resolving the correct backend and ensuring job accounts exist on first use.- Custom phone app exports —
exports["sky_base"]:RegisterCustomPhoneApp(app),exports["sky_base"]:SendCustomPhoneAppMessage(identifier, data), andexports["sky_base"]:SendPhoneAppNotification(data)are available for supported phone adapters. - Interaction NPC streaming options — new
Config.streamNpcDistance(range a player must be within for an NPC to exist) andConfig.streamNpcRefreshMs(how often the streaming pass re-evaluates distances) tune the new behaviour. - Database index management —
Sky.DB.Migratenow ensures declared indexes are present on already-existing tables, creating plain indexes asynchronously in the background so startup is not blocked. A newSky.DB.EnsureIndexutility adds an index or unique key to an existing table; it is idempotent and safe to call on tables sky_base does not own. Unique keys are applied only when a table is first created, to avoid failures on pre-existing data. - Standardized job-member lists —
Sky.FW.GetJobUsersnow includes each member'snameon ESX, QBCore, and QBox, removing a separate name lookup per member (faster boss menus). - ESX weapon name normalization — weapon names passed to ESX are now consistently upper-cased, preventing case-sensitivity failures on weapon add, remove, and possession checks.
- Ordered resource auto-detection — when several running resources could map to the same config option, detection now follows a defined priority order instead of an arbitrary one.
Other Changes
- Removed the dedicated
hexinventory bridge — withConfig.inventory = "hex", sky_base now uses the configured framework's own inventory functions instead of a separate adapter file. - Interaction NPCs are now cleaned up on resource restart, preventing orphaned peds.
- Optimized marker interaction handling for interaction points.
- Download sky_base from the CFX Portal.
- Create a backup.
- Replace the
/sourcefolder. - Replace
/fxmanifest.lua(version1.24.0). - Replace the
/config/phonefolder (all phone adapters updated for custom phone app support). - Replace the
/config/frameworkfolder (esx.lua,qb.luaupdated). - Replace the
/config/inventoryfolder — adds the newone.luaand deletes the removedhex.lua(delete the oldconfig/inventory/hex.luaif you keep customized files). - Replace the
/config/bankingfolder (newcodem.lua). - In
config/config.lua, update the inventory/banking value-list comments and add the new NPC-streaming options:
-inventory = "auto", -- auto, esx, qb, qbox, vrp, ox, qs, ps, codem, tgiann, jaksam, ak47, hex - can be customized in config/inventory
+inventory = "auto", -- auto, esx, qb, qbox, vrp, ox, qs, ps, codem, tgiann, jaksam, ak47, one, hex - can be customized in config/inventory
-banking = "auto", -- auto, sky, crm, qs, okok, bablo, fd, rx, tgg, kartik, esx, qb, renewed, wasabi, groot, ak47, jaksam - can be customized in config/banking
+banking = "auto", -- auto, sky, crm, codem, qs, okok, bablo, fd, rx, tgg, kartik, esx, qb, renewed, wasabi, groot, ak47, jaksam - can be customized in config/banking
+streamNpcEnabled = true, -- only spawn interaction-point NPC peds while the player is within streamNpcDistance (set false for legacy: peds exist everywhere at once)
+streamNpcDistance = 100.0, -- range a player must be within for an interaction NPC ped to exist; despawns past streamNpcDistance + 20%
+streamNpcRefreshMs = 1000, -- how often (ms) the streaming pass re-evaluates ped distances when no point is in interaction range
Config.inventory = "auto" and Config.banking = "auto" pick up the new adapters automatically — set "one" / "codem" only to pin them manually.
10. No SQL migration required.