Skip to main content

NetVehicle

This is the server-side class for NetVehicle.

Class Instance Methods

Inherited methods from NetObject

NetObject:SetData(key: string, value: any, broadcast: bool): boolean

Sets generic data on the object. Value must be a number, string, bool, vec2, vec3, vec4, or quat. If broadcast is true, the data will be synchronized to all clients. Returns true if the data was set successfully, false otherwise (for unsupported types).

Parameters:

  • key: string - The key to store the data under
  • value: any - The value to store (must be a supported type)
  • broadcast: bool - Whether to synchronize the data to all clients

Returns: boolean - true if the data was set successfully, false otherwise

Example:

-- Set data and broadcast to all clients
local success = object:SetData("serverValue", 100, true)
if success then
print("Data set and broadcast successfully")
else
print("Failed to set data")
end

-- Set data only on server
local success = object:SetData("localValue", 50, false)

NetObject:SetHealth(health: number): void

Sets the health of the network object. This change is synchronized to all players.

Parameters:

  • health: number - The new health value for the object

Example:

-- Set object health to 100
object:SetHealth(100)

NetObject:SetPosition(position: vec3): void

Sets the position of the network object. This change is synchronized to all players.

Parameters:

  • position: vec3 - The new position for the object

Example:

-- Teleport object to a new position
object:SetPosition(vec3(100, 50, 200))

NetObject:SetRotation(rotation: quat): void

Sets the rotation of the network object. This change is synchronized to all players.

Parameters:

  • rotation: quat - The new rotation for the object

Example:

-- Rotate object to face north
object:SetRotation(quat(0, 0, 1, 0))

NetObject:SetVelocity(velocity: vec3): void

Sets the velocity of the network object. This change is synchronized to all players.

Parameters:

  • velocity: vec3 - The new velocity for the object

Example:

-- Launch object forward at high speed
object:SetVelocity(vec3(100, 0, 0))

NetObject:SetAngularVelocity(velocity: vec3): void

Sets the angular velocity (rotation speed around each axis) of the network object. This change is synchronized to all players. Note: This method works only for anything but NetPlayer.

Parameters:

  • velocity: vec3 - The new angular velocity for the object (in radians per second)

Example:

-- Make object spin around Y axis
object:SetAngularVelocity(vec3(0, 5, 0))

-- Stop rotation
object:SetAngularVelocity(vec3(0, 0, 0))

NetObject:GetPosition(): vec3

Returns the position of the object.

Returns: vec3 - The position of the object

Example:

local position = object:GetPosition()
print("Object position: " .. tostring(position))

NetObject:GetRotation(): quat

Returns the rotation of the object.

Returns: quat - The rotation of the object

Example:

local rotation = object:GetRotation()
print("Object rotation: " .. tostring(rotation))

NetObject:GetEulerRotation(): vec3

Returns the Euler rotation of the object.

Returns: vec3 - Euler rotation

Example:

local eulerRotation = object:GetEulerRotation()
print("Object euler rotation: " .. tostring(eulerRotation))

NetObject:GetHealth(): number

Returns the current health of the object.

Returns: number - The current health of the object

Example:

local health = object:GetHealth()
print("Object health: " .. health)

NetObject:GetMaxHealth(): number

Returns the maximum health of the object.

Returns: number - The maximum health of the object

Example:

local maxHealth = object:GetMaxHealth()
print("Object max health: " .. maxHealth)

NetObject:GetVelocity(): vec3

Returns the velocity of the object.

Returns: vec3 - The velocity of the object

Example:

local velocity = object:GetVelocity()
print("Object velocity: " .. tostring(velocity))

NetObject:GetAngularVelocity(): vec3

Returns the angular velocity of the object.

Returns: vec3 - The angular velocity of the object

NetObject:GetNetId(): number

Returns the network ID of the object.

Returns: number - The network ID of the object

Example:

local netId = object:GetNetId()
print("Object network ID: " .. netId)

NetObject:GetData(key: string): any

Gets generic data from the object.

Parameters:

  • key: string - The key of the data to retrieve

Returns: any - The stored data value

Example:

local value = object:GetData("customValue")
print("Retrieved value: " .. tostring(value))

NetObject:AsPlayer(): NetPlayer | nil

Returns a NetPlayer instance if the object is a player, otherwise returns nil. This is a safe way to cast a NetObject to a NetPlayer.

Returns: NetPlayer instance if the object is a player, nil otherwise

Example:

-- Safe casting to NetPlayer
local netObject = someNetObject -- Assume this is a NetObject instance
local player = netObject:AsPlayer()

if player then
print("This is a player: " .. player:GetNick())
else
print("This is not a player")
end

NetObject:AsVehicle(): NetVehicle | nil

Returns a NetVehicle instance if the object is a vehicle, otherwise returns nil. This is a safe way to cast a NetObject to a NetVehicle.

