Browse docs

Police Inventory Items

Copyable inventory item definitions for Sky Police Job.

SKY SR-2 radar weapon

No new Police SQL/schema migration or permission reassignment is required. Keep records and existing grants; do not run clear.sql.

Register the custom weapon before use; the resource does not edit your inventory catalogue automatically. For ox_inventory add this inside Weapons in ox_inventory/data/weapons.lua:

['WEAPON_SKY_SPEEDRADAR'] = {
    label = 'SKY SR-2 Radar Gun',
    weight = 795,
    durability = 0.1,
    ammoname = nil,
},

For QBCore, merge this into qb-core/shared/items.lua:

weapon_sky_speedradar = {
    name = 'weapon_sky_speedradar',
    label = 'SKY SR-2 Radar Gun',
    weight = 795,
    type = 'weapon',
    ammotype = nil,
    image = 'weapon_sky_speedradar.png',
    unique = true,
    useable = false,
    description = 'Handheld police radar for vehicle speed measurements',
},

Other weapon systems must register the exact custom weapon WEAPON_SKY_SPEEDRADAR / inventory item weapon_sky_speedradar through their weapon contract. An ordinary usable-item definition or ESX items SQL row alone is insufficient. Copy sky_policejob/config/inventory/weapon_sky_speedradar.png to ox_inventory/web/images/weapon_sky_speedradar.png for ox_inventory, or qb-inventory/html/images/weapon_sky_speedradar.png for the standard QB inventory (use the configured image directory for another inventory). Follow the shipped config/inventory/README.md.

Install all listed meta/ files, stream/sky_speedradar.ydr and licenses/fivem_radargun-MIT.txt with the new source and manifest. Do not mix an older manifest or interface with the new weapon files. Holster an equipped custom radar before a hot stop; use the planned full restart for this metadata change. This release does not establish that the engine's custom-weapon metadata unload crash is fixed.

Equip as an allowed on-duty officer, aim at a vehicle and left-click to lock or unlock a reading. Default R clears and F7 toggles the HUD. The radar gun has its own unit preference: KM/H with metres or MPH with feet, independent of the vehicle radar. The physical display stays visible in first person. Configure access and any saved shop entry through the matching 1.40.0 update guide.

Other Police items

['plate_scanner'] = {
    label = 'Plate Scanner', weight = 1200, stack = false, close = true,
    description = 'Optional handheld license plate scanner'
},
['cctvcam'] = {
    label = 'CCTV Camera',
    weight = 2500,
    stack = true,
    close = true,
    description = 'Portable CCTV camera for surveillance'
},
['crime_scene_tape'] = {
    label = 'Crime Scene Tape',
    weight = 750,
    stack = true,
    close = true,
    description = 'Portable crime scene barrier tape'
},
['bodycam'] = {
    label = 'Bodycam',
    weight = 500,
    stack = true,
    close = true,
    description = 'Wearable body camera for officer footage'
},
['speedcam'] = {
    label = 'Speed Camera',
    weight = 2500,
    stack = true,
    close = true,
    description = 'Deployable speed camera'
},
['gps_tracker'] = {
    label = 'GPS Tracker',
    weight = 200,
    stack = true,
    close = true,
    description = 'Tracker for monitoring vehicle location'
},
['ankle_monitor'] = {
    label = 'Ankle Monitor',
    weight = 300,
    stack = true,
    close = true,
    description = 'Electronic ankle monitor'
},
['saliva_kit'] = {
    label = 'Saliva Kit',
    weight = 1,
    stack = true,
    close = true,
    description = 'Kit for collecting saliva samples'
},
['blood_kit'] = {
    label = 'Blood Kit',
    weight = 1,
    stack = true,
    close = true,
    description = 'Kit for collecting blood samples'
},
['gsr_test'] = {
    label = 'GSR Test',
    weight = 1,
    stack = true,
    close = true,
    description = 'Kit for collecting a gunshot residue sample'
},
['collected_gsr_test'] = {
    label = 'GSR Sample',
    weight = 1,
    stack = false,
    close = true,
    description = 'Collected gunshot residue sample with evidence metadata'
},
['collected_fingerprint'] = {
    label = 'Fingerprint Sample',
    weight = 1,
    stack = true,
    close = true,
    description = 'Collected fingerprint sample'
},
['fingerprint_kit'] = {
    label = 'Fingerprint Kit',
    weight = 1,
    stack = true,
    close = true,
    description = 'Kit for lifting fingerprints'
},
['fingerprint_scanner'] = {
    label = 'Fingerprint Scanner',
    weight = 1,
    stack = true,
    close = true,
    description = 'Scanner for fingerprint analysis'
},
['hydrogen_peroxide'] = {
    label = 'Hydrogen Peroxide',
    weight = 1,
    stack = true,
    close = true,
    description = 'Chemical reagent for evidence processing'
},
['collected_saliva'] = {
    label = 'Saliva Sample',
    weight = 1,
    stack = true,
    close = true,
    description = 'Collected saliva sample'
},
['collected_casing'] = {
    label = 'Casing Sample',
    weight = 1,
    stack = true,
    close = true,
    description = 'Collected bullet casing sample'
},
['collected_blood'] = {
    label = 'Blood Sample',
    weight = 1,
    stack = true,
    close = true,
    description = 'Collected blood sample'
},
['wheelclamp'] = {
    label = 'Wheel Clamp',
    weight = 4000,
    stack = false,
    close = true,
    description = 'Clamp to immobilize a vehicle'
},
['welder'] = {
    label = 'Welder',
    weight = 1800,
    stack = false,
    close = true,
    description = 'Tool used for repair work'
},
['fixtool'] = {
    label = 'Fix Tool',
    weight = 1200,
    stack = false,
    close = true,
    description = 'Repair kit for damaged equipment'
},
['cleaning_alcohol'] = {
    label = 'Cleaning Alcohol',
    weight = 250,
    stack = true,
    close = true,
    description = 'Alcohol solution used for cleaning'
},
['code_list'] = {
    label = 'Code List',
    weight = 50,
    stack = true,
    close = true,
    description = 'Reference list of operation codes'
},
['cigarette'] = {
    label = 'Cigarette',
    weight = 20,
    stack = true,
    close = true,
    description = 'Prison trade item'
},