Skip to content

Features

One item per tool, textured by job

Every tool is a single item. The texture comes from the theme of the job using it, so a sheriff pulls out a sheriff robodog and an FBI agent an FBI shield from the same item. Adding a job is one line in the config.

ThemeDefault jobsBallistic shield
policepolice, lspd, saspPOLICE
sheriffsheriff, bcsoSHERIFF
fbifbi, fibFBI
emsambulance, emsPOLICE
civilianevery job not listedUnmarked

Themed gear: robodog, battering ram, megaphone, throwable camera, mobile spike, grappler (net and strap colours too), wheel clamp, deployable shield and ballistic shield. Placed or mounted gear keeps the theme of the player who placed it for everyone who sees it.

Each job line also sets a minimum grade, and each item can ask for a higher grade of its own. grade = false gives a job its theme only, so it can use public items such as the megaphone but none of the restricted gear.

Shared keys

Every tool uses the same four keys. A key only acts on what is in your hand or on the vehicle panel that is open, so nothing clashes.

KeyAction
GPut away what is in your hand, cancel a throw, take the spike or grappler off from the driver's seat
↓Deploy the spike, lower the grappler arm
↑Retract the spike, raise the grappler arm, release a grappler tether
HShield light, BolaWrap laser, radar km/h ↔ mph, spike / grappler position menu, clear night vision marks

Players can rebind every key in Settings → Key Bindings → FiveM.

Battering ram

Take the ram in your hands and walk up to a door. Left click turns the character to the door, swings twice and the door opens. Punching, kicking and aiming are blocked while you hold it.

KeyAction
Left clickBreach the door (within 2.2 m, facing it)
G / use the item againPut the ram away

The ram works with every popular doorlock at once: frkn-doorlockv2, qb-doorlock, ox_doorlock, rcore_doorlock, cd_doorlock, doors_creator, esx_doorlock and nui_doorlock. The door is unlocked through the doorlock's own export, so its state stays correct for everyone. Doors your doorlock does not know can still be rammed, and your own doorlock can be bridged with three functions (see Config Settings → Advanced settings).

breakChance lets the ram break after a successful breach. It is 0 by default.

Ballistic shield

The shield goes on your left arm and a one handed sidearm stays in your right, so you can aim and fire from behind it. Bullets and melee hits that land on the shield do no damage; exposed legs, head and shots from behind still hurt.

KeyAction
Right click / Left clickAim / fire
RReload
HToggle the four LED light on the front
G / use the item againPut the shield away

You cannot sprint, jump, take cover, use melee or enter a vehicle while holding it. Only pistols and the stun gun are allowed by default; more weapon groups or single weapons can be added with Shield.allowedGroups / Shield.allowedWeapons. The light is visible to other players from about 90 m.

Hits are blocked in three layers: real collision on the shield model, the server cancelling player shots that hit the body behind it, and health restored after NPC hits.

Deployable shield

Using the item opens a placement preview. Place it up to 5 m away, rotate it with the mouse wheel and confirm. The character crouches and sets it down, and the curved shield extends up out of its base to stop bullets and players.

KeyAction
Mouse / ScrollPosition / rotate the preview
ENTER / ESCPlace / cancel
G (next to it)Lower it into its closed base / raise it again
E (next to it)Pick it up

A lowered shield stays on the ground as a low closed base with no collision. Each player may have two out at once, and who may lower or pick one up (job, owner or anyone) can be changed with DeployShield.access.

Night vision goggles

Put the helmet on with the item. N cycles night vision, thermal and off, and the goggles flip down and up with it. A lens overlay is drawn on screen and the helmet is hidden in first person.

KeyAction
NNight / thermal / off
EMark the spot you look at
HClear your marks

Mark Surroundings

Marks are 3D markers fixed to world positions with a live distance, and they also appear on the map. Teammates see them by job, everyone or nobody, and by default only players wearing the helmet see them. Every player marks in their own colour.

LimitValue
Mark distance250 m
Draw distance200 m
Marks per player10

Camera feed

The throwable camera and the robodog share one feed screen:

