Browse docs
Configuration
Configuration sources
Sky Police Job uses two configuration layers:
| Layer | Purpose |
|---|---|
/jobconfig | Job definitions and Police-specific settings stored through Sky Jobs Base |
sky_jobs_base/config/config.lua | Shared cuffs, zipties, leg restraints, escort, head bags, search, and job-group access |
Open files in sky_policejob/config | Police-specific defaults, fallback job data, locales, and inventory assets |
When Config.UseJobConfigurator is enabled (the default), saved Job Configurator values take priority over matching Police fallback values in config.lua. Editing a fallback value alone may therefore have no visible effect on an already configured server.
Configurator data is stored in the database through Sky Jobs Base (sky_jobs_configurator_jobs, sky_jobs_configurator_settings), not in config.lua.
Handcuffs, zipties, leg restraints, head bags, escort, and player search are an exception: their runtime and configuration belong to sky_jobs_base and are not persisted as Police Job Configurator settings.
Opening the Job Configurator
Run /jobconfig in-game and select Police Jobs in the selector. The command is player-only and requires the sky_jobs_base.jobconfig ACE permission, granted through Config.CommandPermissions in sky_jobs_base/config/config.lua:
Config.CommandPermissions = {
jobconfig = { "god", "superadmin", "admin" },
-- ...
}
See the Permissions page for the group bootstrap per framework.
Creating a police job
Add the job
Open /jobconfig, select Police Jobs, and add a new job. Enter the job name, pick the job color, and optionally enable an off-duty job.
The job name must already exist in your framework with the intended grades — the configurator stores job data, it does not create framework jobs.
Configure shop, props, and vehicles
Fill the job shop catalog (item, label, price, minimum grade), configure job props, and add garage vehicles (model, price, trunk capacity, garage type, minimum grade, fuel type, livery, colors, and extras).
Set storage and society
Configure the job storage sizes (police storage may contain weapons) and the society account used by billing and boss workflows.
Enable systems and settings
Switch to the feature toggles and settings sections and configure dispatch, Police tackle behavior, evidence, jail, and the other Police-specific systems (see below). Configure shared restraint behavior separately in sky_jobs_base/config/config.lua.
Save
Save the configuration. Changes apply live — no resource restart is needed.
Grant boss permissions
After creating a new job, run /setboss <job> <topGrade> once so the highest grade receives every boss permission.
Feature toggles
The Police Jobs section exposes these system toggles:
- Police Tablet
- Billing
- Prop Placement
- Radial Actions
- Tracking (GPS trackers and ankle monitors)
- Evidence
- Jail
- Social Work
- CCTV and Speed Cameras
- Vehicle Radar
Disabling a feature does not remove its old database data. This allows a feature to be enabled again without losing saved records.
Settings sections
Frequently changed settings are grouped into configurator sections, including:
| Section | What it controls |
|---|---|
| General | Primary color and shared UI behavior |
| Stations / Jail / Social Work | Behavior of the creator-backed locations and sentences |
| Dispatch | Dispatch notifications and behavior |
| Restraints | Police tackle behavior only; shared cuffs, leg restraints, head bags, and escort are configured in Jobs Base |
| Evidence | Field kits, storage, and laboratory behavior |
| Devices / Speed Camera App | CCTV cameras, speed cameras, and the tablet speed camera app |
| Tracking | GPS tracker and ankle monitor behavior |
| Vehicle Radar | Patrol vehicle radar behavior |
| Billing | Billing prices and offence handling |
| Equipment / Spike Strips / Radial Actions | Deployables and radial menu actions, including the garage-integrated impound action |
| Tablet Apps | Which tablet applications are available |
Interactions (markers, blips, NPCs, and animations of the placed points) are edited in the configurator as well.
Shared restraints and Crime access
The shared interaction runtime does not require sky_policejob. Police Job consumes the Jobs Base exports for its radial and target actions, while Crime System can use the same runtime in an installation without Police Job.
Configure it in sky_jobs_base/config/config.lua:
Config.JobPlayerInteractions = {
groups = {
police = {
requireOnDuty = true,
cuffs = true,
zipties = true,
legRestraints = true,
escort = true,
vehicle = true,
headBag = true,
search = true
},
crime = {
requireOnDuty = false,
cuffs = false,
zipties = true,
legRestraints = true,
escort = true,
vehicle = true,
headBag = true,
search = true
}
}
}
The associated behavior blocks are Config.PoliceCuffs, Config.LegRestraints, Config.HeadBag, Config.PoliceEscort, and Config.PlayerSearch. Despite the legacy PoliceCuffs and PoliceEscort names, these blocks belong to Jobs Base and can authorize any registered group.
Config.PoliceCuffs, Config.PoliceLegRestraints, or Config.HeadBag blocks back to sky_policejob. Do not expect /jobconfig or /jobconfigimport sky_policejob to manage these shared blocks.After changing these values, restart sky_jobs_base, then restart sky_policejob, sky_crimesystem, and any other resource that uses the interaction API.
Rare handcuff escapes
Config.PoliceCuffs.escape in Jobs Base controls the server-authoritative escape minigame. Its chance is rolled once when restraints are applied. Use a low chancePercent, long delay and cooldown values, more rounds and decoys, and a short windowMs when escape should remain an exceptional event. allowZipties = false keeps zipties excluded.
Stations, jails, and social work
Stations, jails, and social work zones are creator-backed sections inside the configurator: entries are created, placed in the world, and edited from /jobconfig. The standalone commands (/stationcreator, /jailcreator, /socialworkcreator) are only available when Config.UseJobConfigurator is disabled.
See Station Setup for the placement workflow.
Vehicle impounding
Since version 1.22.0, Police Job no longer creates or manages its own impound lots. There is no Impounds section in /jobconfig, no /impoundcreator command, and no Config.Impound block.
Officers impound the nearest vehicle through the Police radial menu. The Radial Actions > Impound settings in /jobconfig only control whether that action is enabled, whether duty is required, and the maximum vehicle distance. The actual impound destination, storage rules, and prices belong to the garage resource selected through Sky.Config.garage.
The provider hook is Config.Functions.OpenImpoundForm in sky_policejob/config/functions.lua. The shipped hook supports the jg, vms, cd, quasar, and rx garage integrations. Extend that function for a custom provider, or set it to false as shown in the file to disable the radial action.
Recommended workflow
- Enable or disable the main systems in
/jobconfig. - Configure police jobs, shops, vehicles, dispatch, Police tackle behavior, evidence, jail, and the radial impound action.
- Save the configuration and test it without restarting the resource.
- Configure shared restraints and player interactions in
sky_jobs_base/config/config.lua. - Configure impound destinations, storage, and prices in the connected garage resource, and use the open Police Job files only for settings or integration hooks that are not exposed in the configurator.
- Keep a backup of customized configuration files before every resource update.
Open configuration files
| File | Use |
|---|---|
sky_jobs_base/config/config.lua | Shared restraint behavior, player-interaction access, escort, and search |
config/config.lua | Feature defaults, fallback jobs, command permissions, and interactions |
config/locales/*.lua | Translations and interface text |
config/inventory | Included police item images |
Settings that need extra care
Job Configurator police jobs
Police jobs created only through /jobconfig receive the same tablet applications as jobs defined in config.lua. After adding or changing a job, save the Job Configurator entry and ensure the player has the correct job and duty state before checking the tablet.
To deliberately replace saved Police jobs and every registered Police setting, feature, and interaction with the current local snapshot, run:
/jobconfigimport sky_policejob
The import updates the live job and garage registries immediately and does not require a restart. Jobs that exist only in /jobconfig are retained instead of being silently deleted.
Command permissions
Changes to Config.CommandPermissions (in sky_jobs_base or sky_policejob) require a resource restart, and players may need to reconnect.
Evidence metadata
Evidence samples require a metadata-capable inventory. Without item metadata, collected evidence items lose their sample data — this is an inventory requirement, not a configurator setting.