Browse docs

Changelog

Full change history for sky_base.
Latest

Version 1.18.0

Highlights

  • Added a new unified currency & formatting system — the new Sky.Currency API plus a public config/currency.lua let you define custom currencies and display formatters (symbol, symbol position, thousands/decimal separators, rounding, digit grouping, and time/clock formatting). Ships with ready-to-use money and time-based examples and is fully extensible.
  • Added an internal, database-backed banking option — set Config.banking = "sky" to let sky_base manage job/society accounts in its own database, with no external banking resource required. Additionally Config.useSkyBankingFallback (default false) makes sky_base fall back to its own accounts whenever the selected banking resource is unavailable.
  • Added a unified housing entrance resolution system — a new /config/housing folder with adapters for multiple housing scripts (nolag, qs, rtx, rx, sn, vms) and a server-side fallback so entrance locations resolve reliably.

Notable Changes

  • Added Jaksam banking support — auto-detected and selectable via Config.banking = "jaksam". Updated value list: auto, sky, crm, qs, okok, bablo, fd, rx, tgg, kartik, esx, qb, renewed, wasabi, groot, ak47, jaksam.
  • Added Jaksam and Wasabi progressbar support — selectable via Config.progressbar. Updated value list: auto, esx, ox, qb, mythic, hex, jaksam, wasabi. Servers running multiple Jaksam Creator resources are now handled correctly.
  • Added myFuel support — auto-detected and selectable via Config.fuel = "myFuel". Updated value list: auto, lc, ox, legacy, rcore, hex, myFuel, native.
  • Improved tgiann, qs, and codem inventory integrations for more consistent item, metadata, and weapon handling.
  • Shared/society banking accounts are now auto-created on first access (kartik & qb banking) — jobs added after the banking resource has started work without a server restart.

Other Changes

  • Raised the default interactionDistance to 2.0 and added a new Config.defaultMarkerSize (default 1.2) used when a marker has no explicit scale.
  • Config.showMarkersWithTarget now defaults to true, so configured interaction markers stay visible alongside an active target backend.

Version 1.17.0

Highlights

  • Added progressbar adapter system — new unified Sky.Functions.Progress / Sky.Functions.Bar API with auto-detection across esx, qb, ox, mythic, and hex progressbar resources. Configure via Config.progressbar = "auto" (or pin a specific adapter). Updated value list: auto, esx, qb, ox, mythic, hex.

Notable Changes

  • Added jacksam jobscreator support on the QBCore framework — jobs created through jacksam's jobscreator are now recognized by the QBCore framework integration.

Other Changes

  • No additional changes.

Version 1.16.0

Highlights

  • Added hex_4_inventory support — auto-detected and selectable via Config.inventory = "hex". Updated value list: auto, esx, qb, qbox, vrp, ox, qs, ps, codem, tgiann, jaksam, ak47, hex.

Notable Changes

  • Fixed Sky.FW.AddJobGrade on ESX and QBCore silently misbehaving on the duplicate-grade guard — the existence check was being called with the full gradeData table instead of the grade number, so it never reported "grade already exists" correctly. Adding grades through Sky.FW.AddJobGrade now reliably skips ones that are already registered.
  • Removed a leftover debug print that fired for every item on every Qbox inventory normalization call (console spam, no behaviour change).

Other Changes

  • No additional changes.

Version 1.15.0

Highlights

  • Added qb-inventory support - auto-detected and selectable via Config.inventory = "qb-inv".
  • Added normalized inventory slot and metadata helpers for supported inventory adapters.
  • Added Russian locale support via Config.locale = "ru".

Notable Changes

  • Added Dynamic Interaction point distance
  • Inventory item metadata handling was improved for several adapters, including metadata-aware item and weapon removal where the inventory backend supports it.

Other Changes

  • No additional changes.

Version 1.14.0

Breaking — the admin permission system has been replaced. After updating sky_base, every Sky job resource (sky_jobs_base, sky_ambulancejob, sky_policejob, sky_mechanicjob) must also be updated to the matching release, and three one-time ACEs must be added to your server.cfg. See Update Instructions.

Highlights

  • New admin permission systemSky.Config.AdminGroups and the related Sky.FW.IsAdmin / Sky.FW.HasGroup / Sky.FW.GetGroup are gone. Each job's Config.CommandPermissions table is now the single source of truth for who can use which admin command. At server start sky_base auto-emits add_ace group.<g> sky_<resource>.<command> allow for every entry, and admin commands resolve via a single IsPlayerAceAllowed check at runtime. Fixes the QBox bug where every admin command silently denied admins because qbx_core:HasPermission was deprecated in qbx_core v1.8.0 and removed. QBCore wires both group.* and qbcore.* prefixes for resilience; on ESX the same group.* ACE principals are picked up via es_extended's setGroup.
  • Added g-banking and g-billing support (groot) — auto-detected and selectable via Config.banking = "groot" / Config.billing = "groot".
  • Added AK47 banking and AK47 inventory support — auto-detected and selectable via Config.banking = "ak47" / Config.inventory = "ak47".