Returns: NetVehicle instance if the object is a vehicle, nil otherwise

Example:

-- Safe casting to NetVehicle
local netObject = someNetObject -- Assume this is a NetObject instance
local vehicle = netObject:AsVehicle()

if vehicle then
print("This is a vehicle at position: " .. tostring(vehicle:GetPosition()))
else
print("This is not a vehicle")
end

NetObject:AsMountedGun(): NetMountedGun | nil

Returns a NetMountedGun instance if the object is a mounted gun, otherwise returns nil. This is a safe way to cast a NetObject to a NetMountedGun.

Returns: NetMountedGun instance if the object is a mounted gun, nil otherwise

Example:

-- Safe casting to NetMountedGun
local netObject = someNetObject -- Assume this is a NetObject instance
local mountedGun = netObject:AsMountedGun()

if mountedGun then
print("This is a mounted gun with health: " .. mountedGun:GetHealth())
else
print("This is not a mounted gun")
end

NetObject:AsRigidObject(): NetRigidObject | nil

Returns a NetRigidObject instance if the object is a rigid object, otherwise returns nil. This is a safe way to cast a NetObject to a NetRigidObject.

Returns: NetRigidObject instance if the object is a rigid object, nil otherwise

Example:

-- Safe casting to NetRigidObject
local netObject = someNetObject -- Assume this is a NetObject instance
local rigidObject = netObject:AsRigidObject()

if rigidObject then
print("This is a rigid object with velocity: " .. tostring(rigidObject:GetVelocity()))
else
print("This is not a rigid object")
end

NetObject:AsNPC(): NetNPC | nil

Returns a NetNPC instance if the object is an NPC, otherwise returns nil. This is a safe way to cast a NetObject to a NetNPC.

Returns: NetNPC instance if the object is an NPC, nil otherwise

Example:

-- Safe casting to NetNPC
local netObject = someNetObject -- Assume this is a NetObject instance
local npc = netObject:AsNPC()

if npc then
print("This is an NPC with ID: " .. npc:GetId())
else
print("This is not an NPC")
end

NetObject:AsTether(): NetTether | nil

Returns a NetTether instance if the object is a tether, otherwise returns nil. This is a safe way to cast a NetObject to a NetTether.

Returns: NetTether instance if the object is a tether, nil otherwise

Example:

-- Safe casting to NetTether
local netObject = someNetObject -- Assume this is a NetObject instance
local tether = netObject:AsTether()

if tether then
print("This is a tether")
else
print("This is not a tether")
end

NetObject:GetType(): NetObjectType

Returns the network object type. Use the NetObjectType enum to compare types.

Returns: The type of the network object as a NetObjectType enum value

Example:

-- Check object type
local netObject = someNetObject -- Assume this is a NetObject instance
local objectType = netObject:GetType()

if objectType == NetObjectType.Player then
print("This is a player object")
elseif objectType == NetObjectType.Vehicle then
print("This is a vehicle object")
end

NetVehicle:GetId(): number

Returns the ID of the vehicle.

Returns: number - The unique ID of the vehicle

Example:

local vehicleId = vehicle:GetId()
print("Vehicle ID: " .. vehicleId)

NetVehicle:GetVelocity(): vec3

Gets the vector3 velocity of the vehicle.

Returns: vec3 - The velocity vector of the vehicle

Example:

local velocity = vehicle:GetVelocity()
print("Vehicle velocity: " .. tostring(velocity))

NetVehicle:IsWheelDrifting(wheel: number, threshold: number): boolean

Returns true if the specified wheel is currently drifting, false otherwise. Wheel is the index of the wheel to check, and threshold is the threshold where it returns true. Threshold should be a value between 0 and 1 where a low value will detect drifting more easily.

Parameters:

  • wheel: number - The index of the wheel to check (0-based)
  • threshold: number - The threshold for detecting drift (0-1)

Returns: boolean - true if the wheel is drifting, false otherwise

Example:

local isDrifting = vehicle:IsWheelDrifting(0, 0.5)
if isDrifting then
print("Front wheel is drifting!")
end

NetVehicle:GetNumberOfWheelsOnGround(): number

Returns the number of wheels of the vehicle that are currently touching the ground.

Returns: number - The number of wheels on the ground

Example:

local wheelsOnGround = vehicle:GetNumberOfWheelsOnGround()
print("Wheels on ground: " .. wheelsOnGround)

NetVehicle:SetCloak(enabled: bool): void

Enables or disables cloaked mode. When cloaked mode is enabled, the vehicle will become mostly invisible with a shine on them.

Parameters:

  • enabled: bool - Whether to enable or disable cloaked mode

Example:

-- Enable cloaked mode
vehicle:SetCloak(true)

-- Disable cloaked mode
vehicle:SetCloak(false)

NetVehicle:IsCloaked(): boolean

