Skip to content

Events

Info

Receiver means this event only receives triggers and a sender triggers the given event (name).

Example:

-- Usage of a receiver
TriggerEvent("ReceiverEventName", arg1)

-- Usage of a sender
AddEventHandler("SenderEventName" function(arg1)
    -- Custom code here
end)
// Usage of a receiver
emit("ReceiverEventName", arg1)

// Usage of a sender
on("SenderEventName", (arg1) => {
    // Custom code here
})
// Usage of a receiver
emit("ReceiverEventName", arg1)

// Usage of a sender
on("SenderEventName", (arg1: any) => {
    // Custom code here
})

Server sided

Receivers

These events only receive triggers.

_updateVehiclePos

Accessible by client: Yes

Event name: rn-garages:server:_updateVehiclePos

Force update vehicle position to database.

Arguments
Argument Type Description
netEntity Number A network entity id representing the vehicle you want the position synced to the database.
Example
local playerPed = GetPlayerPed(source)
local vehicle = GetVehiclePedIsIn(playerPed, false)
if not vehicle then
  print("Player not in a vehicle")
  return
end

local netEntity = NetworkGetNetworkIdFromEntity(vehicle)

TriggerEvent("rn-garages:server:_updateVehiclePos", netEntity)
const playerPed = GetPlayerPed(source)
const vehicle = GetVehiclePedIsIn(playerPed, false)
if (! vehicle) {
  console.error("Player not in a vehicle")
  return
}

const netEntity = NetworkGetNetworkIdFromEntity(vehicle)

emit("rn-garages:server:_updateVehiclePos", netEntity)
const playerPed = GetPlayerPed(source)
const vehicle = GetVehiclePedIsIn(playerPed, false)
if (! vehicle) {
  console.error("Player not in a vehicle")
  return
}

const netEntity = NetworkGetNetworkIdFromEntity(vehicle)

emit("rn-garages:server:_updateVehiclePos", netEntity)
local playerPed = PlayerPedId()
local vehicle = GetVehiclePedIsIn(playerPed, false)
if not vehicle then
  print("Player not in a vehicle")
  return
end

local netEntity = NetworkGetNetworkIdFromEntity(vehicle)

TriggerServerEvent("rn-garages:server:_updateVehiclePos", netEntity)
const playerPed = PlayerPedId()
const vehicle = GetVehiclePedIsIn(playerPed, false)
if (! vehicle) {
  console.error("Player not in a vehicle")
  return
}

const netEntity = NetworkGetNetworkIdFromEntity(vehicle)

emitNet("rn-garages:server:_updateVehiclePos", netEntity)
const playerPed = PlayerPedId()
const vehicle = GetVehiclePedIsIn(playerPed, false)
if (! vehicle) {
  console.error("Player not in a vehicle")
  return
}

const netEntity = NetworkGetNetworkIdFromEntity(vehicle)

emitNet("rn-garages:server:_updateVehiclePos", netEntity)

_updateRequestAmountOfParkedVehicles

Accessible by client: Yes

Event name: rn-garages:server:_updateRequestAmountOfParkedVehicles

Requests an update on the amount of parked vehicles. This update will then be sent out to all clients.

Example
TriggerEvent("rn-garages:server:_updateRequestAmountOfParkedVehicles")
emit("rn-garages:server:_updateRequestAmountOfParkedVehicles")
emit("rn-garages:server:_updateRequestAmountOfParkedVehicles")
TriggerServerEvent("rn-garages:server:_updateRequestAmountOfParkedVehicles")
emitNet("rn-garages:server:_updateRequestAmountOfParkedVehicles")
emitNet("rn-garages:server:_updateRequestAmountOfParkedVehicles")

giveKeys

Accessible by client: Yes

Event name: rn-garages:server:giveKeys

Give keys of given vehicle to given player.

If this is called by a client they need to pass the allowedToAdminCar permissions.