Notable Changes

  • Added codem-phone integration — auto-detected and selectable via Config.phone = "codem". Updated value list: auto, esx, qb, d, gks, lb, lb-unique, yserie, codem.
  • Fixed qb-target compatibility on QBCore servers — radial menus and workshop-creator zones now register correctly. The shim was using the wrong export names (AddSphereZone / AddGlobalOption), causing zones to silently no-op on QBCore.
  • Interaction points now support a per-point forceMarkerInteraction flag — when set, that single interaction always uses marker + help notification, even if a target backend (ox_target / qb-target) is active. Useful for specific markers that should stay as markers regardless of the global target setting.
  • Added a global Config.showMarkersWithTarget toggle (default false) — when set to true, configured interaction markers stay drawn alongside the target backend instead of being hidden. Pairs with the per-point forceMarkerInteraction flag for finer control: server-wide on/off via this setting, per-interaction override via the flag.

Other Changes

  • No additional changes.

Version 1.13.0

Highlights

  • Added fd_banking billing integration — auto-detected and selectable via Config.billing = "fd". Updated value list: auto, esx, codem, codemv2, okok, jacksam, quasar, vms, rxbilling, wasabi, corem, fd.
  • Added hex_3_fuel fuel adapter — auto-detected and selectable via Config.fuel = "hex". Updated value list: auto, lc, ox, legacy, rcore, hex, native.

Notable Changes

  • Renewed-Banking: jobs that are added after Renewed-Banking has already started now work without a server restart — their accounts are created on first use.
  • Renewed-Banking: Sky.Job.AddMoney / Sky.Job.RemoveMoney now correctly return false when the underlying transaction is rejected, so callers can react to a failed payment.
  • Interaction NPCs configured without a pedHash are now skipped with a warning instead of breaking the spawn flow.

Other Changes

  • No additional changes.

Version 1.12.0

Highlights

  • Added Wasabi Banking (wasabi_banking) support — auto-detected and selectable via Config.banking = "wasabi".
  • Renamed the banking key "qbox" to "renewed" for the Renewed-Banking integration. Updated value list: auto, crm, qs, okok, bablo, fd, rx, tgg, kartik, esx, qb, renewed, wasabi.

Notable Changes

  • Breaking: if you previously set Config.banking = "qbox" for Renewed-Banking, change it to Config.banking = "renewed". Config.banking = "auto" still detects Renewed-Banking automatically without changes.
  • Fixed interaction NPC onSpawn callbacks not firing when an existing entity is reused (e.g. when a station creator rebuilds while preserving the existing ped). scenario and onSpawn hooks now also apply to preserved peds.
  • Improved Qbox job grade normalization for consistency with other framework integrations.
  • Added a debug warning when vehicle keys are added or removed without a configured key adapter handler — helps diagnose Config.vehiclekeys misconfigurations.

Other Changes

  • No additional changes.

Version 1.11.0

Highlights

  • Added qb-target support alongside ox_target via a new Config.target selector ("ox", "qb", "auto", or "none"). The backend is loaded from the new /config/target folder and replaces the marker + help-notification interaction when a target backend is active.
  • Default Config.target = "none" keeps the existing marker + Press E behaviour for every existing server — target backends are strictly opt-in.

Notable Changes

  • Breaking: Config.enableOXTarget has been removed. Replace it with Config.target = "ox" (or "qb" / "auto" / "none").
  • Reverted the Qbox permission detection change from 1.10.1 — Qbox admin / group checks use qbx_core:HasPermission again.

Other Changes

  • No additional changes.

Version 1.10.1

Highlights

  • Improved weapon handling across ox_inventory, qs-inventory, ps-inventory, jaksam, codem, and tgiann — weapon add, remove, and carry checks now go through each inventory's native logic for cleaner behaviour.
  • Qbox admin and permission detection updated for Qbox v1.8.0 compatibility — now uses the native FiveM ACE permission system.
  • Interaction NPCs can now play a GTA scenario on spawn and run a custom setup callback (e.g. give armor, equip weapons, add extra tasks) through new optional scenario and onSpawn options.

Notable Changes

  • Removed a leftover debug message that printed on every Qbox permission check.

