Browse docs
Installation
Requirements
Before installing Sky Police Job, update both required resources from the same CFX Portal account:
sky_basesky_jobs_base
Keep both dependencies up to date when updating the police resource. Start your framework, inventory and targeting resources before the Sky resources.
Install the resource
Deploy the files
Place the sky_policejob resource in your server resources directory. Do not rename its resource folder.
Configure the start order
Add the resource to server.cfg after its dependencies. A typical order is your framework and integrations first, followed by sky_base, sky_jobs_base, and finally sky_policejob.
Prepare the database
Config.AutoExecuteQuery is enabled by default in config/config.lua. With this option enabled, the resource creates and updates its database tables automatically.
Import the included import.sql manually only if you disable automatic queries.
Set up media uploads
Images & videos in the tablet are uploaded to FiveManage. The capture runs directly in the tablet UI — no extra server resource is required.
- Create an account at FiveManage and generate a Media API Key from your dashboard.
- Enter your Media API Key in
sky_jobs_base/config/webhooks.lua:
Webhooks = {
fivemanage = {
apiKey = "your_media_api_key_here",
baseUrl = "https://api.fivemanage.com/api/v3/file",
timeoutMs = 10000
}
}
Use a metadata-capable inventory
The evidence system stores sample details on the item metadata. sky_base detects the running inventory automatically and supports:
| Inventory | Support | Our recommendation |
|---|---|---|
ox_inventory | Full | ⭐ Recommended — most complete metadata integration and the best-tested combination |
qs-inventory | Full | Good choice |
qb-inventory | Full | Good choice |
ps-inventory | Full | — |
core_inventory | Full | — |
codem-inventory | Full | — |
tgiann-inventory | Full | — |
origen_inventory | Full | — |
jaksam_inventory | Full | — |
ak47_inventory | Full | — |
jpr-inventory | Full | — |
one_inventory | Full | — |
| QBCore / Qbox built-in inventory | Full | Fine if you stay on the framework default |
| ESX built-in inventory | Partial — no item metadata; collected evidence items lose their sample data | Not recommended — switch to a metadata-capable inventory |
| vRP built-in inventory | Partial — no item metadata; collected evidence items lose their sample data | Not recommended — switch to a metadata-capable inventory |
Add police items
Add the following items to your inventory script. Use the preview images inside sky_policejob/config/inventory so they match the UI. For ready-to-copy definitions see the Inventory Items page.
Equipment & tools:
cctvcambodycamspeedcamgps_trackerankle_monitorwheelclampwelderfixtoolcleaning_alcoholcode_listwire_cuttercigarette
Restraints (required for the cuffing / transport flow — without them RegisterUsableItem silently does nothing):
handcuffsziptieslegcuffsheadbag
Evidence field kit:
saliva_kitblood_kitcollected_fingerprintfingerprint_kitfingerprint_scannerhydrogen_peroxidecollected_salivacollected_casingcollected_blood
Disable duplicate salaries
Sky Jobs Base pays salaries for configured jobs. Set the framework salary values for every police grade to 0 (for example in the job_grades table) — leaving both salary systems active produces duplicate payments.
If you prefer to keep your framework or an external payroll system instead, disable the built-in payroll by setting Config.Salary.enabled = false in sky_jobs_base/config/config.lua.
Configure administrator access
Install the global permissions bootstrap, assign your administrator group, and review the Permissions page.
Grant boss permissions
Run /setboss once for the highest police grade after a fresh installation or after clearing sky_job_permissions.
For example, a police job whose highest grade is 5 should be configured with /setboss police 5.
Configure the job
Restart the server, run /jobconfig, and select Police Jobs. Configure jobs and enabled systems before placing station points. See the Configuration page for the full workflow.
Build the stations
Stations, jails, social work zones, and impound lots are placed through the Job Configurator. Follow the Station Setup page to place the duty terminal, storage, and enforcement points.
First-start checklist
- The server console shows no missing dependency or database errors.
/jobconfiglists Police Jobs.- The police job and its highest grade exist in the framework.
- Required items exist in the selected metadata-capable inventory.
- The police tablet shows the expected applications.
- A test officer can go on duty, restrain a suspect, and complete a jail sentence.
/jobconfig when Config.UseJobConfigurator is enabled. Static and advanced settings remain in the open config directory.Next steps
Support
Need help? Our support team is always ready to assist.
Join Discord