Browse docs

Changelog

Full change history for sky_jobs_base.
Latest

Version 1.15.0

Requires sky_base 1.14.0 or newer. The admin permission system has been replaced — sky_base must be updated and the three bootstrap ACEs must be added to your server.cfg (see sky_base 1.14.0 changelog), otherwise /setboss and every creator command will deny everyone except the server console.

Highlights

  • New admin permission system/setboss no longer uses Sky.FW.IsAdmin; it now resolves via FiveM ACE (sky_jobs_base.setboss) auto-wired from Config.CommandPermissions at server start. Sky_Jobs.RegisterCreator accepts a new opts.permission parameter (e.g. "sky_policejob.stationcreator") that the creator command and the openCreatorByJob NUI path consume directly; the legacy permissionResource / permissionCommand pair is preserved for backward compatibility. Fixes admin commands silently denying admins on QBox after qbx_core:HasPermission was deprecated in qbx_core v1.8.0.
  • Live colleague map blips for every Sky job — the world-map blip system that shows on-duty colleagues moved from sky_policejob into sky_jobs_base under the neutral name Config.ColleagueMapBlips (was Config.OfficerMapBlips). The implementation was already job-agnostic; it now ships in the right resource so every Sky job (ambulance, mechanic, custom jobs, …) gets the feature without copy-pasting code. Blips now render whenever the player is on-duty — visible on the minimap during normal gameplay, on the pause-menu map, and on the tablet map. Server owners who prefer a clean minimap can opt out via the new Config.ColleagueMapBlips.showOnMinimap = false (blips then stay on the big maps only). The server pushes a fresh per-job snapshot every ~1s instead of each client polling every 3.5s — fixes the customer-reported "blip at the place where the person was but isn't anymore" lag for fast-moving colleagues out of streaming range.
  • Added Sky_Jobs.OpenCreatorByJobWithoutPermission(source, jobKey) server export (and matching exports.sky_jobs_base:openCreatorByJobWithoutPermission) — opens the station creator for a player by job key without running the permission check. Intended for admin tooling and trusted integrations that have already authorized the caller upstream.
  • Interaction points now respect a forceMarkerInteraction flag on the creator entry definition — that single interaction always uses marker + help notification, even if a target backend (ox_target / qb-target) is active on the server. Pairs with the matching sky_base 1.14.0 feature.

Notable Changes

  • Fixed public interactions being unreachable for players whose current job didn't match the creator entry's jobKey. The 1.14.0 job-locking security check was too strict and also blocked entries explicitly marked public = true; those are now exempt while non-public entries stay job-locked as before.
  • /dutytest (debug command) now resolves via Config.CommandPermissions.dutytest instead of a hardcoded group.admin ACE lookup. Server owners can broaden access (e.g. add supporter) or restrict it via the same table as every other admin command.
  • Server-side map broadcast now routes name and grade lookups through Sky_Jobs.PlayerCache instead of Sky.FW.* — silences the per-second debug spam (Sky.FW.GetName(N), Sky.FW.GetJobData(N, grade), …) that flooded the console on servers with Sky.Config.debug = true. No behaviour change.
  • Wholesale shop purchases now accept free items (price 0) — parity with the per-job shop change shipped in 1.12.0.
  • Tablet Boss Menu and Tablet Chat views: fixed content overflow and inconsistent scrolling on long member/message lists.
  • Tablet Map app is now responsive — layout adapts cleanly to different tablet aspect ratios, the marker list pane resizes properly on narrow widths, and the Home view exposes the Map app at the correct size for tablets running in alternate UI scales.
  • Fixed panic / ping alerts being delivered to players of unrelated jobs. When a channel's allowedJobs filter was left empty, the system previously allowed any on-duty player to receive the alert; it now restricts delivery to players whose current job is a registered Sky job (or a linked off-duty variant). Setups that customized Config.Panic.allowedJobs / Config.Ping.allowedJobs are unaffected.
  • New Sky_Jobs.IsJobRelated(jobKey) server helper + sky_jobs_base:isJobRelated callback for integrators that need to check whether a job is registered with Sky_Jobs (covers both on-duty and linked off-duty job keys).
  • Server console now prints a clearer info message when the FiveManage API key is missing, instead of a silent fallback.

Other Changes

  • Added Swedish (se) translation.

Version 1.14.0

