Controls
A full player interaction system built into Core Gangs. Zip-tie, escort, carry, trunk, hostage, rope pull, tackle, and rob — all server-authoritative with anti-cheat validation and full state sync.
All controls are primarily used through the target system (ox_target / qb-target). Look at a player and the available options appear based on their current state. Commands exist as fallbacks if no target system is running.
INFO
The global toggle Config.EnableGangControls disables the entire system. Each feature also has its own Enabled flag. Target system is auto-detected — if neither ox_target nor qb-target is running, commands are the only way to use controls.
Features at a Glance
| Feature | Target Option | Fallback Command | Config Key |
|---|---|---|---|
| Restrain / Zip-tie | Restrain | /ziptie | Restrain.Enabled |
| Escort / Drag | Escort | /escort | Restrain.Enabled |
| Carry (Fireman) | Carry | /carry | Carry.Enabled |
| Put in Trunk | — | /trunk | Trunk.Enabled |
| Take Hostage | Take Hostage | /takehostage /th | Hostage.Enabled |
| Rope Pull | Rope Pull | /ropepull | Rope.Enabled |
| Search / Rob | Search | /search /rob | Search.Enabled |
| Tackle | — | /tackle or Sprint+E | Tackle.Enabled |
| Escape | — | /escape | Restrain.EscapeEnabled |
Restrain / Zip-Tie
Restrains a player with a custom zip-tie prop attached to their wrist. Toggle — using it on an already-restrained player frees them.
- Optionally requires a
ziptieitem (consumed on use) - Custom prop
ba_prop_battle_cuffssynced to all clients - Full input lockdown: no attack, aim, jump, weapon select, enter vehicle, phone, inventory
- Only look around, push to talk, and chat are allowed
Escape Mechanic
Restrained players can attempt escape with /escape:
- Mash backspace 80 times in 15 seconds
- 30-second cooldown between attempts
- Cannot escape while: in trunk, being carried, hostage, or rope-pulled
- Progress notifications every 10 presses
lua
Restrain = {
Enabled = true,
RequireItem = true,
ItemName = 'ziptie',
MaxDistance = 2.0,
EscapeEnabled = true,
EscapeKeyPresses = 80,
EscapeTimeLimit = 15000,
EscapeCooldown = 30000,
CanRestrainAnyone = true,
}Escort / Drag
Walk-drags a restrained player behind you. Target is attached to your character and follows your movement.
- Target must be restrained first
- Toggle on/off
- Full input lockdown on escorted player
Carry (Fireman Carry)
Pick up a player over your shoulder in a fireman carry.
- Target must be restrained (configurable with
RequireRestrained) - Automatically breaks any active escort on the target
- Toggle on/off
lua
Carry = {
Enabled = true,
MaxDistance = 2.5,
RequireRestrained = true,
}Put in Trunk
Place a carried player into a nearby vehicle's trunk.
- Must be carrying someone first (
/carry) - Target must be restrained
- Vehicle must be nearby and unlocked
- Player hidden when trunk lid is closed, visible when open
Trunk Escape
- Press E when trunk lid is open and not restrained
- If restrained: no escape possible
- Auto-ejects if vehicle is destroyed or player dies
lua
Trunk = {
Enabled = true,
MaxDistance = 3.0,
EscapeEnabled = true,
EscapeKey = 38, -- E
HideWhenClosed = true,
}Take Hostage
Hold a player at gunpoint with a pistol.
- Requires a pistol with ammo (14 weapon types supported)
- Victim attached to aggressor with gun animation
- Breaks any active escort/carry on the target
- Cannot take hostage of someone in trunk or being carried
Controls
| Key | Action |
|---|---|
| G | Release hostage (shove animation) |
| H | Execute hostage (if KillEnabled = true) |
Sprint, attack, and aim are disabled while holding a hostage. If the aggressor dies, the hostage is auto-released.
lua
Hostage = {
Enabled = true,
MaxDistance = 2.5,
RequireWeapon = true,
ReleaseKey = 47, -- G
KillKey = 74, -- H
KillEnabled = true,
}Rope Pull
Drag a restrained player with a visible physics rope. Works on foot and behind vehicles.
- Uses GTA V native rope physics
- Target must be restrained
- Breaks any active escort/carry
On Foot
Target is dragged behind you with a thick rope. Partial input lockdown (no attack, aim, jump, weapon, phone, inventory).
Vehicle Drag
When the puller enters a vehicle, the rope re-attaches from the vehicle's rear to the target:
- Road burn damage: 5 HP every 2 seconds when vehicle speed > 5 m/s
- When puller exits vehicle, rope re-attaches back to ped
- Damage is configurable or can be disabled
Press G to release the rope.
lua
Rope = {
Enabled = true,
MaxDistance = 3.0,
RequireRestrained = true,
RopeLength = 5.0,
RopeType = 4, -- thick rope
VehicleDragEnabled = true,
VehicleDragDamage = true,
VehicleDragDamageInterval = 2000,
VehicleDragDamageAmount = 5,
DetachKey = 47, -- G
}Search / Rob
Open a target player's inventory.
- Target must be restrained, have hands up, or be dead
- 5-second search animation before inventory opens
- Distance checked during search — interrupts if target moves away
- Cannot search someone in trunk or being carried
lua
Search = {
Enabled = true,
MaxDistance = 2.5,
RequireRestrainedOrHandsUp = true,
SearchTime = 5000,
}Tackle
Sprint into a nearby player to knock them to the ground.
- Sprint + press E, or use
/tackle - Victim ragdolls for 5 seconds, tackler stunned for 2 seconds
- 10-second cooldown between tackles
- Cannot tackle someone in trunk, being carried, or held hostage
Side Effects on Victim
If the victim was performing another action, it's automatically interrupted:
- Carrying someone → auto-drops them
- Escorting someone → auto-stops escort
- Holding a hostage → auto-releases hostage
- Rope-pulling → auto-detaches rope
lua
Tackle = {
Enabled = true,
MaxDistance = 3.0,
RequireSprinting = true,
ActionKey = 38, -- E
Cooldown = 10000,
StunDuration = 5000,
TacklerStunDuration = 2000,
VictimRagdoll = true,
}State Interaction Rules
The system prevents conflicting states. All validation is server-side:
| Situation | Result |
|---|---|
| Restrained + in trunk | No escape possible |
| Restrained + being carried | /escape blocked |
| Restrained + rope pulled | /escape blocked |
| Hostage victim | /escape blocked |
| Tackled while carrying | Auto-drops carried player |
| Tackled while escorting | Auto-stops escort |
| Tackled while holding hostage | Auto-releases hostage |
| Tackled while rope-pulling | Auto-detaches rope |
| Try to restrain someone in trunk | Blocked |
| Take hostage breaks escort/carry | Auto-cleaned |
| Rope pull breaks escort/carry | Auto-cleaned |
Admin Command
admin
/freePlayerqb-coreesx
Free a player from all control states (restrained, escorted, carried, trunked, hostage, roped). Requires ACE permission command.freePlayer.
| Argument | Type | Description |
|---|---|---|
id | | Player server ID |
Usage
lua
/freePlayer 1