Other Changes

  • No additional changes.

Version 1.10.0

Highlights

  • Banking system refactored into dedicated per-banking adapter files (crm, qs, okok, bablo, fd, rx, tgg, kartik, esx, qb, qbox), replacing inline framework code.
  • Added Config.banking selector with auto detection (matches the existing inventory, fuel, and vehiclekeys pattern).
  • Added Config.defaultCallbackTimeout to control the timeout for client-triggered callbacks.
  • Added metadata propagation for jaksam_inventory AddItem / RemoveItem calls.

Notable Changes

  • Fixed weapon transfer handling across QBCore and Qbox frameworks.

Other Changes

  • No additional changes.

Version 1.9.0

Highlights

  • Inventory system refactored into dedicated per-inventory adapter files (ox, qs, jaksam, codem, ps, tgiann, esx, qb, qbox, vrp), replacing inline framework code.
  • Added Corem support (crm-billing and crm-banking) for billing and society money management across ESX, QB, and QBox.

Notable Changes

  • Default language changed from German to English.

Other Changes

  • No additional changes.

Version 1.8.0

Highlights

  • Added fuel bridge system with auto-detection for lc_fuel, ox_fuel, LegacyFuel, rcore_fuel, and native GTA fallback.
  • Added dedicated vehicle key adapter section with support for brutal, mk, mrnewb, msk, qb, quasar, vehicles_keys, wasabi, and kiminaze.
  • Added centralized Sky.DB.Migrate() for declarative database migrations across all Sky-Systems scripts.
  • Added support for wasabi-billing, RxBilling, and 17mov_Phone.

Notable Changes

  • Added migration tracking system to synchronize resource initialization with pending database schema updates.
  • Added retry logic for sky_base export loading (up to 5s) to prevent failures from resource load order issues.
  • Added cd_garage persistent vehicle plate update trigger when license plates are modified.
  • Added Qbox support to the Quasar garage adapter.
  • Added inventory-full notification when calling Sky.Reward.

Other Changes

  • Fixed Quasar garage compatibility issues with Qbox.
  • Fixed case-insensitive weapon detection across ESX, QB, and Qbox frameworks.

Version 1.7.0

Highlights

  • Added Sky.FW.GetPlayerDirectoryQueryConfig for QB, QBox, and VRP frameworks.
  • Added tgg-banking support for society money management across ESX, QB, and QBox.
  • Added kartik-banking support for society money management across ESX, QB, and QBox.

Notable Changes

  • Added hex_4_inventory support for ESX with pcall fallbacks for missing ESX item methods.
  • Fixed GetPlayerDirectoryQueryConfig for QB and QBox.

Other Changes

  • Fixed SanitizeForSQL stripping Unicode characters; now preserves Unicode letters and removes only SQL-dangerous characters.

Version 1.6.0

Highlights

  • Fixed missing locales variable in Security.lua causing nil index error in cooldown function.
  • Interaction points now support reusing existing NPC entities and preserving peds on rebuild (keepNpc).

Notable Changes

  • Added GetPlayerDirectoryQueryConfig function for ESX framework.
  • Fixed import.lua initialization order so Sky table is initialized before export assignment.
  • Optimized polling intervals for callbacks and database queries to reduce CPU overhead.
  • Interaction loop now runs at 0ms when in range for frame-accurate marker rendering.

Other Changes

  • OxMySQL errors now log failing queries through Sky.Debug before propagating.
  • Added Finnish translation.

Version 1.5.0

Highlights

  • Refactored ESX player retrieval to direct ESX.GetPlayerFromId() calls for better compatibility.
  • Inventory items now include metadata across ESX, QB, and QBox.

Notable Changes

  • ChangePlayerName now synchronizes live player metadata in addition to DB updates.
  • Added normalizeInventoryMetadata() helper to unify metadata/info handling.
  • Improved qs-banking compatibility with resource/export fallbacks and automatic society_ prefix fallback.
  • Added VMS/CMS billing integration (config/billing/vms.lua).

Other Changes

  • Fixed Locales variable capitalization in shared initialization.

Version 1.4.0

Highlights

  • Added ox_inventory metadata support for item handling across ESX, QB, and QBox.
  • Added support for ESX 1.13+ static methods.

Notable Changes

  • Player data retrieval now properly distinguishes source IDs and string identifiers.
  • ESX version detection now uses resource metadata instead of dynamic checks.
  • Standardized player data access via runPlayerMethod helper.

Other Changes

  • Fixed getFirstname and getLastname calls for ESX.
  • Updated qs-banking integration to correct export/property for balances.
  • Refactored database module debug string formatting.