Arguments
Argument Type Description
targetSource Number The server id of the player who is supposed to get the vehicle keys.
plate String Plate of the vehicle the key should be for.
Example
local targetSource = 69
local plate = "RN NEXUS"
TriggerEvent("rn-garages:server:giveKeys", targetSource, plate)
const targetSource = 69
const plate = "RN NEXUS"
emit("rn-garages:server:giveKeys", targetSource, plate)
const targetSource = 69
const plate = "RN NEXUS"
emit("rn-garages:server:giveKeys", targetSource, plate)
local targetSource = 69
local plate = "RN NEXUS"
TriggerServerEvent("rn-garages:server:giveKeys", targetSource, plate)
const targetSource = 69
const plate = "RN NEXUS"
emitNet("rn-garages:server:giveKeys", targetSource, plate)
const targetSource = 69
const plate = "RN NEXUS"
emitNet("rn-garages:server:giveKeys", targetSource, plate)

updateVehicleProperties

Accessible by client: No

Event name: rn-garages:server:updateVehicleProperties

This reloads vehicle properties from database to entity.

Arguments
Argument Type Description
plate String The plate of the vehicle you want to reload the vehicles properties from.
Example
local plate = "RN NEXUS"
TriggerEvent("rn-garages:server:updateVehicleProperties", plate)
const plate = "RN NEXUS"
emit("rn-garages:server:updateVehicleProperties", plate)
const plate = "RN NEXUS"
emit("rn-garages:server:updateVehicleProperties", plate)

forceRespawn

Accessible by client: No

Event name: rn-garages:server:forceRespawn

Force respawn given vehicle.

Arguments
Argument Type Description
plate String The plate of the vehicle.
Example
local plate = "RN NEXUS"
TriggerEvent("rn-garages:server:forceRespawn", plate)
const plate = "RN NEXUS"
emit("rn-garages:server:forceRespawn", plate)
const plate = "RN NEXUS"
emit("rn-garages:server:forceRespawn", plate)

Senders

Data is send to these events and you can listen in on them.

towingRequested

Triggered: Server => Server

When towing is requested (and a custom event name is not set) this event is triggered.

Event name: rn-garages:towingRequested

Arguments
Argument Type Description
playerVehicle PlayerVehicleModel The player vehicle that needs to be towed.
garage ExportedGarageModel | ValidGarageModel The garage the vehicle is currently in.
towTarget TowTarget Where you need to tow the vehicle to.
Example
AddEventHandler("rn-garages:towingRequested", function(playerVehicle, garage, towTarget)
  -- Your custom code here
end)
on("rn-garages:towingRequested", (playerVehicle, garage, towTarget) => {
  // Your custom code here
})
import type { PlayerVehicleModel, ExportedGarageModel, TowTarget } from "@rn/lib_server"

on("rn-garages:towingRequested", (playerVehicle: PlayerVehicleModel, garage: ExportedGarageModel, towTarget: TowTarget) => {
  // Your custom code here
})

triggerDispatch

Triggered: Server => Server

When something illegal happens this event will be triggered.

Event name: rn-garages:triggerDispatch

Arguments
Argument Type Description
reason DispatchReason The reason for this dispatch call.
vehicle Number The server entity of the vehicle.
Example
AddEventHandler("rn-garages:triggerDispatch", function(reason, vehicle)
  -- Your custom code here
end)
on("rn-garages:triggerDispatch", (reason, vehicle) => {
  // Your custom code here
})
import type { DispatchReason } from "@rn/lib_server"

on("rn-garages:triggerDispatch", (reason: DispatchReason, vehicle: number) => {
  // Your custom code here
})

Client sided

Receivers

openGarageAccessManager

Accessible by server: No

Event name: rn-garages:client:openGarageAccessManager

Opens the garage access manager. Same menu as target option Manage garage on private garages.

Note

You still pass the access test of callback rn-garages:server:canFetchGarageAccess.

Arguments
Argument Type Description
garageId Number Garage database id.
Example
local garageId = 420
TriggerEvent("rn-garages:client:openGarageAccessManager", garageId)
const garageId = 420
emit("rn-garages:client:openGarageAccessManager", garageId)
const garageId = 420
emit("rn-garages:client:openGarageAccessManager", garageId)

_initiateGarageInteriors

Accessible by server: Yes

Event name: rn-garages:client:_initiateGarageInteriors

Initiates garage interiors.