PartShows
Top leftDate and time
Top centreCompass with the heading in degrees
Top rightLINK: signal strength and distance / max range to the player using it; turns yellow and then red near maxRange
RightIntegrity of the unit and its status (online, damaged, critical, taser recharging)
Bottom leftSession time and the unit's name
Bottom rightThe keys of the unit

Throwable camera

Hold left click to charge, release to throw. When it lands your view flies to the camera and you get its feed. From the feed you look around, zoom, drive the camera along the ground and hop over curbs.

KeyAction
Hold / release left clickCharge / throw
Right clickShow the throw arc and landing spot
GCancel the throw, nothing is used up
BConnect to the nearest camera / disconnect
W A S D / SPACEDrive / hop
Mouse / ScrollLook / zoom
HDetonate (the item is lost)
ESCPick your camera up from the feed
BACKSPACELeave the feed and the camera in place

Cameras can be shared with your job. Each player may have two out, twenty on the server. A camera has 100 durability: bullets, melee and explosions wear it down, and at zero it blows up. You see the blast from the feed and are then returned to your character, the same as when you detonate it yourself.

If the camera goes more than 80 m from the player watching it, it is removed and the item returns to the owner's inventory. The range is ThrowCam.maxRange.

Robodog

Drop the robot dog in front of you and you take control of it straight away. Drive it in first person or in a chase view, jump, and tase suspects. It is a remote driven unit with no AI.

KeyAction
W A S DMove
SHIFTRun
SPACEJump
Mouse / ScrollLook / zoom
VFirst person ↔ chase camera
Left clickTaser (12 m, 5 s cooldown)
ESCRecall the unit, the item comes back
M / use the item againTake control of your unit again

Walls, fences, vehicles and props stop it, and it slides along a wall when you walk into it at an angle. The taser shakes the target for two seconds and leaves them on the ground for six, players and NPCs alike. A unit has 250 durability; at zero it blows up, you see the blast from its camera and are then returned to your character.

If the robodog goes more than 80 m from the player driving it, it is removed and the item returns to the owner's inventory. The range is Robodog.maxRange.

Flashbang

Right click aims, left click throws, and it goes off 1.5 seconds after it leaves your hand. Players inside 18 m who have a line of sight and are facing it are blinded and deafened for up to 7 seconds, scaled by distance and angle. Someone facing away only hears the bang.

KeyAction
Right click / Left clickAim / throw
GCancel, the item is kept

Pepper spray

Hold left click to spray a jet from the nozzle towards your crosshair, up to 4.5 m. The target gets red blurry vision, blinks, coughs and slows down; a heavy dose knocks them down. NPCs cough and run.

KeyAction
Left click (hold)Spray
G / use the item againPut away

The can has a charge stored on the item, about 28 seconds of spraying, with a warning at 25 percent. ox_inventory shows it as a durability bar. The charge can be turned off in the config.

Mouth tape

Use the item next to a player and the officer presses tape over their mouth. The taped player is muted in voice chat, and on the radio too if muteRadio is set. Anyone next to them can peel it off with E, and the item goes to whoever removed it.

KeyAction
Use the itemApply the tape
E (next to a taped player)Remove the tape

Who can be taped is set in the config: anyone, only cuffed players or only downed players. Works with pma-voice, mumble-voip, SaltyChat and native voice.

Megaphone

The megaphone is on while it is in your hand. Everything you say goes out with a megaphone tone and a longer range, and the megaphone rises to your mouth whenever you talk. A HUD dial shows the range.

KeyAction
↑ / ↓Range up / down in 5 m steps (10 - 60 m), remembered per player
G / use the item againPut away
Target "Use Microphone"Speak through a microphone stand (100 m)

Microphone props in the world work as stands, and walking away releases them. The tone is applied by every listener for the speaker, so nothing is relayed through the server. Radio and phone calls keep their own sound.

The megaphone tone needs setr voice_useNativeAudio true in server.cfg.

BolaWrap

Aim with right click and a laser shows where the cord will wrap. A tap fires one cord around the upper body (arms tied) or the legs (cannot move), depending on where you aim. Holding left click charges both cords and wraps the whole body.

KeyAction
Right click / Left clickAim / fire, hold to charge both cords
HLaser on / off
E (next to a wrapped player)Cut them free
G / use the item againPut away

