Cube Scripts

Events

Events you can listen to from your own resources.

This is not a comprehensive list and omits events intended for internal use only. Every event is prefixed with the resource name, cube_gang by default.

Warning

These events are triggered by the resource. Listening to them is fine; triggering them yourself is not - it would desynchronise the gangs from the database. Use the exports to change data.

Server#

All server events are local events: listen with AddEventHandler, they can never be triggered by a client.

cube_gang:ready#

Triggered once every gang and territory is loaded from the database.

Lua
AddEventHandler('cube_gang:ready', function() end)

cube_gang:gangs:created#

Lua
AddEventHandler('cube_gang:gangs:created', function(gangId) end)
  • gangId: number

cube_gang:gangs:updated#

Triggered when the label, type, color, logo, member limit or gang points of a gang change.

Lua
AddEventHandler('cube_gang:gangs:updated', function(gangId) end)

cube_gang:gangs:deleted#

Triggered after a gang is deleted by an admin or disbanded by its owner.

Lua
AddEventHandler('cube_gang:gangs:deleted', function(gangId) end)

cube_gang:gangs:memberAdded#

Lua
AddEventHandler('cube_gang:gangs:memberAdded', function(gangId, identifier) end)
  • gangId: number
  • identifier: string

cube_gang:gangs:memberRemoved#

Triggered when a member leaves, is kicked, or is removed by an admin.

Lua
AddEventHandler('cube_gang:gangs:memberRemoved', function(gangId, identifier) end)

cube_gang:points:changed#

Lua
AddEventHandler('cube_gang:points:changed', function(gangId, total, amount, reason) end)
  • gangId: number
  • total: number - new score
  • amount: number - difference, negative on a loss
  • reason: string - drug_sale, zone_captured, zone_lost, zone_owned, kill, robbery, admin, external or your own

cube_gang:territories:ownerChanged#

Lua
AddEventHandler('cube_gang:territories:ownerChanged', function(zoneId, gangId, previousGangId) end)
  • zoneId: number
  • gangId: number or nil - nil when the zone becomes neutral
  • previousGangId: number or nil

Announce every capture in a Discord channel or to the whole server:

Lua
AddEventHandler('cube_gang:territories:ownerChanged', function(zoneId, gangId)
    if not gangId then return end

    local zone = exports.cube_gang:GetZone(zoneId)
    local gang = exports.cube_gang:GetGang(gangId)

    TriggerClientEvent('chat:addMessage', -1, {
        args = { 'Territory', ('%s now controls %s'):format(gang.label, zone.label) },
    })
end)

cube_gang:influence:added#

Triggered for every influence gain or loss coming from presence, kills, robberies or the exports. Drug sales are not included.

Lua
AddEventHandler('cube_gang:influence:added', function(zoneId, gangId, amount, reason, source) end)
  • zoneId: number
  • gangId: number
  • amount: number
  • reason: string - presence, kill, death, robbery_<type>, external or your own
  • source: number or nil - the player behind it, if any

cube_gang:influence:kill#

Triggered when a kill is counted by the influence system.

Lua
AddEventHandler('cube_gang:influence:kill', function(killer, victim, gangId, victimGangId, zoneId) end)
  • killer, victim: number - server ids
  • gangId: number
  • victimGangId: number or nil
  • zoneId: number or nil

cube_gang:influence:robbery#

Lua
AddEventHandler('cube_gang:influence:robbery', function(source, robberyType, gangId, zoneId) end)

Client#

cube_gang:gangs:changed#

Triggered when the player joins or leaves a gang, gets promoted, or when their gang is edited.

Lua
AddEventHandler('cube_gang:gangs:changed', function(gang, previous) end)
  • gang: table or nil - same structure as GetGang
  • previous: table or nil

cube_gang:territories:changed#

Triggered when the player enters or leaves a territory.

Lua
AddEventHandler('cube_gang:territories:changed', function(zone, previous) end)
  • zone: table or nil - same structure as GetCurrentZone
  • previous: table or nil

Show the zone name in your own HUD.

Lua
AddEventHandler('cube_gang:territories:changed', function(zone)
    SendNUIMessage({
        action = 'zone',
        label = zone and zone.label or nil,
        owner = zone and zone.ownerLabel or nil,
    })
end)

cube_gang:mapzones:hover#

Triggered when the cursor of the pause map enters or leaves a territory.

Lua
AddEventHandler('cube_gang:mapzones:hover', function(zone, previous) end)

cube_gang:client:openGarage#

Triggered when a member uses the garage point of their gang. See Garages.

Lua
AddEventHandler('cube_gang:client:openGarage', function(gang, coords) end)
  • gang: table - same structure as GetGang
  • coords: table - { x, y, z, w }, w being the heading