Arguments
Argument Type Description
force Boolean (optional, default: false) If true and interior is already initiated it will be uninitiated first before re-initiated.
specificGarageInterior Number (optional) If set it will only (re)iniated the given garage interior database id.
Example
local source = -1 -- Send to everyone
local force = false
local specificGarageInterior = 420
TriggerClientEvent("rn-garages:client:_initiateGarageInteriors", source, force, specificGarageInterior)

-- Or just initiate all garage interiors without forcing
TriggerClientEvent("rn-garages:client:_initiateGarageInteriors", source)
const source = -1 // Send to everyone
const force = false
const specificGarageInterior = 420
emitNet("rn-garages:client:_initiateGarageInteriors", source, force, specificGarageInterior)

// Or just initiate all garage interiors without forcing
emitNet("rn-garages:client:_initiateGarageInteriors", source)
const source = -1 // Send to everyone
const force = false
const specificGarageInterior = 420
emitNet("rn-garages:client:_initiateGarageInteriors", source, force, specificGarageInterior)

// Or just initiate all garage interiors without forcing
emitNet("rn-garages:client:_initiateGarageInteriors", source)
local force = false
local specificGarageInterior = 420
TriggerEvent("rn-garages:client:_initiateGarageInteriors", force, specificGarageInterior)

-- Or just initiate all garage interiors without forcing
TriggerEvent("rn-garages:client:_initiateGarageInteriors")
const force = false
const specificGarageInterior = 420
emit("rn-garages:client:_initiateGarageInteriors", force, specificGarageInterior)

// Or just initiate all garage interiors without forcing
emit("rn-garages:client:_initiateGarageInteriors")
const force = false
const specificGarageInterior = 420
emit("rn-garages:client:_initiateGarageInteriors", force, specificGarageInterior)

// Or just initiate all garage interiors without forcing
emit("rn-garages:client:_initiateGarageInteriors")

_uninitiateGarageInteriors

Accessible by server: Yes

Event name: rn-garages:client:_uninitiateGarageInteriors

Uninitiates given garage interior.

Arguments
Argument Type Description
garageInteriorId Number The database id of the garage interior.
Example
local garageInteriorId = 420
TriggerClientEvent("rn-garages:client:_uninitiateGarageInteriors", source, garageInteriorId)
const garageInteriorId = 420
emitNet("rn-garages:client:_uninitiateGarageInteriors", source, garageInteriorId)
const garageInteriorId = 420
emitNet("rn-garages:client:_uninitiateGarageInteriors", source, garageInteriorId)
local garageInteriorId = 420
TriggerEvent("rn-garages:client:_uninitiateGarageInteriors", garageInteriorId)
const garageInteriorId = 420
emit("rn-garages:client:_uninitiateGarageInteriors", garageInteriorId)
const garageInteriorId = 420
emit("rn-garages:client:_uninitiateGarageInteriors", garageInteriorId)

_initiateGarages

Accessible by server: Yes

Event name: rn-garages:client:_initiateGarages

Initiates garage.

Arguments
Argument Type Description
force Boolean (optional, default: false) If true and garage is already initiated it will be uninitiated first before re-initiated.
specificGarage Number (optional) If set it will only (re)iniated the given garage database id.
Example
local source = -1 -- Send to everyonegarage interiors
local force = false
local specificGarage = 420
TriggerClientEvent("rn-garages:client:_initiateGarages", source, force, specificGarage)

-- Or just initiate all garages without forcing
TriggerClientEvent("rn-garages:client:_initiateGarages", source)
const source = -1 // Send to everyone
const force = false
const specificGarage = 420
emitNet("rn-garages:client:_initiateGarages", source, force, specificGarage)

// Or just initiate all garages without forcing
emitNet("rn-garages:client:_initiateGarages", source)
const source = -1 // Send to everyone
const force = false
const specificGarage = 420
emitNet("rn-garages:client:_initiateGarages", source, force, specificGarage)

// Or just initiate all garages without forcing
emitNet("rn-garages:client:_initiateGarages", source)
local force = false
local specificGarage = 420
TriggerEvent("rn-garages:client:_initiateGarages", force, specificGarage)

-- Or just initiate all garages without forcing
TriggerEvent("rn-garages:client:_initiateGarages")
const force = false
const specificGarage = 420
emit("rn-garages:client:_initiateGarages", force, specificGarage)

