Exports & Events
All exports and events available to integrate this resource into others.
Types / Classes
All types / classes can be found in shared/unlocked/types.lua.
Suggestions?
If you wish to have any exports and or events added, please head over to our Discord and create a suggestion post. We are happy to allow for easier integration within other resources.
#Client Sided Exports
#Give Key
Give the player a key to the specified vehicle.
Example:
#Has Key
Check if you have access to a specific vehicle.
Example:
#Remove Key
Remove the key for a specific vehicle from a player.
Example:
#Save Vehicle
If you want to save a vehicle to the database that is in the world, run this export.
This is the same function that gets ran with you use the /savevehicle command, which can be found here.
Example:
#Is Vehicle A Temporary Vehicle
Returns if the vehicle is a temporary vehicle or not.
Example:
#Pay Impound
Pay an impound for a vehicle.
Example:
#Set New Owner
If you want to set owners for vehicles through other resources, you can easily do so via our exports.
Example:
#Open Garage Settings
Opens the garage settings menu, which can also be opened with a command found here.
Example:
#Set Fake Plate
This export allows you to swap the plate of a vehicle temporarily. Note that unless you set "performRealisticSwap" to
true, it will not perform any animations, check if you're close to the vehicle etc.
Example:
#Open Impounder Menu
This export allows you to open the impounder menu just like the existing command. The export checks your job and performs all necessary actions to work.
Example:
#Set Lock State
Using this export you can set the current door lock status for vehicles with a vin number.
Example:
#Set Engine State
Using this export, you can set the current engine state for vehicles with a vin number.
Example:
#Open Garage
Open a garage via an export.
Example:
Example:
Grab the garage id from the section you are currently standing in, to open the garage. The example approach targets both normal garages & impounds.
#Is In Garage Section
Check if you are currently standing inside of a garage section. The garage id for the section you are in is returned as the second parameter, or nil.
Example:
#Is In Impound Section
Check if you are currently standing inside of an impound section. The garage id for the section you are in is returned as the second parameter, or nil.
Example:
#Is In Any Section
Performs the #is-in-garage-section & #is-in-impound-section exports automatically to grab an id for easier integration of just one export.
Example:
#Safe Delete Vehicle
Safely delete a vehicle from the game world. This export handles vehicle lookup, configurable safety checks, and server-side persistence (saving vehicle properties before removal).
The export uses a concurrency guard to prevent multiple simultaneous deletions. All safety requirements are opt-in. If you pass noreqstable, the vehicle will be deleted with no additional checks.
Example:
DeletionRequirements:
entityOwner-boolean?- Iftrue, the player must be the network entity owner of the vehicle.
vehicleEmpty-boolean?- Iftrue, the vehicle must have no other players seated in it (ignores caller).
maxDistance-number?- Maximum allowed distance between the player and the vehicle. Checked on both client and server.
Fail reasons:
"alreadyDeleting"- A deletion is already in progress.
"noVehicleFound"- No vehicle matched the identifier.
"notOwner"- Player is not the entity owner.
"vehicleNotEmpty"- Other players are seated in the vehicle.
"tooFar"- Player exceeded the max distance.
"noVinSpecified"- Server-side: vehicle has no VIN.
"unknownError"- Server callback failed or timed out.
Example with all requirements:
#Server Sided Exports
#Transfer Ownership
This is a shorthand for transfering vehicle ownership with less arguments than SetNewOwner.
Click here to read more about it.
#Give Key
Give the player a key to the specified vehicle.
Example:
#Has Key
Check if a player has access to a specific vehicle.
Example:
#Remove Key
Remove the key for a specific vehicle from a player.
Example:
#Set New Owner
If you want to set owners for vehicles through other resources, you can easily do so via our exports.
Example:
#Set Garage
Set a new garage for a vehicle.
Example:
#Can Transfer Ownership
Check if you can transfer ownership of your vehicle or not. The conditions can be modified in zyke_garages/server/unlocked/functions.lua.
Example:
#Initialize Vehicle
Initialize a spawned vehicle, ensuring it has all the required values to operate properly. Trigger this whenever another script handles the spawning of your vehicle.
NOTE that this is already automatically handled if you give a key for that vehicle.
Example:
#Shared Exports
#Get Vin From Vehicle
This export returns the vin from a vehicle. If the vehicle doesn't have a vin it will ensure it and give it one, unless you specify it not to.
Example:
#Ensure Vehicle Vin
If you want to manually ensure a vehicle's vin number, you can do it with this export.
Example:
#Get Vehicle Position
Returns the vehicle position if it has been taken out of the garage and exists.
Example:
#Set Waypoint To Vehicle
Set a basic waypoint to the vehicle provided.
Example:
#Shared Events
#Handle Vehicle Purchase
There's multiple ways to use this event, please refer to Setup for in-depth examples. If you are new to development, we recommend you use #handle-vehicle-purchase-with-plate.
This is the more performant version, since you have the values directly and don't need to find them, but more difficult to use.
Example:
#Handle Vehicle Purchase With Plate
This command is similar to #handle-vehicle-purchase. This event performs a scan of nearby vehicles attempting to find the correct vehicle with the plate provided. If you can't run #handle-vehicle-purchase, run this.
Example:
#Remove As Persistent
With this export you can deregister a vehicle as persistent. Unless this is executed, the vehicle will always respawn when removed. This has to be used whenever you want to remove a vehicle.
Note that if you pass in the vehicle handle, you have to execute the export before the vehicle is removed.
Example:
