Browse docs

Configuration

Understand the Job Configurator, how to create a police job, feature toggles, and the safe configuration workflow.

Configuration sources

Sky Police Job uses two configuration layers:

LayerPurpose
/jobconfigJob definitions and Police-specific settings stored through Sky Jobs Base
sky_jobs_base/config/config.luaShared cuffs, zipties, leg restraints, escort, head bags, search, and job-group access
Open files in sky_policejob/configPolice-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:

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:

SectionWhat it controls
GeneralPrimary color and shared UI behavior
Stations / Jail / Social WorkBehavior of the creator-backed locations and sentences
DispatchDispatch notifications and behavior
RestraintsPolice tackle behavior only; shared cuffs, leg restraints, head bags, and escort are configured in Jobs Base
EvidenceField kits, storage, and laboratory behavior
Devices / Speed Camera AppCCTV cameras, speed cameras, and the tablet speed camera app
TrackingGPS tracker and ankle monitor behavior
Vehicle RadarPatrol vehicle radar behavior
BillingBilling prices and offence handling
Equipment / Spike Strips / Radial ActionsDeployables and radial menu actions, including the garage-integrated impound action
Tablet AppsWhich 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:

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.

Do not add the removed 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.

  1. Enable or disable the main systems in /jobconfig.
  2. Configure police jobs, shops, vehicles, dispatch, Police tackle behavior, evidence, jail, and the radial impound action.
  3. Save the configuration and test it without restarting the resource.
  4. Configure shared restraints and player interactions in sky_jobs_base/config/config.lua.
  5. 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.
  6. Keep a backup of customized configuration files before every resource update.

Open configuration files

FileUse
sky_jobs_base/config/config.luaShared restraint behavior, player-interaction access, escort, and search
config/config.luaFeature defaults, fallback jobs, command permissions, and interactions
config/locales/*.luaTranslations and interface text
config/inventoryIncluded 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.