// Or just initiate all garages without forcing
emit("rn-garages:client:_initiateGarages")
const force = false
const specificGarage = 420
emit("rn-garages:client:_initiateGarages", force, specificGarage)

// Or just initiate all garages without forcing
emit("rn-garages:client:_initiateGarages")

_uninitiateGarage

Accessible by server: Yes

Event name: rn-garages:client:_uninitiateGarage

Uninitiates given garage.

Arguments

|Argument|Type|Description|garages |---|---|---| |garageId|Number|The database id of the garage.|

Example
local garageId = 420
TriggerClientEvent("rn-garages:client:_uninitiateGarage", source, garageId)
const garageId = 420
emitNet("rn-garages:client:_uninitiateGarage", source, garageId)
const garageId = 420
emitNet("rn-garages:client:_uninitiateGarage", source, garageId)
local garageId = 420
TriggerEvent("rn-garages:client:_uninitiateGarage", garageId)
const garageId = 420
emit("rn-garages:client:_uninitiateGarage", garageId)
const garageId = 420
emit("rn-garages:client:_uninitiateGarage", garageId)

_initiateScrapyards

Accessible by server: Yes

Event name: rn-garages:client:_initiateScrapyards

Initiates scrapyard.

Arguments
Argument Type Description
force Boolean (optional, default: false) If true and scrapyard is already initiated it will be uninitiated first before re-initiated.
specific Number (optional) If set it will only (re)iniated the given scrapyard database id.
Example
local source = -1 -- Send to everyonegarage interiors
local force = false
local specific = 420
TriggerClientEvent("rn-garages:client:_initiateScrapyards", source, force, specific)

-- Or just initiate all scrapyards without forcing
TriggerClientEvent("rn-garages:client:_initiateScrapyards", source)
const source = -1 // Send to everyone
const force = false
const specific = 420
emitNet("rn-garages:client:_initiateScrapyards", source, force, specific)

// Or just initiate all scrapyards without forcing
emitNet("rn-garages:client:_initiateScrapyards", source)
const source = -1 // Send to everyone
const force = false
const specific = 420
emitNet("rn-garages:client:_initiateScrapyards", source, force, specific)

// Or just initiate all scrapyards without forcing
emitNet("rn-garages:client:_initiateScrapyards", source)
local force = false
local specific = 420
TriggerEvent("rn-garages:client:_initiateScrapyards", force, specific)

-- Or just initiate all garages without forcing
TriggerEvent("rn-garages:client:_initiateScrapyards")
const force = false
const specific = 420
emit("rn-garages:client:_initiateScrapyards", force, specific)

// Or just initiate all garages without forcing
emit("rn-garages:client:_initiateScrapyards")
const force = false
const specific = 420
emit("rn-garages:client:_initiateScrapyards", force, specific)

// Or just initiate all garages without forcing
emit("rn-garages:client:_initiateScrapyards")

_uninitiateScrapyards

Accessible by server: Yes

Event name: rn-garages:client:_uninitiateScrapyards

Uninitiates given scrapyard.

Arguments
Argument Type Description
modelId Number The database id of the scrapyard.
Example
local modelId = 420
TriggerClientEvent("rn-garages:client:_uninitiateScrapyards", source, modelId)
const modelId = 420
emitNet("rn-garages:client:_uninitiateScrapyards", source, modelId)
const modelId = 420
emitNet("rn-garages:client:_uninitiateScrapyards", source, modelId)
local modelId = 420
TriggerEvent("rn-garages:client:_uninitiateScrapyards", modelId)
const modelId = 420
emit("rn-garages:client:_uninitiateScrapyards", modelId)
const modelId = 420
emit("rn-garages:client:_uninitiateScrapyards", modelId)

reloadNui

Accessible by server: Yes

Event name: rn-garages:client:reloadNui

Reloads the phone UI.
This mainly just reloads the data that is displayed currently rather then reloading the iframe or something.

Example
local source = -1 -- Everyone
TriggerClientEvent("rn-garages:client:reloadNui", source)
const source = -1 // Everyone
emitNet("rn-garages:client:reloadNui", source)
const source = -1 // Everyone
emitNet("rn-garages:client:reloadNui", source)
TriggerEvent("rn-garages:client:reloadNui")
emit("rn-garages:client:reloadNui")
emit("rn-garages:client:reloadNui")