Server exports
Note
Internal exports are not meant to called by external parties. But we can't control what you do with it so instead of you guessing we explain what these internal exports do.
GetGarageByDatabaseId
Get the garage object based on database id.
Returns: ExportedIndoorGarageModel | OutdoorGarageModel
Example
local garageId = 1
local garage = exports["rn-garages"]:GetGarageByDatabaseId(garageId)
if not garage then
error("Garage by id "..tostring(garageId).." not found.")
return
end
print(json.encode(garage))
const garageId = 1
const garage = await exports["rn-garages"].GetGarageByDatabaseId(garageId)
if (! garage) {
console.error(`Garage by id ${garageId} not found.`)
return
}
console.dir({garage})
import type { RnGarageExports } from "@rn/lib_server";
const garageId = 1
const garage = await (exports["rn-garages"] as RnGarageExports).GetGarageByDatabaseId(garageId)
if (! garage) {
console.error(`Garage by id ${garageId} not found.`)
return
}
console.dir({garage})
GetGarageByDisplayName
Get the garage object based on display name.
Returns: ExportedIndoorGarageModel | OutdoorGarageModel
Example
local displayName = "Legion Square Garage"
local garage = exports["rn-garages"]:GetGarageByDisplayName(displayName)
if not garage then
error("Garage by display name "..tostring(displayName).." not found.")
return
end
print(json.encode(garage))
const displayName = "Legion Square Garage"
const garage = await exports["rn-garages"].GetGarageByDisplayName(displayName)
if (! garage) {
console.error(`Garage by display name ${displayName} not found.`)
return
}
console.dir({garage})
import type { RnGarageExports } from "@rn/lib_server";
const displayName = "Legion Square Garage"
const garage = await (exports["rn-garages"] as RnGarageExports).GetGarageByDisplayName(displayName)
if (! garage) {
console.error(`Garage by display name ${displayName} not found.`)
return
}
console.dir({garage})
GetGarageByExportIdentifier
Get the garage object based on export row identifier.
Returns: ExportedIndoorGarageModel | OutdoorGarageModel
Example
local exportId = "garage_123"
local garage = exports["rn-garages"]:GetGarageByExportIdentifier(exportId)
if not garage then
error("Garage by export identifier "..tostring(exportId).." not found.")
return
end
print(json.encode(garage))
const exportId = "garage_123"
const garage = await exports["rn-garages"].GetGarageByExportIdentifier(exportId)
if (! garage) {
console.error(`Garage by export identifier ${exportId} not found.`)
return
}
console.dir({garage})
import type { RnGarageExports } from "@rn/lib_server";
const exportId = "garage_123"
const garage = await (exports["rn-garages"] as RnGarageExports).GetGarageByExportIdentifier(exportId)
if (! garage) {
console.error(`Garage by export identifier ${exportId} not found.`)
return
}
console.dir({garage})
CreateGarage
Create a garage through an export. This will also automatically sync the changes to all clients.
Returns: ExportedIndoorGarageModel | OutdoorGarageModel | false
Example
local data = {
displayName = "New Garage",
garageType = "outdoor",
vehicleType = "road",
parkingType = "public",
parkingCost = 0,
parkingCostInterval = 0,
maxParkingDuration = nil,
blipPos = vector3(0.0, 0.0, 0.0),
polyzone = {},
maxParkingSpots = 10
}
local garage = exports["rn-garages"]:CreateGarage(data)
if not garage then
error("Failed to create garage.")
return
end
print(json.encode(garage))
const data = {
displayName: "New Garage",
garageType: "outdoor",
vehicleType: "road",
parkingType: "public",
parkingCost: 0,
parkingCostInterval: 0,
maxParkingDuration: null,
blipPos: [0, 0, 0],
polyzone: {},
maxParkingSpots: 10
}
const garage = await exports["rn-garages"].CreateGarage(data)
if (! garage) {
console.error("Failed to create garage.")
return
}
console.dir({garage})
import type { RnGarageExports } from "@rn/lib_server";
const data = {
displayName: "New Garage",
garageType: "outdoor",
vehicleType: "road",
parkingType: "public",
parkingCost: 0,
parkingCostInterval: 0,
maxParkingDuration: null,
blipPos: [0, 0, 0],
polyzone: {},
maxParkingSpots: 10
}
const garage = await (exports["rn-garages"] as RnGarageExports).CreateGarage(data)
if (! garage) {
console.error("Failed to create garage.")
return
}
console.dir({garage})
DeleteGarage
Deletes a garage based on database id. This will also automatically sync the changes to all clients.
Returns: Boolean
Example
local garageId = 1
local success = exports["rn-garages"]:DeleteGarage(garageId)
print("Deleted:", success)
const garageId = 1
const success = await exports["rn-garages"].DeleteGarage(garageId)
console.log("Deleted:", success)
import type { RnGarageExports } from "@rn/lib_server";
const garageId = 1
const success = await (exports["rn-garages"] as RnGarageExports).DeleteGarage(garageId)
console.log("Deleted:", success)
GetScrapyardByDatabaseId
Get the scrapyard object based on database id.
Returns: ScrapyardModel
Example
local scrapyardId = 1
local scrapyard = exports["rn-garages"]:GetScrapyardByDatabaseId(scrapyardId)
if not scrapyard then
error("Scrapyard by id "..tostring(scrapyardId).." not found.")
return
end
print(json.encode(scrapyard))
const scrapyardId = 1
const scrapyard = await exports["rn-garages"].GetScrapyardByDatabaseId(scrapyardId)
if (! scrapyard) {
console.error(`Scrapyard by id ${scrapyardId} not found.`)
return
}
console.dir({scrapyard})
import type { RnGarageExports } from "@rn/lib_server";
const scrapyardId = 1
const scrapyard = await (exports["rn-garages"] as RnGarageExports).GetScrapyardByDatabaseId(scrapyardId)
if (! scrapyard) {
console.error(`Scrapyard by id ${scrapyardId} not found.`)
return
}
console.dir({scrapyard})
GetScrapyardByDisplayName
Get the scrapyard object based on display name.
Returns: ScrapyardModel
Example
local displayName = "South LS Scrapyard"
local scrapyard = exports["rn-garages"]:GetScrapyardByDisplayName(displayName)
if not scrapyard then
error("Scrapyard by display name "..tostring(displayName).." not found.")
return
end
print(json.encode(scrapyard))
const displayName = "South LS Scrapyard"
const scrapyard = await exports["rn-garages"].GetScrapyardByDisplayName(displayName)
if (! scrapyard) {
console.error(`Scrapyard by display name ${displayName} not found.`)
return
}
console.dir({scrapyard})
import type { RnGarageExports } from "@rn/lib_server";
const displayName = "South LS Scrapyard"
const scrapyard = await (exports["rn-garages"] as RnGarageExports).GetScrapyardByDisplayName(displayName)
if (! scrapyard) {
console.error(`Scrapyard by display name ${displayName} not found.`)
return
}
console.dir({scrapyard})
GetScrapyardByExportIdentifier
Get the scrapyard object based on export row identifier.
Returns: ScrapyardModel
Example
local exportId = "scrapyard_123"
local scrapyard = exports["rn-garages"]:GetScrapyardByExportIdentifier(exportId)
if not scrapyard then
error("Scrapyard by export identifier "..tostring(exportId).." not found.")
return
end
print(json.encode(scrapyard))
const exportId = "scrapyard_123"
const scrapyard = await exports["rn-garages"].GetScrapyardByExportIdentifier(exportId)
if (! scrapyard) {
console.error(`Scrapyard by export identifier ${exportId} not found.`)
return
}
console.dir({scrapyard})
import type { RnGarageExports } from "@rn/lib_server";
const exportId = "scrapyard_123"
const scrapyard = await (exports["rn-garages"] as RnGarageExports).GetScrapyardByExportIdentifier(exportId)
if (! scrapyard) {
console.error(`Scrapyard by export identifier ${exportId} not found.`)
return
}
console.dir({scrapyard})
CreateScrapyard
Create a scrapyard through an export. This will also automatically sync the changes to all clients.
Returns: ScrapyardModel | false
Example
local scrapyardData = {
displayName = "New Scrapyard",
scrapPos = vector3(0.0, 0.0, 0.0),
npcSpawnPoint = vector4(0.0, 0.0, 0.0, 0.0),
npcModel = "s_m_m_garbage"
}
local scrapyard = exports["rn-garages"]:CreateScrapyard(scrapyardData)
if not scrapyard then
error("Failed to create scrapyard.")
return
end
print(json.encode(scrapyard))
const scrapyardData = {
displayName: "New Scrapyard",
scrapPos: [0, 0, 0],
npcSpawnPoint: [0, 0, 0, 0],
npcModel: "s_m_m_garbage"
}
const scrapyard = await exports["rn-garages"].CreateScrapyard(scrapyardData)
if (! scrapyard) {
console.error("Failed to create scrapyard.")
return
}
console.dir({scrapyard})
import type { RnGarageExports } from "@rn/lib_server";
const scrapyardData = {
displayName: "New Scrapyard",
scrapPos: [0, 0, 0],
npcSpawnPoint: [0, 0, 0, 0],
npcModel: "s_m_m_garbage"
}
const scrapyard = await (exports["rn-garages"] as RnGarageExports).CreateScrapyard(scrapyardData)
if (! scrapyard) {
console.error("Failed to create scrapyard.")
return
}
console.dir({scrapyard})
DeleteScrapyard
Deletes a scrapyard based on database id. This will also automatically sync the changes to all clients.
Returns: Boolean
Example
local scrapyardId = 1
local success = exports["rn-garages"]:DeleteScrapyard(scrapyardId)
print("Deleted:", success)
const scrapyardId = 1
const success = await exports["rn-garages"].DeleteScrapyard(scrapyardId)
console.log("Deleted:", success)
import type { RnGarageExports } from "@rn/lib_server";
const scrapyardId = 1
const success = await (exports["rn-garages"] as RnGarageExports).DeleteScrapyard(scrapyardId)
console.log("Deleted:", success)
IsVehicleSetToBeScrapped
Is vehicle with given plate set to be scrapped?
Returns: Boolean | null
Example
local plate = "ABC123"
local isScrapped = exports["rn-garages"]:IsVehicleSetToBeScrapped(plate)
print("Is scrapped:", isScrapped)
const plate = "ABC123"
const isScrapped = await exports["rn-garages"].IsVehicleSetToBeScrapped(plate)
console.log("Is scrapped:", isScrapped)
import type { RnGarageExports } from "@rn/lib_server";
const plate = "ABC123"
const isScrapped = await (exports["rn-garages"] as RnGarageExports).IsVehicleSetToBeScrapped(plate)
console.log("Is scrapped:", isScrapped)
SetVehicleToScrap
Set a vehicle to to_scrap or back to available if setScrap is set to false.
Returns: Boolean
Example
local plate = "ABC123"
local success = exports["rn-garages"]:SetVehicleToScrap(plate, true)
print("Updated:", success)
const plate = "ABC123"
const success = await exports["rn-garages"].SetVehicleToScrap(plate, true)
console.log("Updated:", success)
import type { RnGarageExports } from "@rn/lib_server";
const plate = "ABC123"
const success = await (exports["rn-garages"] as RnGarageExports).SetVehicleToScrap(plate, true)
console.log("Updated:", success)
IsVehicleImpounded
Is vehicle with given plate impounded?
Returns: Boolean | null
Example
local plate = "ABC123"
local isImpounded = exports["rn-garages"]:IsVehicleImpounded(plate)
print("Is impounded:", isImpounded)
const plate = "ABC123"
const isImpounded = await exports["rn-garages"].IsVehicleImpounded(plate)
console.log("Is impounded:", isImpounded)
import type { RnGarageExports } from "@rn/lib_server";
const plate = "ABC123"
const isImpounded = await (exports["rn-garages"] as RnGarageExports).IsVehicleImpounded(plate)
console.log("Is impounded:", isImpounded)
SetVehicleImpounded
Set a vehicle impounded or take off the impounded status if impound is set to false.
Returns: Boolean
Example
local plate = "ABC123"
local success = exports["rn-garages"]:SetVehicleImpounded(plate, true)
print("Updated:", success)
const plate = "ABC123"
const success = await exports["rn-garages"].SetVehicleImpounded(plate, true)
console.log("Updated:", success)
import type { RnGarageExports } from "@rn/lib_server";
const plate = "ABC123"
const success = await (exports["rn-garages"] as RnGarageExports).SetVehicleImpounded(plate, true)
console.log("Updated:", success)
isReady (internal)
Checks if the kernel is fully loaded and ready for any events or export calls.
Returns: Boolean
Example
local ready = exports["rn-garages"]:isReady()
const ready = exports["rn-garages"].isReady()
import type { RnGarageExports } from "@rn/lib_server";
const ready = (exports["rn-garages"] as RnGarageExports).isReady()