Before updating, make sure sky_base is up to date.

Highlights

  • Security fix: the server now enforces job ownership on every creator-interaction request (boss menu, wardrobe, storage, garage, …). Players whose current job doesn't match the station's assigned job can no longer reach those interactions.

Notable Changes

  • Garage: simplified the vehicle reclamation logic — reclamation now follows only the offline-and-unresolvable check introduced in 1.13.0, so vehicles no longer flip back to "stored" in additional edge cases.
  • A misconfigured pedHash in Config.Interactions now skips just that one NPC with a warning instead of aborting the rest of the interaction rebuild.
  • Boss menu / job-data lookups now handle unknown jobs or malformed grade tables gracefully instead of failing with a runtime error.

Other Changes

  • Tablet map dispatch details: action button labels now wrap inside their boxes so longer translations no longer overflow.

Version 1.13.0

Before updating, make sure sky_base is up to date.

Highlights

  • Added a new sky_jobs_base:creator:pedSpawned client event — consuming resources can react to creator NPC spawns through a single event handler instead of registering hooks per interaction.
  • Custom storage UI now accepts .webp background images alongside PNG/JPG.
  • CCTV tablet app is now only shown for police and ambulance jobs.

Notable Changes

  • Fixed garage vehicles flipping back to "stored" status when a player parked out and the vehicle briefly lost server scope. Reclaim now requires the owner to be offline AND the vehicle unresolvable for ~90 seconds before being marked stored, instead of triggering after a single 30 s tick.
  • Fixed Config.Interactions[*].scenario and onSpawn not re-applying when an existing NPC was reused on creator rebuild (job / duty change). Hooks now also run on reuse, not only on fresh spawns.
  • Fixed helicopter cam target lock not releasing in some cases.

Other Changes

  • No additional changes.

Version 1.12.0

Highlights

  • Job radial menu and target integration now work under both ox_target and qb-target — follows the new Config.target selector introduced in sky_base 1.11.0.
  • Added a tablet push-notifications API — external resources can push notifications onto the tablet home screen.
  • Free items (price 0) are now allowed in per-job shops and the wholesale shop. Negative prices are still rejected.
  • Trunk prop placement is now exposed as a reusable export with optional confirmation callback, so external resources can consume an item only after placement is confirmed.

Notable Changes

  • Fixed Config.Interactions[*].onSpawn callbacks not firing for interaction NPCs. The scenario option was unaffected. External resources that need spawn-time customization (outfits, props, weapons) should register hooks via the documented client-side API.
  • Fixed garage vehicle purchase confirmation modal showing English fallback text — added the missing confirmPurchaseTitle, Confirm, Cancel, Message, purchaseSuccessTitle, and Message keys to all 9 locales.
  • Locale drift cleanup across CN, ES, FI, FR, NL, PL, RS — restored missing keys for the garage plate editor, CCTV / Map waypoint actions, station creator job-blip modals, tablet missingItem state, panic / ping mapping descriptions, and CameraUploadFailed.
  • Fixed speedcam image capture failure.
  • Config.JobRadial comments updated to reference the new Config.target from sky_base instead of the removed enableOXTarget flag (no behaviour change for existing values).

Other Changes

  • No additional changes.

Version 1.11.1

Highlights

  • Tablet now reopens the last-used app automatically after closing and reopening the tablet.
  • ox_target interaction labels are now fully localized — added a new InteractionLabels table in all 9 languages (CN, DE, EN, ES, FI, FR, NL, PL, RS). Manual overrides via Config.Interactions[id].label still take precedence.
  • Interaction NPCs now support optional scenario and onSpawn fields in Config.Interactions — NPCs can play a GTA scenario on spawn and run custom setup code (outfits, props, extra tasks).
  • Security fix: helicopter spotlight events are now validated against Config.HeliCam.allowedJobs and duty status, blocking non-authorized players from griefing with spotlights.

Notable Changes

  • Default Config.JobRadial.mode changed from hold to toggle.
  • Grade change notifications now show richer info and update live.
  • Fixed ox_target radial actions becoming unclickable after the first trigger.
  • Station creator blip handling refined.
  • Map exclusion zones now require police-group access.
  • Fixed rare server errors during public forms, gallery, and chat interactions.
  • Dispatch now cleans up correctly when a player disconnects.