Range is 20 m with a 5 second recharge and no ammo. Wrapped players do not ragdoll and their inventory is locked. A wrapped player gets one quick time attempt to saw through the cord themselves.

Chain cuffs

Use the item to pick a nearby player and chain them to another player, to yourself, or to a prop such as a bench or a railing. A real chain hangs between the two ends: inside its length both move freely, and when it pulls tight the stronger side drags the other.

KeyAction
Use the itemOpen the chain menu
Left click / EHook the chain to the aimed prop
Right click / BACKSPACEBack
Use the chain keyUnlock the chain

The officer receives a key for every chain, and the key can be handed to others. Chained players are cuffed, disarmed and cannot enter vehicles. The chain is 4 m long by default.

Wheel clamp

Use the clamp next to a stopped vehicle and the character turns to the nearest wheel and fits it. A clamped vehicle cannot be driven.

KeyAction
Use the itemFit a clamp
ERemove it (owner and job) or start the lockpick
A / DTurn the pick
E / ENTERSet the pin

The standard clamp can be lockpicked in a 3D minigame with lockpick or advancedlockpick; the heavy clamp cannot. Wrong presses cost time, and the pick can snap. Dispatch scripts can react to lockpick attempts.

Mobile spike strip

Mount the strip on a vehicle from outside. While driving, ↓ swings it out from the bumper to burst the tyres of the car you are chasing.

KeyAction
↓ / ↑Deploy / retract
HPosition menu (forward, height, side, angle)
G (in the vehicle)Take it off, the item comes back

Each tyre has a 60 percent chance to burst, at most two per pass. Emergency vehicles are not affected.

Police grappler

A fold-down net arm on the front bumper. Lower the arm and nose in under the fleeing car. When a rear wheel rolls onto the net it wraps around the wheel, two straps tie it to your car and the target spins to a stop.

KeyAction
↓Lower the arm
↑Raise the arm, or release the rope while tethered
HPosition menu (forward, height, angle)
G (in the vehicle)Take it off, the item comes back

Catches fail above 160 km/h. The rope has 8 m of slack and snaps when stretched too far. A new net is fitted automatically after a release.

Speed radar

A handheld laser radar. Right click aims and the vehicle under the reticle is measured live, as far as vehicles exist and never through walls. The device's own screen shows speed, distance, LOCK and OVER, and nearby officers see each other's screens.

KeyAction
Right clickAim / measure
↑ / ↓Speed limit +10 / -10
Hkm/h ↔ mph
G / use the item againPut away

A panel shows speed, plate, distance and approach, plus the last three speeders. Each speeding vehicle can be posted once to a Discord webhook with plate, speed, model, officer and location.

Road control device

One item that is never used up. It opens a placement preview for twelve props plus the road blocker plate.

