Skip to content

Exports

This page documents the public integration surface of the ARS Gang System. These exports, callbacks, and events can be used by other FiveM resources to interact with the gang system.


Server-side exports for querying gang data from other resources.

Gets the gang tag for a specified player.

---@param src number Source player ID
---@return string|nil Gang tag or nil if not in a gang
local gangTag = exports['ars_gangsystem']:GetPlayerGangTag(src)

Example:

RegisterCommand('mygang', function(source)
local gangTag = exports['ars_gangsystem']:GetPlayerGangTag(source)
if gangTag then
print("You are in gang: " .. gangTag)
else
print("You are not in a gang")
end
end)

Gets the rank number and rank name for a specified player.

---@param src number Source player ID
---@return number|nil Rank number (1-10), nil if not in a gang
---@return string|nil Rank name, nil if not in a gang
local rankNumber, rankName = exports['ars_gangsystem']:GetPlayerGangRank(src)

Example:

RegisterCommand('myrank', function(source)
local rankNum, rankName = exports['ars_gangsystem']:GetPlayerGangRank(source)
if rankNum then
print("Your rank is " .. rankNum .. " - " .. rankName)
else
print("You are not in a gang")
end
end)

Default Ranks:

RankTitle
1Kingpin
2Right Hand
3Shot Caller
4Lieutenant
5Enforcer
6Capo
7Soldier
8Hustler
9Thug
10Recruit

Gets the cash balance for a specified gang.

---@param gangTag string Gang tag identifier
---@return number Cash balance (0 if gang not found)
local cash = exports['ars_gangsystem']:GetGangCash('vagos')

Example:

RegisterCommand('gangcash', function(source, args)
local gangTag = args[1] or exports['ars_gangsystem']:GetPlayerGangTag(source)
if gangTag then
local cash = exports['ars_gangsystem']:GetGangCash(gangTag)
print("Gang " .. gangTag .. " has $" .. cash)
end
end)

Gets the XP balance for a specified gang.

---@param gangTag string Gang tag identifier
---@return number XP balance (0 if gang not found)
local xp = exports['ars_gangsystem']:GetGangXp('vagos')

Example:

RegisterCommand('gangxp', function(source, args)
local gangTag = args[1] or exports['ars_gangsystem']:GetPlayerGangTag(source)
if gangTag then
local xp = exports['ars_gangsystem']:GetGangXp(gangTag)
print("Gang " .. gangTag .. " has " .. xp .. " XP")
end
end)

Gets the statistics for a specific player.

---@param identifier string Player identifier
---@return table|nil Member stats or nil if not found
local stats = exports['ars_gangsystem']:GetMemberStats('license:abc123')

Returns:

{
identifier = string,
kills = number,
drugs_sold = number,
rackets_completed = number,
airdrops_looted = number,
total_score = number,
last_updated = string
}

Gets all members of a gang with their statistics.

---@param gangTag string Gang tag
---@return table Array of members with stats
local members = exports['ars_gangsystem']:GetGangMembersWithStats('vagos')

Increments a stat for a player.

---@param identifier string Player identifier
---@param statName string Stat to increment ('kills', 'drugs_sold', 'rackets_completed', 'airdrops_looted')
---@param amount number Amount to add (default 1)
exports['ars_gangsystem']:IncrementStat('license:abc123', 'kills', 1)

Resets all stats for a player.

---@param identifier string Player identifier
exports['ars_gangsystem']:ResetMemberStats('license:abc123')

Calculates the total score for a player based on their stats.

---@param stats table Stats table from GetMemberStats
---@return number Total score
local score = exports['ars_gangsystem']:CalculateTotalScore(stats)

Checks if a vehicle plate belongs to a gang garage.

---@param plate string Vehicle plate
---@return string|nil Gang tag if vehicle is in a garage, nil otherwise
local gangTag = exports['ars_gangsystem']:CheckVehicleInGangGarage('ABC123')