Returns true if the vehicle is currently cloaked, false otherwise.

Returns: boolean - true if the vehicle is cloaked, false otherwise

NetVehicle:GetDirt(): float

Returns the current dirt level of the vehicle as a float value.

Returns: float - The dirt level of the vehicle

NetVehicle:GetPrimaryColor(): vec3

Returns the primary color of the vehicle as a vec3 RGB value.

Returns: vec3 - The primary RGB color of the vehicle

NetVehicle:GetSecondaryColor(): vec3

Returns the secondary color of the vehicle as a vec3 RGB value.

Returns: vec3 - The secondary RGB color of the vehicle

NetVehicle:GetTertiaryColor(): vec3

Returns the tertiary color of the vehicle as a vec3 RGB value.

Returns: vec3 - The tertiary RGB color of the vehicle

NetVehicle:GetSpecularGloss(): float

Returns the specular gloss value of the vehicle's material.

Returns: float - The specular gloss value of the vehicle

NetVehicle:GetClearCoat(): float

Returns the clear coat value of the vehicle's material.

Returns: float - The clear coat value of the vehicle

NetVehicle:GetMetallic(): float

Returns the metallic value of the vehicle's material.

Returns: float - The metallic value of the vehicle

NetVehicle:GetPartState(part: VehiclePart): VehiclePartState

Returns the current state of the specified vehicle part.

Parameters:

  • part: VehiclePart - The part to get the state of

Returns: VehiclePartState - The state of the vehicle part

NetVehicle:SetPrimaryColor(r: number, g: number, b: number): void

Sets the primary color of the vehicle. RGB values should be floats between 0 and 1.

Parameters:

  • r: number - Red component (0-1)
  • g: number - Green component (0-1)
  • b: number - Blue component (0-1)

Example:

-- Set primary color to red
vehicle:SetPrimaryColor(1.0, 0.0, 0.0)

-- Set primary color to blue
vehicle:SetPrimaryColor(0.0, 0.0, 1.0)

NetVehicle:SetSecondaryColor(r: number, g: number, b: number): void

Sets the secondary color of the vehicle. RGB values should be floats between 0 and 1.

Parameters:

  • r: number - Red component (0-1)
  • g: number - Green component (0-1)
  • b: number - Blue component (0-1)

Example:

-- Set secondary color to green
vehicle:SetSecondaryColor(0.0, 1.0, 0.0)

NetVehicle:SetTertiaryColor(r: number, g: number, b: number): void

Sets the tertiary color of the vehicle. RGB values should be floats between 0 and 1.

Parameters:

  • r: number - Red component (0-1)
  • g: number - Green component (0-1)
  • b: number - Blue component (0-1)

Example:

-- Set tertiary color to yellow
vehicle:SetTertiaryColor(1.0, 1.0, 0.0)

NetVehicle:SetSpecularGloss(value: number): void

Sets the specular gloss of the vehicle. Value should be a float between 0 and 1.

Parameters:

  • value: number - The specular gloss value (0-1)

Example:

-- Set high specular gloss for a shiny look
vehicle:SetSpecularGloss(0.9)

NetVehicle:SetClearCoat(value: number): void

Sets the clear coat value of the vehicle. Value should be a float between 0 and 1.

Parameters:

  • value: number - The clear coat value (0-1)

Example:

-- Set clear coat for extra shine
vehicle:SetClearCoat(0.8)

NetVehicle:SetMetallic(value: number): void

Sets the metallic value of the vehicle. Value should be a float between 0 and 1.

Parameters:

  • value: number - The metallic value (0-1)

Example:

-- Set metallic finish
vehicle:SetMetallic(0.7)

NetVehicle:SetDirt(value: number): void

Sets the dirt level of the vehicle. Value should be a float between 0 and 1, although higher values can make the vehicle extremely dirty.

Parameters:

  • value: number - The dirt level (0-1, can be higher)

Example:

-- Make vehicle slightly dirty
vehicle:SetDirt(0.3)

-- Make vehicle very dirty
vehicle:SetDirt(2.0)

NetVehicle:SetPartState(part: ArticulatedPartsSlot, state: ArticulatedPartState): void

Sets the state of a specific articulated vehicle part (such as doors, trunk, hood, etc.).

Parameters:

  • part: ArticulatedPartsSlot - The part slot to modify
  • state: ArticulatedPartState - The state to set the part to

Example:

-- Open the vehicle's hood
vehicle:SetPartState(ArticulatedPartsSlot.Hood, ArticulatedPartState.Open)

-- Close all doors
vehicle:SetPartState(ArticulatedPartsSlot.Doors, ArticulatedPartState.Closed)

NetVehicle:SetLocked(locked: boolean): void

Sets whether the vehicle is locked or unlocked.

Parameters:

  • locked: boolean - Whether the vehicle should be locked (true) or unlocked (false)