---@param {*netId: number}: Vehicle ID or Network ID of entity
---@param {*plate: string}: License plate number
---@param {*impoundId: string}: Impound ID (by default are 'Impound1'/'ImpoundBoat'/'ImpoundPlane'/'ImpoundHeli'/'ImpoundPolice')
---@param {fine: string}: Towing fine title [Not required]
---@param {fine_amount: number}: Towing fine amount [Not required]
---@param {*towedBy: string}: Name of who towed
exports["vms_garagesv2"]:towVehicle(
netId,
plate,
impoundId,
fine,
fine_amount,
towedBy
)
giveVehicle
Adding vehicles using export, application for example admin menu.
After adding, the vehicle will go to the impound matching for the selected type.
---@param {source: number or nil}: ID of the player using export or nil
---@param {owner: number or string}: vehicle owner - player id or job name for company
---@param {type: string}: vehicle/boat/plane/helicopter (it must be a key from Config.VehicleTypes)
---@param {model: string}: model name of vehicle
---@param {plate: string}: license plate (Max 8 characters, special characters cannot be used!)
exports["vms_garagesv2"]:giveVehicle(
source,
owner,
type,
model,
plate
)
updateParkedVehiclePlate
Export possible to an external resource for changing license plates. This export will be needed to update the current plates if the vehicle is currently parked.
---@param {lastPlate: string}: the current plate of the vehicle you want to change
---@param {newPlate: string}: new vehicle plate to be set up
---@param {updateSQL: boolean}: if you also want to update the properties and plate column with this export
exports["vms_garagesv2"]:updateParkedVehiclePlate(lastPlate, newPlate, updateSQL)
isInInterior
Export to check if player is currently in any underground garage interiors.
---@param {source: number}: ID of the player
local garageName, outsideCoords = exports["vms_garagesv2"]:isInInterior(source)
---@return {garageName: string}: Id of the garage the player is currently in
---@return {outsideCoords: vector4}: Coordinates outside the interior
getCompanyMoney
With this export, you can see how much money is in the parking safe.
-- @param {parkingId: string}: parkingId is the key of the garages table
local amount = exports["vms_garagesv2"]:getCompanyMoney(parkingId)
addCompanyMoney
With this export you can add money to the parking safe.
---@param {parkingId: string}: parkingId is the key of the garages table
---@param {amount: number}: the amount to be added to the parking safe
---@param {addToTotalEarning: boolean}: Is the added money to be included in Total Earned
exports["vms_garagesv2"]:addCompanyMoney(parkingId, amount, addToTotalEarned)
removeCompanyMoney
With this export you can remove money from the parking safe.
---@param {parkingId: string}: parkingId is the key of the garages table
---@param {amount: number}: the amount to be removed from the parking safe
exports["vms_garagesv2"]:removeCompanyMoney(parkingId, amount)
getGarageInfo
Information about the garage such as the label and coordinates
---@param {garageId: string}: garageId is the key of the garages table
local label, coords = exports["vms_garagesv2"]:getGarageInfo(garageId)
registerHousingGarage
Registers the garage assigned to a specific property in the housing system. The function automatically creates a garage file in the CREATED_PARKINGS folder, making the garage immediately available.
---@param {garageId: string | number}: The unique identifier of the garage - used as the file name and as the key in the `Config.HousingGarages` table, e.g., `"nolag_property-UNIQUE_ID"`.
---@param {label: string}: The label displayed to the player when interacting with the garage.
---@param {housingId: string | number}: The ID of the housing unit associated with the garage. It should match the ID used by the housing system.
---@param {coords: vector3}: The coordinates of the garage entry point - typically defined as part of the house's interaction point.
---@param {garageInterior: number | nil}: The ID of the garage interior, taken from `Config.ParkingCreator.HouseGarageInteriors`. Defaults to `1` if the specified ID is not found.
exports["vms_garagesv2"]:registerHousingGarage(
garageId,
label,
housingId,
coords,
garageInterior
)
Example Usage
RegisterNetEvent('qb-houses:server:addGarage')
AddEventHandler('qb-houses:server:addGarage', function(name, coords)
local name, coords = name, coords
if name and coords and coords.x then
CreateThread(function()
exports["vms_garagesv2"]:registerHousingGarage(
'qs-housing-' .. name, --[[ File name - Garage ID will always be as "HouseGarage:nolag_property-ID" ]]
'Garage', --[[ Garage Label ]]
name, --[[ Housing ID ]]
vector4(coords.x, coords.y, coords.z, coords.h), --[[ Coordinates ]]
1 --[[ Garage Interior ID (Config.ParkingCreator.HouseGarageInteriors) ]]
)
end)
end
end)
refreshVehicles
Refresh all vehicles based on the current database data in the specified parking lot.
---@param {garageId: string}: garageId is the key of the garages table
exports["vms_garagesv2"]:refreshVehicles(garageId)