Other Changes

  • CCTV bodycam cache is released when a player disconnects.
  • Refreshed mechanic and tuner card artwork.
  • Table header rendered transparent again.
  • General server-side performance improvements.

Version 1.11.0

Highlights

  • Storage, locker, and vehicle trunk now track item metadata as a separate stack — items with different metadata no longer collide under the same unique key (new metadata_key column and refreshed unique indexes).
  • Added ox_target integration for job radial actions (Config.JobRadial.oxTarget.enabled) so non-tablet actions can be triggered through ox_target without opening the radial menu.
  • Added optional tablet item requirement (Config.Tablet.requireItem + Config.Tablet.item) — when enabled, the tablet is registered as a usable item and required to open.
  • Added openCreatorByJob server export (Sky_Jobs.OpenCreatorByJob) to open the station creator by job key with per-job permission checks.

Notable Changes

  • Boss menu salary input rebuilt with an improved SliderInput component (unit labels, direct numeric entry, validation).
  • Weapon metadata is now preserved through garage and storage add/remove operations.
  • CCTV network is now shared across police sub-jobs.
  • Storage metadata-index migration now auto-resolves the correct prefix length from each column's declared type (VARCHAR/CHAR/TEXT/BLOB).

Other Changes

  • Added missing translations across all 9 locales (CN, DE, EN, ES, FI, FR, NL, PL, RS).
  • Fixed spurious error notification on every shop weapon purchase.

Version 1.10.0

Highlights

  • Added prop placement with in-game editor to the station creator.
  • Added license plate change feature in the garage menu with permission checks and DB sync.
  • Added per-job blip configuration directly from the creator UI (sprite, color, scale, display, short range).
  • Added garage vehicle grade restrictions — vehicles can now be locked behind job grades.

Notable Changes

  • Map App now has a button to set waypoints to station markers.
  • Added tablet:openHome event for external scripts to open the tablet to the home screen.
  • Creator placement settings for fine-tuning marker/interaction point positions.
  • Improved InputModal component with better validation and layout.

Other Changes

  • Comprehensive translation update across all 8 languages (CN, ES, FI, FR, NL, PL, RS, DE).
  • Fixed missing garage plateEditor and status locale keys in EN and DE.
  • Fixed merge conflicts in ES and FI locale files.
  • Fixed missing translation keys in garage interface.

Version 1.9.0

Highlights

  • Added auto database migration (Config.AutoExecuteQuery) — missing tables and columns are created automatically on resource start.
  • Added dedicated fuel and fuel_type columns for job vehicles, persisted via the sky_base fuel bridge.
  • Added salary pause/resume exports (pausePlayerSalary, resumePlayerSalary, isPlayerSalaryPaused) to prevent paycheck farming via AFK.
  • Added unsaved changes confirmation popup in the Roles view.

Notable Changes

  • Roles can now only manage roles with a lower rank.
  • Management interfaces now rebuild client-side when a player's job or grade permissions are updated via boss command.
  • Vehicle mods and liveries are now safely persisted in the garage system.
  • Migration logic now uses centralized Sky.DB.Migrate() from sky_base.
  • Preserved NPCs are now repositioned when creator points are moved.
  • Added retry logic for Sky_Jobs export loading.

Other Changes

  • Added radial menu open sound.
  • Fixed "not on duty" notify not appearing.
  • Disabled default station blips for hospital creator points.
  • Added missing translation keys for wardrobe, billing, finance, garage, and management views.

Version 1.8.0

Highlights

  • Added external garage integration exports for trunk/prop functionality with third-party garage systems.
  • Radial menu default changed from toggle to hold mode.

Notable Changes

  • Station map blips are now visible for all players; interaction points remain job-filtered.
  • Optimized CCTV bodycam validation with native framework functions and preserved cache on duty transitions.
  • Panic button now notifies off-duty players within notification scope.
  • NUI focus is disabled in creator menu to prevent input conflicts.

Other Changes

  • Garage location is now automatically set when clicking Add in creator menu.
  • Creator menu now plays navigation sounds for UX feedback.
  • Station blips set to short range to reduce map clutter.
  • Fixed station creation failing in creator menu.
  • Added missing CCTV config section (Config.Cctv).

Version 1.7.0