Gets the currently active turf war data.

---@return table|nil Active turf war data or nil if no war is active
local war = exports['ars_gangsystem']:GetActiveTurfWar()

Gets all configured turf war zones.

---@return table Array of turf war zone data
local zones = exports['ars_gangsystem']:GetTurfWarZones()

Gets the buff multiplier for a gang (from winning turf wars).

---@param gangTag string Gang tag
---@param buffType string Buff type ('drugs' or 'xp')
---@return number Multiplier value (default 1.0)
local multiplier = exports['ars_gangsystem']:GetGangBuffMultiplier('vagos', 'drugs')

Client-side exports for player interaction actions.

Checks if a target player is currently ziptied.

---@param target number Target player server ID
---@return boolean
local isZiptied = exports['ars_gangsystem']:IsTargetZiptied(targetId)

Zipties a target player.

---@param target number Target player server ID
exports['ars_gangsystem']:AddZiptieToTarget(targetId)

Removes zipties from a target player.

---@param target number Target player server ID
exports['ars_gangsystem']:RemoveZiptie(targetId)

Starts escorting a ziptied player.

---@param target number Target player server ID
exports['ars_gangsystem']:EscortPlayer(targetId)

Puts a ziptied player into a vehicle.

---@param target number Target player server ID
exports['ars_gangsystem']:PutInVehicle(targetId)

Removes a player from a vehicle.

---@param target number Target player server ID
exports['ars_gangsystem']:RemoveFromVehicle(targetId)

Puts a ziptied player into a vehicle trunk.

---@param target number Target player server ID
exports['ars_gangsystem']:PutInTrunk(targetId)

Removes a player from a vehicle trunk.

---@param target number Target player server ID
exports['ars_gangsystem']:RemoveFromTrunk(targetId)

Applies a blindfold to a ziptied player.

---@param target number Target player server ID
exports['ars_gangsystem']:BlindfoldPlayer(targetId)

Takes a player as a hostage at gunpoint.

---@param target number Target player server ID
exports['ars_gangsystem']:TakeHostage(targetId)

Releases a hostage.

---@param target number Target player server ID
exports['ars_gangsystem']:ReleaseHostage(targetId)

Executes a hostage.

---@param target number Target player server ID
exports['ars_gangsystem']:ExecuteHostage(targetId)

Server callbacks using ox_lib for async data retrieval.

Gets full gang data for a player.

local gang = lib.callback.await('ars_gangsystem:callback:getGang', false, src)

Returns:

{
tag = string, -- Gang tag
name = string, -- Gang display name
xp = number, -- Gang XP
cash = number, -- Gang cash balance
leader = string, -- Leader identifier
ranks = table, -- Rank definitions
members = table, -- Member list
markers = table, -- Marker locations
rackets = table, -- Owned rackets
disabled = boolean, -- Disabled status
player = { -- Current player info
name = string,
identifier = string,
rank = number,
rankName = string
}
}

Gets the current count of police officers online.

local policeCount = lib.callback.await('ars_gangsystem:callback:getPoliceCount', false)

ars_gangsystem:callback:getGangLeaderboard

Section titled “ars_gangsystem:callback:getGangLeaderboard”

Gets the gang leaderboard data.

local leaderboard = lib.callback.await('ars_gangsystem:callback:getGangLeaderboard', false)

Returns:

{
{ tag = string, name = string, xp = number, cash = number, memberCount = number, territoryCount = number, racketCount = number, color = string },
-- ... more gangs
}

ars_gangsystem:callback:getSpecificGangData

Section titled “ars_gangsystem:callback:getSpecificGangData”

Gets gang data by gang tag.

local gang = lib.callback.await('ars_gangsystem:callback:getSpecificGangData', false, gangTag)

Gets full gang information for a player (same as getGang).

local gang = lib.callback.await('ars_gangsystem:callback:getPlayerGangInfo', false, src)