KeyAction
CAPS LOCKSwitch prop
Mouse / ScrollPosition / rotate
↑ / ↓Height
Q / ECopies in a row (up to 6)
GPlace raised or lowered (bollard and plate)
ENTER / ESCPlace / cancel
G (next to it, or from the driver's seat)Raise / lower
E (next to it)Pick up

The bollard blocks traffic when raised. Cones and work barriers can be knocked over by vehicles. The steel road blocker plate lies flat and throws cars that drive over it when raised. Each player may have six barriers and six plates out, and the prop list can be extended with Bollard.props.

Vehicle panel

When your vehicle carries a mobile spike or a grappler, or you wear the night vision helmet, a small panel on the left shows which system the arrow keys, G and H control.

KeyAction
KShow / hide the panel
CAPS LOCKSwitch between panels

Vehicle gear saved on plates

Clamps, mobile spikes and grapplers are saved on the vehicle's plate. If the vehicle is garaged, deleted or the server restarts, the gear is back when the same plate spawns: the clamp still fitted, the spike and grappler mounted and closed. Records of plates not seen for 30 days are deleted.

Kits

A kit is one bag item. Using it gives everything inside; if it does not fit, nothing is taken. The contents are listed in the item description.

KitContents
Traffic KitSpeed radar, road control device, 2 wheel clamps, heavy wheel clamp, mobile spike strip, police grappler
Assault KitBattering ram, ballistic shield, deployable shield, 3 flashbangs, night vision goggles, throwable camera
Restraint KitBolaWrap, 2 chain cuffs, 3 mouth tapes, pepper spray
Support KitRobodog, megaphone

Framework and inventory support

Supported
Frameworkqb-core, qbx_core, es_extended
Inventoryox_inventory, qs-inventory, qb-inventory, ps-inventory, lj-inventory, codem-inventory
Targetox_target, qb-target, interact, text UI fallback
Voicepma-voice, mumble-voip, SaltyChat, native
Languagesen, tr, de, fr, es, pt, it, ru, pl, nl, ar

Item descriptions are written to the inventory in the selected language.

Performance

IdleNo loops run for players who are not using the gear
ThreadsStart when a tool is used and stop when the work is done
BackgroundWatchers for placed props, robodogs and radar screens only run while there is something to watch
ServerEvery event is checked for job, item, distance and ownership, and rate limited

Exports

Client:

lua
exports['frkn-tacticalpack']:useRam()            -- every item has a use* export
exports['frkn-tacticalpack']:EquipShield()
exports['frkn-tacticalpack']:IsShieldEquipped()
exports['frkn-tacticalpack']:IsNvgEquipped()
exports['frkn-tacticalpack']:GetCameras()
exports['frkn-tacticalpack']:IsControllingRobodog()
exports['frkn-tacticalpack']:IsGagged()
exports['frkn-tacticalpack']:IsRestrained()
exports['frkn-tacticalpack']:IsMegaphoneEquipped()
exports['frkn-tacticalpack']:GetBreachableDoor()
exports['frkn-tacticalpack']:HasRequiredJob(itemName)

Server:

lua
exports['frkn-tacticalpack']:IsVehicleClamped(netId)
exports['frkn-tacticalpack']:RemoveVehicleClamp(netId)
exports['frkn-tacticalpack']:AddMark(coords, source)
exports['frkn-tacticalpack']:IsTaped(source)
exports['frkn-tacticalpack']:SetTaped(source, state)
exports['frkn-tacticalpack']:IsBolawrap(source)
exports['frkn-tacticalpack']:ChainPlayers(a, b)
exports['frkn-tacticalpack']:Unchain(source)
exports['frkn-tacticalpack']:IsUsingMegaphone(source)
exports['frkn-tacticalpack']:GiveKit(source, 'traffic', 1)
exports['frkn-tacticalpack']:HasRequiredJob(source, itemName)

Server events

Other resources can listen to every action with AddEventHandler:

lua
AddEventHandler('frkn-tacticalpack:server:onDoorBreached', function(source, doorId, coords, system, unlocked) end)
AddEventHandler('frkn-tacticalpack:server:onClampLockpick', function(source, clamp, success) end)
AddEventHandler('frkn-tacticalpack:server:onRadarReading', function(source, reading) end)
EventFired when
onDoorBreachedA door is rammed
onCameraDeployed / onCameraRemoved / onCameraDetonatedCamera placed, removed, blown up
onRobodogDeployed / onRobodogTaser / onRobodogRemovedRobodog placed, taser fired, removed
onTapeApplied / onTapeRemovedMouth tape applied, removed
onFlashbangDetonatedA flashbang goes off
onPepperSprayHitPepper spray hits a player
onBolawrapHit / onBolawrapReleased / onBolawrapCutPlayer wrapped, freed, cut free
onMegaphoneStateMegaphone turned on or off
onChainLinked / onChainRemovedChain put on, taken off
onSpikeInstalled / onSpikeToggled / onSpikeRemoved / onSpikeBurstSpike mounted, deployed, removed, tyres burst
onClampApplied / onClampRemoved / onClampLockpickClamp fitted, removed, lockpick attempt
onGrapplerInstalled / onGrapplerHit / onGrapplerReleasedGrappler mounted, target caught, rope released
onRadarReadingSpeeding reading
onBollardPlaced / onBollardToggled / onBollardRemovedBarrier placed, raised / lowered, picked up

Every event name starts with frkn-tacticalpack:server:, for example frkn-tacticalpack:server:onDoorBreached.