Version 1.44.0
Highlights
- Added faction billing for approved speed-camera captures of shared Sky job-garage vehicles, with the same vehicle fine visible in the garage and Boss Menu.
- Added server-side jail integration for external MDTs to list jails, sentence or release online players and read their remaining sentence time.
Notable Changes
- Improved citizen, case, report and warrant labels to display readable citizen numbers instead of internal character identifiers.
- Fixed an issue where invalid Speed Cams app settings or zero subscription intervals prevented reliable phone registration and renewals.
- Fixed an issue where jail cleaning props appeared around the player instead of the active jail work area, and synchronized carried delivery boxes for nearby players.
- Fixed an issue where social-work pickups and drop-offs ignored the configured target interactions or continued after their task was cancelled.
- Fixed an issue where linked citizen and report controls overflowed warrant or BOLO cards and hid their action buttons.
Other Changes
- Fixed an issue where GPS, player and jail interactions stopped working after the target provider restarted.
- Fixed an issue where police dispatch alerts and interaction errors did not use the selected language correctly.
- Fixed an issue where billing animations created an extra prop or left a printer behind after cancellation.
- Improved tablet invoice direction labels and cleared cached invoice details when billing access is revoked.
- Added a packaged installation checklist with dependency and inventory setup links.
Changed Files
sky_policejob/INSTALL.mdsky_policejob/config/locales/*sky_policejob/fxmanifest.luasky_policejob/import.sqlsky_policejob/source/*— delete and reinsert
Update InstructionsWhat to copy, what to keep and what to check1.43.11.44.0
Simplified update
Update sky_policejob safely
Read the complete update instructions in one continuous guide.
1. Back up and stop
Database prerequisite for the shared configurator: when Jobs Base uses Config.UseIngameConfigurator = true (the supplied default), this upgrade's primary-group migration requires oxmysql transactions. Install oxmysql for your existing FiveM database and start it before Base. In sky_base/config/config.lua, find the existing sql = "auto" / sql = "mysql-async" entry and set sql = "oxmysql", preserving the same database connection and all data. Then follow the Base and Jobs Base update guides. This requirement applies before the first updated start; disabling automatic schema creation does not replace the transaction requirement.
These steps update Sky Police Job 1.43.1 to 1.44.0. Install Sky Base 1.52.0 and Sky Jobs Base 1.55.0 together with Police and complete both Base update guides.
Back up the FiveM database and the complete installed resource, including your customized configuration and translations. Keep a copy of the old files until your checks pass. Stop the server before replacing files so saved jobs and active work cannot change during the update. Keep the resource folder names unchanged.
Preserve existing citizens, cases, reports, warrants, evidence, jails, sentences and speed-camera reviews. The two new speed-camera columns must be present before Police is reopened to players; use the automatic or manual route below.
2. Install the matching files
In your installed sky_policejob folder:
- Delete the old
source/folder completely, then copy the completesource/folder from the new download, including its interface. - Copy the matching
fxmanifest.lua,INSTALL.mdandimport.sqlfrom that same download. Copyingimport.sqldoes not execute it; use the database decision below. - Replace the complete
config/locales/folder with the one from this download. If you customized translations, copy only your changed wording into the matching entries of the new files and retain every new key. If you customized dispatch alerts, put your wording into the matchingDispatchAlertsentries at the root of the new locale table; those entries are no longer nested underNui. - Keep your existing
config/config.lua, saved jobs, jails, offences, provider selections and permissions. This Police delta adds no required configuration key.
No item image or streamed asset replacement is introduced by this Police update. There are no outside-source removals or renames.
3. Keep settings and configure the update
With Config.UseJobConfigurator = true: retain all saved /jobconfig settings. Do not import or reset them for this update. With false, keep your existing sky_policejob/config/config.lua; no new block is required.
If using shared-fleet speed-camera fines: after startup, open /jobconfig, select Police Jobs, and review your existing Billing and Speed Camera settings. Keep Billing and speed-camera billing enabled as intended and select review processing for captures that officers approve. With file-based configuration, keep Config.Billing.enabled = true, Config.SpeedCam.billingEnabled = true and Config.SpeedCam.processingMode = "review" when using this workflow. Preserve other billing and offence values.
Faction settlement uses Sky Billing. In sky_base/config/config.lua, the existing Config.billing provider must be "sky" for these faction invoices. Keep another provider if that is your server's choice, but it cannot settle these faction fines; approval reports billing unavailable instead. No provider switch is required for servers that do not use this feature. Keep the existing Billing duty policy, View Billing (VIEW_BILLING) permission for viewing invoices and Manage Money (MANAGE_MONEY) permission for payment from the faction account.
Optional — repair an invalid Speed Cams phone-app setup: after startup, open /jobconfig, select Police Jobs, then Speed Camera > Speed Camera App. Valid customized settings remain unchanged. Blank or invalid required fields fall back to the shipped values below; review and save a corrected value if the app previously failed to register or renew:
| Visible field | Saved setting key | Existing file value / shipped fallback |
|---|---|---|
| Identifier | speedCameraAppIdentifier | Config.SpeedCameraApp.identifier = "sky_speedcams" |
| Name | speedCameraAppName | Config.SpeedCameraApp.name = "Speed Cams" |
| Icon path | speedCameraAppIcon | Config.SpeedCameraApp.icon = "nui://sky_policejob/source/html/speed-camera-icon.svg" |
| Route | speedCameraAppRoute | Config.SpeedCameraApp.route = "/speed-camera-app" |
| App size | speedCameraAppSize | Config.SpeedCameraApp.size = 5120 |
| Interval days | speedCameraAppSubscriptionIntervalDays | Config.SpeedCameraApp.subscription.intervalDays = 7 |
| Account | speedCameraAppSubscriptionAccount | Config.SpeedCameraApp.subscription.account = "bank" |
App size and Interval days must be positive integers; Route must be a nonempty route beginning with /. Keep your valid custom values rather than replacing them all. With the configurator disabled, edit only the invalid existing fields in sky_policejob/config/config.lua, save and restart. No phone provider, subscription reset or new app block is required.
4. Database, items and assets
Back up the FiveM database before applying this schema update. Choose one route:
- Automatic, when
Config.AutoExecuteQuery = true: keep that existing option enabled insky_policejob/config/config.lua. The first updated startup creates the two missing columns. Wait for successful migration before players use speed-camera reviews; do not also import the full SQL file. - Manual, when
Config.AutoExecuteQuery = false: before starting Police, open your database tool, select the FiveM database and inspect the Structure ofsky_job_speedcam_reviews. Open the includedsky_policejob/import.sqland locate itsALTER TABLE sky_job_speedcam_reviewsadditions. Add only the missing new columns:registered_owner_jobasVARCHAR(80) NULLafterregistered_owner_name, andfleet_lookup_completedasTINYINT(1) NOT NULL DEFAULT 0afterowner_lookup_completed. The existingowner_lookup_completedcolumn belongs to the previous version and must remain.
On a database engine without ADD COLUMN IF NOT EXISTS, the following ordinary statements can add the two columns. Run each statement only if that specific column is absent; skip the statement for any column already present:
ALTER TABLE `sky_job_speedcam_reviews`
ADD COLUMN `registered_owner_job` VARCHAR(80) NULL
AFTER `registered_owner_name`;
ALTER TABLE `sky_job_speedcam_reviews`
ADD COLUMN `fleet_lookup_completed` TINYINT(1) NOT NULL DEFAULT 0
AFTER `owner_lookup_completed`;
Confirm that both columns now appear with those types and defaults. Preserve all existing reviews and evidence; do not run clear.sql or delete the table.
No new inventory item, item image, model or permission is introduced by this Police update. Keep existing registrations and assets. Pending ownerless legacy captures receive one guarded fleet lookup after migration; already reviewed captures and known private-owner recipients retain their existing assignments.
5. Start and check the result
Start your framework, database connector and configured inventory, garage, target, phone and other providers first. Start sky_base 1.52.0, then sky_jobs_base 1.55.0, and wait for successful initialization before starting this job. Install only the providers and optional resources your server uses.
If you use the DOJ integration, start its matching updated package after Jobs Base and before Police. Otherwise do not add DOJ just for this update. Start sky_policejob 1.44.0, complete any automatic migration and reconnect to load the new interface. Resolve the first migration/startup error before reopening the server.
- In your database tool, confirm that
sky_job_speedcam_reviewscontainsregistered_owner_jobandfleet_lookup_completed. Open an existing police record and jail to confirm retained data. - If using shared-fleet review billing, photograph an active shared Sky job-garage vehicle and approve that capture as an authorized officer. Confirm that exactly one received faction invoice with the correct plate appears in Vehicle fines in the garage and Boss Menu. Pay it through one view and check that the other reflects the same payment. Personal vehicles keep private-owner billing; faction self-invoicing and gang-account settlement are not introduced.
- Open citizen, case, report and warrant selectors. Check readable citizen numbers and retained links. Add a long linked report in a BOLO or warrant and confirm its Add control remains reachable.
- Try the active jail cleaning job and confirm props stay around its configured job NPC. Test your configured social-work pickup and drop-off targets. If using the Speed Cams phone app, open it and verify its registration and saved positive subscription interval.
- Issue and close a small test bill, checking its direction label and printer-prop cleanup.
Optional developer integration: external MDT resources can use the documented server jail integration to list jails, sentence/release online players and read remaining time. No MDT hook is installed automatically. The integrating server resource must authorize its actors; ordinary server owners need no code change. Follow the server jail reference for exact calls and units.