Highlights

  • Fixed SIGSEGV crash caused by screenshot-basic server export; uploads now go directly from client via presigned URL.
  • FiveManage API migrated from V2 (fmapi.net) to V3 (api.fivemanage.com) with unified baseUrl.
  • Removed hard screenshot-basic dependency from fxmanifest.

Notable Changes

  • FiveManage API key is no longer sent to the client during video uploads.
  • Fixed trunk transfer failures caused by incorrect return-value comparison.
  • Item metadata is now preserved through trunk transfers.
  • Garage now retries alternative spawn points when primary is blocked.
  • Server now tracks occupied spawn points to prevent concurrent spawn collisions.
  • Duty state is persisted by identifier and restored on rejoin.

Other Changes

  • NPC entities are preserved during job interaction rebuilds instead of being respawned.
  • Managers are now notified of member list changes on disconnect.
  • Reduced CPU overhead by increasing sleep intervals in non-time-sensitive loops.
  • Added TTL caching for CCTV plate lookups.
  • Added early exits in idle threads (CCTV, panic alerts, salary processing).
  • Replaced many direct framework calls with PlayerCache-first helpers.
  • Added Finnish translation.

Version 1.6.0

Highlights

  • Shop items now support quantity input for bulk purchases.
  • Locker and station storage now support item metadata for ox_inventory.

Notable Changes

  • Added CCTV/speedcam waypoint button to set GPS markers from tablet.
  • Added configurable station map blips.

Other Changes

  • Updated German translations and added new English locale keys.

Version 1.5.0

Highlights

  • Radial menu now supports hold and toggle modes with improved input blocking.
  • Added infinite scrolling and backend pagination for transaction logs.
  • Added localization and UI for vehicle selling feature.

Notable Changes

  • Table component now includes sticky headers, row limits, and text truncation tooltips.
  • Duty status changes now include retry logic with immediate UI feedback on failure.
  • Improved identifier resolution and job-data synchronization across resource starts.
  • Job creator now supports boat dock markers and interaction points.
  • Finance UI now refreshes in real-time through server triggers.
  • Refined duty-time tracking and salary payout calculations.

Other Changes

  • Player cache operations now gate on framework load state.
  • Calendar reminder polling now handles app availability more robustly.
  • Table timestamps now render in fixed German locale.
  • Hardened player cache refresh during initialization with protected calls.
  • Optimized server performance by caching job data and bodycam item status.
  • Removed calendar debug logging.
  • Added Chinese translation.
  • Added payroll localization strings across all languages.

Version 1.4.0

Highlights

  • Added image gallery and screenshot capture system with secure uploads.
  • Added boat garage support.
  • Added job invitation system with interactive popup.

Notable Changes

  • Added My submissions section in public forms.
  • Staff can now add internal or citizen-visible notes to public forms.
  • Added custom background image support for custom storage UI.
  • Added option to disable Go Back button in custom storage.
  • Panic ping and dispatch now use registered key mappings.
  • Ping and panic markers now auto-remove after configurable duration.
  • Radial menu now only shows for registered jobs.

Other Changes

  • CCTV now respects player visibility settings.
  • Improved unregistered-job duty handling.
  • Improved health percentage calculation to avoid negative values.
  • Improved member online/offline accuracy and multichar identifier resolution.

Version 1.1.1

Highlights

  • Hotfix: fixed storage bug.

Notable Changes

  • No additional notable changes documented.

Other Changes

  • No additional changes documented.

Version 1.1.0

Highlights

  • Added /setboss [job] [grade] command for boss/wholesale fallback access assignment.
  • Added option to disable tablet apps or entire tablet.
  • Added back off-duty job support.

Notable Changes

  • Fixed locale issues and missing locale entries for tablet apps.
  • Fixed duplicate NPC spawn on player join.
  • Fixed go-on-duty radial notify behavior when player lacks job.

Other Changes

  • Fixed NPC heading application.
  • Added image path config support.
  • Fixed dashcams and vehicles on map.

Screenshot & Webhook Update

Highlights

  • screenshot-basic is no longer a hard dependency.
  • Screenshot uploads now run client-to-FiveManage via presigned URLs (no server temp files).
  • FiveManage API updated from V2 to V3 endpoints.

Notable Changes

  • Video uploads now use presigned URLs for improved security.
  • Webhook config simplified to single baseUrl.

Other Changes

  • FiveManage SDK resource is no longer required for sky_jobs_base.