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")