ars_gangsystem:callback:getPlayerGangInfoId

Section titled “ars_gangsystem:callback:getPlayerGangInfoId”

Gets only the gang tag for a player.

local gangTag = lib.callback.await('ars_gangsystem:callback:getPlayerGangInfoId', false, src)

ars_gangsystem:callback:getPlayerGangInfoRank

Section titled “ars_gangsystem:callback:getPlayerGangInfoRank”

Gets the player’s rank in their gang.

local rank = lib.callback.await('ars_gangsystem:callback:getPlayerGangInfoRank', false, src)

ars_gangsystem:callback:getNearbyPlayersInfo

Section titled “ars_gangsystem:callback:getNearbyPlayersInfo”

Gets list of nearby players for invitation.

local players = lib.callback.await('ars_gangsystem:callback:getNearbyPlayersInfo', false, coords, distance)

Returns:

{
{ id = number, name = string },
-- ... more players
}

ars_gangsystem:callback:getMarkerCooldownStatus

Section titled “ars_gangsystem:callback:getMarkerCooldownStatus”

Checks if a marker is on cooldown.

local isOnCooldown, remainingTime = lib.callback.await('ars_gangsystem:callback:getMarkerCooldownStatus', false, gangTag, markerType)

ars_gangsystem:callback:getPinCodeAttempts

Section titled “ars_gangsystem:callback:getPinCodeAttempts”

Gets the number of failed PIN attempts for a marker.

local attempts = lib.callback.await('ars_gangsystem:callback:getPinCodeAttempts', false, gangTag, markerType)

Server events that other resources can listen for.

ars_gangsystem:server:playerKilledByGangMember

Section titled “ars_gangsystem:server:playerKilledByGangMember”

Triggered when a player is killed by a rival gang member.

  • Usage: Listen
RegisterNetEvent('ars_gangsystem:server:playerKilledByGangMember', function(killerId, victimId)
local killerGang = exports['ars_gangsystem']:GetPlayerGangTag(killerId)
local victimGang = exports['ars_gangsystem']:GetPlayerGangTag(victimId)
print("PvP kill: " .. killerGang .. " killed " .. victimGang .. " member")
end)

ars_gangsystem:server:territoryCaptureReward

Section titled “ars_gangsystem:server:territoryCaptureReward”

Triggered when a gang captures a territory.

  • Usage: Listen
RegisterNetEvent('ars_gangsystem:server:territoryCaptureReward', function(territoryName, gangTag)
print("Gang " .. gangTag .. " captured territory: " .. territoryName)
end)

Client events that other resources can listen for.

Triggered when the gang system has finished loading player data.

  • Usage: Listen
RegisterNetEvent('ars_gangsystem:playerLoaded', function()
print("Gang system loaded")
end)

local function IsPlayerInGang(src)
return exports['ars_gangsystem']:GetPlayerGangTag(src) ~= nil
end

local function IsGangLeader(src)
local gangTag = exports['ars_gangsystem']:GetPlayerGangTag(src)
if not gangTag then return false end
local gang = lib.callback.await('ars_gangsystem:callback:getGang', false, src)
return gang and gang.player.rank == 1 -- Rank 1 is Kingpin/Leader
end

RegisterCommand('gangcommand', function(source, args)
local gangTag = exports['ars_gangsystem']:GetPlayerGangTag(source)
if not gangTag then
TriggerClientEvent('ox_lib:notify', source, {
description = 'You must be in a gang to use this command',
type = 'error'
})
return
end
local rankNum, rankName = exports['ars_gangsystem']:GetPlayerGangRank(source)
if rankNum > 3 then -- Only ranks 1-3 can use
TriggerClientEvent('ox_lib:notify', source, {
description = 'Your rank is too low',
type = 'error'
})
return
end
-- Execute gang command
end)

Note: This guide is written by a third party. If you find any incorrect or outdated information, please contact us on Discord so we can update it for you.