<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.multitheftauto.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jayceon</id>
	<title>Multi Theft Auto: Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.multitheftauto.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jayceon"/>
	<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/wiki/Special:Contributions/Jayceon"/>
	<updated>2026-04-22T15:48:12Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=Vector/Vector3&amp;diff=73367</id>
		<title>Vector/Vector3</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=Vector/Vector3&amp;diff=73367"/>
		<updated>2022-01-15T12:10:56Z</updated>

		<summary type="html">&lt;p&gt;Jayceon: Add syntax to intersectsSegmentTriangle (PR #1711)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Incomplete]]&lt;br /&gt;
The '''vector3''' class represents a three-dimensional [[vector]].&lt;br /&gt;
&lt;br /&gt;
==Methods==&lt;br /&gt;
===create===&lt;br /&gt;
This is default constructor for the Vector3 class and returns a Vector3 object.&lt;br /&gt;
&lt;br /&gt;
====Syntax====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;vector3 Vector3 ( [ float x = 0, float y = 0, float z = 0 ] )&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Optional arguments=====&lt;br /&gt;
* '''x''', '''y''' and '''z''': coordinates for the vector. If not specified, they default to 0.&lt;br /&gt;
* Instead of these three coordinates, a single Vector3 object may be inserted to clone it.&lt;br /&gt;
&lt;br /&gt;
====Example====&lt;br /&gt;
This example sorts all players in a nice line on the center of the map.&lt;br /&gt;
&amp;lt;section name=&amp;quot;Shared&amp;quot; class=&amp;quot;both&amp;quot; show=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local players = getElementsByType(&amp;quot;player&amp;quot;)&lt;br /&gt;
local newPlayerPosition = Vector3(-#players - 1, 0, 10) -- Initialize the position vector for the first player in the list&lt;br /&gt;
for _, player in ipairs(players) do&lt;br /&gt;
    -- Move each player 1 unit forward in X from the previous one&lt;br /&gt;
    newPlayerPosition.x = newPlayerPosition.x + 1&lt;br /&gt;
    setElementPosition(player, newPlayerPosition)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/section&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===cross===&lt;br /&gt;
Calculates the cross product of two vectors, A and B, and is written as A × B. The result is another vector which:&lt;br /&gt;
&lt;br /&gt;
* Is orthogonal to both A and B.&lt;br /&gt;
* Its direction is determined by the [https://upload.wikimedia.org/wikipedia/commons/d/d2/Right_hand_rule_cross_product.svg right-hand rule].&lt;br /&gt;
* Its length is equal to the area of the parallelogram that A and B form (which in turn is equal to A's length by B's length by the sine of the minimum angle between A and B).&lt;br /&gt;
&lt;br /&gt;
====Syntax====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;vector3 Vector3:cross ( vector3 vector )&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Required arguments=====&lt;br /&gt;
* '''vector''': a vector3 object to get the cross product with.&lt;br /&gt;
&lt;br /&gt;
====Example====&lt;br /&gt;
This example creates a tiny sun which is always at the right of the vehicle the local player drives. By default it will draw the vectors used to compute the position where it should be, so you can understand what does this function do. Note that the code could be made simpler by simply getting the right component of the vehicle matrix. '''Make sure that you put this code in a resource which has OOP enabled, or it won't work'''.&lt;br /&gt;
&amp;lt;section name=&amp;quot;Client&amp;quot; class=&amp;quot;client&amp;quot; show=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;-- OPTIONS --&lt;br /&gt;
local debugMode = true -- If true, the script will draw the vectors used to compute the effect&lt;br /&gt;
&lt;br /&gt;
-- EFFECT CONTROL FUNCTIONS --&lt;br /&gt;
local playerVehicle, lightMarker, light&lt;br /&gt;
local function applyDrivingLightEffect()&lt;br /&gt;
    -- Get the vehicle matrix and use it to get the vehicle and vehicle base position&lt;br /&gt;
    local vehicleMatrix = playerVehicle.matrix&lt;br /&gt;
    local vehiclePosition = vehicleMatrix:getPosition()&lt;br /&gt;
    -- Get the vehicle upwards vector and vehicle forward direction vector&lt;br /&gt;
    local vehicleUpwardsVector, vehicleForwardVector = vehicleMatrix:getUp(), vehicleMatrix:getForward()&lt;br /&gt;
    -- Get the normalized cross product of the vehicle forward vector and the vehicleUpwardsVector vector&lt;br /&gt;
    local crossVector = vehicleForwardVector:cross(vehicleUpwardsVector):getNormalized()&lt;br /&gt;
    -- Draw all the interesting vectors we have now&lt;br /&gt;
    if debugMode then&lt;br /&gt;
        local forwardPoint = vehiclePosition + vehicleForwardVector&lt;br /&gt;
        dxDrawLine3D(vehiclePosition, forwardPoint, tocolor(255, 0, 0))&lt;br /&gt;
        local sx, sy = getScreenFromWorldPosition(forwardPoint)&lt;br /&gt;
        if sx then&lt;br /&gt;
            dxDrawText(&amp;quot;F&amp;quot;, sx, sy)&lt;br /&gt;
        end&lt;br /&gt;
            &lt;br /&gt;
        local vehicleUpwardsVectorPoint = vehiclePosition + vehicleUpwardsVector&lt;br /&gt;
        dxDrawLine3D(vehiclePosition, vehicleUpwardsVectorPoint, tocolor(0, 255, 0))&lt;br /&gt;
        local sx, sy = getScreenFromWorldPosition(vehicleUpwardsVectorPoint, 1.1)&lt;br /&gt;
        if sx then&lt;br /&gt;
            dxDrawText(&amp;quot;U&amp;quot;, sx, sy)&lt;br /&gt;
        end&lt;br /&gt;
          &lt;br /&gt;
        local crossPoint = vehiclePosition + crossVector&lt;br /&gt;
        dxDrawLine3D(vehiclePosition, crossPoint, tocolor(0, 0, 255))&lt;br /&gt;
        local sx, sy = getScreenFromWorldPosition(crossPoint)&lt;br /&gt;
        if sx then&lt;br /&gt;
            dxDrawText(&amp;quot;C&amp;quot;, sx, sy)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    -- Calculate the half length of the vehicle based in its bounding box, and use it to position the light effects at the right&lt;br /&gt;
    local _, bmy, _, _, bMy = playerVehicle:getBoundingBox()&lt;br /&gt;
    local newEffectPosition = vehiclePosition + crossVector * (bMy - bmy) / 2&lt;br /&gt;
    lightMarker.position = newEffectPosition&lt;br /&gt;
    light.position = newEffectPosition&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function startDrivingLightEffect()&lt;br /&gt;
    -- Create the effects and start updating them every frame&lt;br /&gt;
    addEventHandler(&amp;quot;onClientPreRender&amp;quot;, root, applyDrivingLightEffect)&lt;br /&gt;
    playerVehicle, lightMarker, light = localPlayer.vehicle, createMarker(0, 0, 0, &amp;quot;corona&amp;quot;, 0.5, 255, 255, 0), createLight(0, 0, 0, 0, 8, 255, 255)&lt;br /&gt;
    -- If we are in debug mode, render the vehicle invisible to see the vectors clearly&lt;br /&gt;
    if debugMode then&lt;br /&gt;
        playerVehicle.alpha = 0&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function stopDrivingLightEffect()&lt;br /&gt;
    -- Stop applyDrivingLightEffect from being called and destroy everything created&lt;br /&gt;
    removeEventHandler(&amp;quot;onClientPreRender&amp;quot;, root, applyDrivingLightEffect)&lt;br /&gt;
    destroyElement(lightMarker)&lt;br /&gt;
    destroyElement(light)&lt;br /&gt;
    -- If we are in debug mode, reset the vehicle alpha to normal again&lt;br /&gt;
    if debugMode then&lt;br /&gt;
        playerVehicle.alpha = 255&lt;br /&gt;
    end&lt;br /&gt;
    playerVehicle, lightMarker, light = nil, nil, nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- FUNCTIONS THAT MANAGE THE EFFECT --&lt;br /&gt;
-- Start or stop the effect when the player is driving a car&lt;br /&gt;
local function manageDrivingLightEffectStatus(_, seat)&lt;br /&gt;
    if eventName == &amp;quot;onClientPlayerVehicleEnter&amp;quot; then&lt;br /&gt;
        if seat == 0 then&lt;br /&gt;
            -- The player has just entered a vehicle as the driver. Start the effect&lt;br /&gt;
            startDrivingLightEffect()&lt;br /&gt;
        end&lt;br /&gt;
    elseif playerVehicle then&lt;br /&gt;
        -- The player has just exited a vehicle and we were applying the effect. Stop it&lt;br /&gt;
        stopDrivingLightEffect()&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
addEventHandler(&amp;quot;onClientPlayerVehicleEnter&amp;quot;, localPlayer, manageDrivingLightEffectStatus)&lt;br /&gt;
addEventHandler(&amp;quot;onClientPlayerVehicleExit&amp;quot;, localPlayer, manageDrivingLightEffectStatus)&lt;br /&gt;
&lt;br /&gt;
-- Start the effect when the resource starts if the player is driving a vehicle, and reset vehicle alpha back to normal if necessary&lt;br /&gt;
local function handleResourceStartStop()&lt;br /&gt;
    if eventName == &amp;quot;onClientResourceStart&amp;quot; then&lt;br /&gt;
        playerVehicle = localPlayer.vehicle or nil&lt;br /&gt;
        if playerVehicle then&lt;br /&gt;
            startDrivingLightEffect()&lt;br /&gt;
        end&lt;br /&gt;
    elseif playerVehicle then&lt;br /&gt;
        -- It is not necessary to call this function to just reset the car alpha, but it is a good practise to ALWAYS clean up everything nevertheless&lt;br /&gt;
        stopDrivingLightEffect()&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
addEventHandler(&amp;quot;onClientResourceStart&amp;quot;, resourceRoot, handleResourceStartStop)&lt;br /&gt;
addEventHandler(&amp;quot;onClientResourceStop&amp;quot;, resourceRoot, handleResourceStartStop)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/section&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===dot===&lt;br /&gt;
Calculates the (standard) dot/scalar product of two vectors. If we call that vectors A and B, the dot product is written as A · B. This can be used to calculate the angle between them. If the standard scalar product is 0, both vectors are orthogonal.&lt;br /&gt;
&lt;br /&gt;
====Syntax====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;float Vector3:dot ( vector3 vector )&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Required arguments=====&lt;br /&gt;
* '''vector''': a vector3 object to get the dot product with.&lt;br /&gt;
&lt;br /&gt;
====Example====&lt;br /&gt;
This examples illustrates the concept of dot/scalar product and implements a useful function which can be used to get the angle between two vectors.&lt;br /&gt;
&amp;lt;section name=&amp;quot;Shared&amp;quot; class=&amp;quot;both&amp;quot; show=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local vec1 = Vector3(1, 0, 0)&lt;br /&gt;
local vec2 = Vector3(0, 0, 0)&lt;br /&gt;
local dotproduct = vec1:dot(vec2)&lt;br /&gt;
&lt;br /&gt;
if dotproduct == 0 then&lt;br /&gt;
    outputDebugString(&amp;quot;vec1 is orthogonal to vec2&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Calculate angle between vec1 and vec2&lt;br /&gt;
function angle(vec1, vec2)&lt;br /&gt;
    -- Calculate the angle by applying law of cosines&lt;br /&gt;
    return math.acos(vec1:dot(vec2)/(vec1.length*vec2.length))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
outputDebugString(&amp;quot;Angle between vec1 and vec2: &amp;quot;..math.deg(angle(vec1, vec2))..&amp;quot;°&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/section&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===normalize===&lt;br /&gt;
Converts a vector to a unit vector (a vector of length 1).&lt;br /&gt;
&lt;br /&gt;
====Syntax====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;bool Vector3:normalize ( )&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Example====&lt;br /&gt;
This example slowly moves all the players' camera to look at the Mount Chilliad.&lt;br /&gt;
&amp;lt;section name=&amp;quot;Client&amp;quot; class=&amp;quot;client&amp;quot; show=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local targetPosition = Vector3(-2627.32, -1083.2, 433.35) -- Somewhere in Mount Chilliad&lt;br /&gt;
&lt;br /&gt;
local function moveCameraToTarget(deltaTime)&lt;br /&gt;
    local currentPosition = Vector3(getCameraMatrix())&lt;br /&gt;
    local direction = targetPosition - currentPosition&lt;br /&gt;
    direction:normalize() -- Get a direction vector by normalizing the vector from the current position to the target position&lt;br /&gt;
    setCameraMatrix(currentPosition + direction * deltaTime * 0.05, -2589.45, -1174.49, 418.09)&lt;br /&gt;
end&lt;br /&gt;
addEventHandler(&amp;quot;onClientPreRender&amp;quot;, root, moveCameraToTarget)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/section&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===getX and setX===&lt;br /&gt;
===getY and setY===&lt;br /&gt;
===getZ and setZ===&lt;br /&gt;
===getNormalized===&lt;br /&gt;
Returns a normalized vector (of length 1) of the vector it's used on. Differently from the ''Vector3:normalize'' method, this one returns a ''vector3'' and doesn't modify the original vector.&lt;br /&gt;
&lt;br /&gt;
====Syntax====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;vector3 Vector3:getNormalized ( )&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Example====&lt;br /&gt;
This example slowly moves all the players' camera to look at the Mount Chilliad with a shorter code than the previous example.&lt;br /&gt;
&amp;lt;section name=&amp;quot;Client&amp;quot; class=&amp;quot;client&amp;quot; show=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local targetPosition = Vector3(-2627.32, -1083.2, 433.35) -- Somewhere in Mount Chilliad&lt;br /&gt;
&lt;br /&gt;
local function moveCameraToTarget(deltaTime)&lt;br /&gt;
    local currentPosition = Vector3(getCameraMatrix())&lt;br /&gt;
    local direction = (targetPosition - currentPosition):getNormalized() -- Get a direction vector by normalizing the vector from the current position to the target position&lt;br /&gt;
    setCameraMatrix(currentPosition + direction * deltaTime * 0.05, -2589.45, -1174.49, 418.09)&lt;br /&gt;
end&lt;br /&gt;
addEventHandler(&amp;quot;onClientPreRender&amp;quot;, root, moveCameraToTarget)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/section&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===getSquaredLength===&lt;br /&gt;
===getLength===&lt;br /&gt;
===intersectsSegmentTriangle===&lt;br /&gt;
Returns the intersection of the given triangle, or false if there is no intersection.&lt;br /&gt;
====Syntax====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;vector3 Vector3.intersectsSegmentTriangle ( vector3 origin, vector3 segmentDir, vector3 triVert0, vector3 triVert1, vector3 triVert2 )&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;vector3 Vector3:intersectsSegmentTriangle ( vector3 segmentDir, vector3 triVert0, vector3 triVert1, vector3 triVert2 )&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[ru:Vector/Vector3]]&lt;/div&gt;</summary>
		<author><name>Jayceon</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=Vector/Vector3&amp;diff=73366</id>
		<title>Vector/Vector3</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=Vector/Vector3&amp;diff=73366"/>
		<updated>2022-01-15T12:02:13Z</updated>

		<summary type="html">&lt;p&gt;Jayceon: Missing documentation from PR #1711.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Incomplete]]&lt;br /&gt;
The '''vector3''' class represents a three-dimensional [[vector]].&lt;br /&gt;
&lt;br /&gt;
==Methods==&lt;br /&gt;
===create===&lt;br /&gt;
This is default constructor for the Vector3 class and returns a Vector3 object.&lt;br /&gt;
&lt;br /&gt;
====Syntax====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;vector3 Vector3 ( [ float x = 0, float y = 0, float z = 0 ] )&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Optional arguments=====&lt;br /&gt;
* '''x''', '''y''' and '''z''': coordinates for the vector. If not specified, they default to 0.&lt;br /&gt;
* Instead of these three coordinates, a single Vector3 object may be inserted to clone it.&lt;br /&gt;
&lt;br /&gt;
====Example====&lt;br /&gt;
This example sorts all players in a nice line on the center of the map.&lt;br /&gt;
&amp;lt;section name=&amp;quot;Shared&amp;quot; class=&amp;quot;both&amp;quot; show=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local players = getElementsByType(&amp;quot;player&amp;quot;)&lt;br /&gt;
local newPlayerPosition = Vector3(-#players - 1, 0, 10) -- Initialize the position vector for the first player in the list&lt;br /&gt;
for _, player in ipairs(players) do&lt;br /&gt;
    -- Move each player 1 unit forward in X from the previous one&lt;br /&gt;
    newPlayerPosition.x = newPlayerPosition.x + 1&lt;br /&gt;
    setElementPosition(player, newPlayerPosition)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/section&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===cross===&lt;br /&gt;
Calculates the cross product of two vectors, A and B, and is written as A × B. The result is another vector which:&lt;br /&gt;
&lt;br /&gt;
* Is orthogonal to both A and B.&lt;br /&gt;
* Its direction is determined by the [https://upload.wikimedia.org/wikipedia/commons/d/d2/Right_hand_rule_cross_product.svg right-hand rule].&lt;br /&gt;
* Its length is equal to the area of the parallelogram that A and B form (which in turn is equal to A's length by B's length by the sine of the minimum angle between A and B).&lt;br /&gt;
&lt;br /&gt;
====Syntax====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;vector3 Vector3:cross ( vector3 vector )&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Required arguments=====&lt;br /&gt;
* '''vector''': a vector3 object to get the cross product with.&lt;br /&gt;
&lt;br /&gt;
====Example====&lt;br /&gt;
This example creates a tiny sun which is always at the right of the vehicle the local player drives. By default it will draw the vectors used to compute the position where it should be, so you can understand what does this function do. Note that the code could be made simpler by simply getting the right component of the vehicle matrix. '''Make sure that you put this code in a resource which has OOP enabled, or it won't work'''.&lt;br /&gt;
&amp;lt;section name=&amp;quot;Client&amp;quot; class=&amp;quot;client&amp;quot; show=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;-- OPTIONS --&lt;br /&gt;
local debugMode = true -- If true, the script will draw the vectors used to compute the effect&lt;br /&gt;
&lt;br /&gt;
-- EFFECT CONTROL FUNCTIONS --&lt;br /&gt;
local playerVehicle, lightMarker, light&lt;br /&gt;
local function applyDrivingLightEffect()&lt;br /&gt;
    -- Get the vehicle matrix and use it to get the vehicle and vehicle base position&lt;br /&gt;
    local vehicleMatrix = playerVehicle.matrix&lt;br /&gt;
    local vehiclePosition = vehicleMatrix:getPosition()&lt;br /&gt;
    -- Get the vehicle upwards vector and vehicle forward direction vector&lt;br /&gt;
    local vehicleUpwardsVector, vehicleForwardVector = vehicleMatrix:getUp(), vehicleMatrix:getForward()&lt;br /&gt;
    -- Get the normalized cross product of the vehicle forward vector and the vehicleUpwardsVector vector&lt;br /&gt;
    local crossVector = vehicleForwardVector:cross(vehicleUpwardsVector):getNormalized()&lt;br /&gt;
    -- Draw all the interesting vectors we have now&lt;br /&gt;
    if debugMode then&lt;br /&gt;
        local forwardPoint = vehiclePosition + vehicleForwardVector&lt;br /&gt;
        dxDrawLine3D(vehiclePosition, forwardPoint, tocolor(255, 0, 0))&lt;br /&gt;
        local sx, sy = getScreenFromWorldPosition(forwardPoint)&lt;br /&gt;
        if sx then&lt;br /&gt;
            dxDrawText(&amp;quot;F&amp;quot;, sx, sy)&lt;br /&gt;
        end&lt;br /&gt;
            &lt;br /&gt;
        local vehicleUpwardsVectorPoint = vehiclePosition + vehicleUpwardsVector&lt;br /&gt;
        dxDrawLine3D(vehiclePosition, vehicleUpwardsVectorPoint, tocolor(0, 255, 0))&lt;br /&gt;
        local sx, sy = getScreenFromWorldPosition(vehicleUpwardsVectorPoint, 1.1)&lt;br /&gt;
        if sx then&lt;br /&gt;
            dxDrawText(&amp;quot;U&amp;quot;, sx, sy)&lt;br /&gt;
        end&lt;br /&gt;
          &lt;br /&gt;
        local crossPoint = vehiclePosition + crossVector&lt;br /&gt;
        dxDrawLine3D(vehiclePosition, crossPoint, tocolor(0, 0, 255))&lt;br /&gt;
        local sx, sy = getScreenFromWorldPosition(crossPoint)&lt;br /&gt;
        if sx then&lt;br /&gt;
            dxDrawText(&amp;quot;C&amp;quot;, sx, sy)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    -- Calculate the half length of the vehicle based in its bounding box, and use it to position the light effects at the right&lt;br /&gt;
    local _, bmy, _, _, bMy = playerVehicle:getBoundingBox()&lt;br /&gt;
    local newEffectPosition = vehiclePosition + crossVector * (bMy - bmy) / 2&lt;br /&gt;
    lightMarker.position = newEffectPosition&lt;br /&gt;
    light.position = newEffectPosition&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function startDrivingLightEffect()&lt;br /&gt;
    -- Create the effects and start updating them every frame&lt;br /&gt;
    addEventHandler(&amp;quot;onClientPreRender&amp;quot;, root, applyDrivingLightEffect)&lt;br /&gt;
    playerVehicle, lightMarker, light = localPlayer.vehicle, createMarker(0, 0, 0, &amp;quot;corona&amp;quot;, 0.5, 255, 255, 0), createLight(0, 0, 0, 0, 8, 255, 255)&lt;br /&gt;
    -- If we are in debug mode, render the vehicle invisible to see the vectors clearly&lt;br /&gt;
    if debugMode then&lt;br /&gt;
        playerVehicle.alpha = 0&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function stopDrivingLightEffect()&lt;br /&gt;
    -- Stop applyDrivingLightEffect from being called and destroy everything created&lt;br /&gt;
    removeEventHandler(&amp;quot;onClientPreRender&amp;quot;, root, applyDrivingLightEffect)&lt;br /&gt;
    destroyElement(lightMarker)&lt;br /&gt;
    destroyElement(light)&lt;br /&gt;
    -- If we are in debug mode, reset the vehicle alpha to normal again&lt;br /&gt;
    if debugMode then&lt;br /&gt;
        playerVehicle.alpha = 255&lt;br /&gt;
    end&lt;br /&gt;
    playerVehicle, lightMarker, light = nil, nil, nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- FUNCTIONS THAT MANAGE THE EFFECT --&lt;br /&gt;
-- Start or stop the effect when the player is driving a car&lt;br /&gt;
local function manageDrivingLightEffectStatus(_, seat)&lt;br /&gt;
    if eventName == &amp;quot;onClientPlayerVehicleEnter&amp;quot; then&lt;br /&gt;
        if seat == 0 then&lt;br /&gt;
            -- The player has just entered a vehicle as the driver. Start the effect&lt;br /&gt;
            startDrivingLightEffect()&lt;br /&gt;
        end&lt;br /&gt;
    elseif playerVehicle then&lt;br /&gt;
        -- The player has just exited a vehicle and we were applying the effect. Stop it&lt;br /&gt;
        stopDrivingLightEffect()&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
addEventHandler(&amp;quot;onClientPlayerVehicleEnter&amp;quot;, localPlayer, manageDrivingLightEffectStatus)&lt;br /&gt;
addEventHandler(&amp;quot;onClientPlayerVehicleExit&amp;quot;, localPlayer, manageDrivingLightEffectStatus)&lt;br /&gt;
&lt;br /&gt;
-- Start the effect when the resource starts if the player is driving a vehicle, and reset vehicle alpha back to normal if necessary&lt;br /&gt;
local function handleResourceStartStop()&lt;br /&gt;
    if eventName == &amp;quot;onClientResourceStart&amp;quot; then&lt;br /&gt;
        playerVehicle = localPlayer.vehicle or nil&lt;br /&gt;
        if playerVehicle then&lt;br /&gt;
            startDrivingLightEffect()&lt;br /&gt;
        end&lt;br /&gt;
    elseif playerVehicle then&lt;br /&gt;
        -- It is not necessary to call this function to just reset the car alpha, but it is a good practise to ALWAYS clean up everything nevertheless&lt;br /&gt;
        stopDrivingLightEffect()&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
addEventHandler(&amp;quot;onClientResourceStart&amp;quot;, resourceRoot, handleResourceStartStop)&lt;br /&gt;
addEventHandler(&amp;quot;onClientResourceStop&amp;quot;, resourceRoot, handleResourceStartStop)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/section&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===dot===&lt;br /&gt;
Calculates the (standard) dot/scalar product of two vectors. If we call that vectors A and B, the dot product is written as A · B. This can be used to calculate the angle between them. If the standard scalar product is 0, both vectors are orthogonal.&lt;br /&gt;
&lt;br /&gt;
====Syntax====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;float Vector3:dot ( vector3 vector )&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Required arguments=====&lt;br /&gt;
* '''vector''': a vector3 object to get the dot product with.&lt;br /&gt;
&lt;br /&gt;
====Example====&lt;br /&gt;
This examples illustrates the concept of dot/scalar product and implements a useful function which can be used to get the angle between two vectors.&lt;br /&gt;
&amp;lt;section name=&amp;quot;Shared&amp;quot; class=&amp;quot;both&amp;quot; show=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local vec1 = Vector3(1, 0, 0)&lt;br /&gt;
local vec2 = Vector3(0, 0, 0)&lt;br /&gt;
local dotproduct = vec1:dot(vec2)&lt;br /&gt;
&lt;br /&gt;
if dotproduct == 0 then&lt;br /&gt;
    outputDebugString(&amp;quot;vec1 is orthogonal to vec2&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Calculate angle between vec1 and vec2&lt;br /&gt;
function angle(vec1, vec2)&lt;br /&gt;
    -- Calculate the angle by applying law of cosines&lt;br /&gt;
    return math.acos(vec1:dot(vec2)/(vec1.length*vec2.length))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
outputDebugString(&amp;quot;Angle between vec1 and vec2: &amp;quot;..math.deg(angle(vec1, vec2))..&amp;quot;°&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/section&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===normalize===&lt;br /&gt;
Converts a vector to a unit vector (a vector of length 1).&lt;br /&gt;
&lt;br /&gt;
====Syntax====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;bool Vector3:normalize ( )&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Example====&lt;br /&gt;
This example slowly moves all the players' camera to look at the Mount Chilliad.&lt;br /&gt;
&amp;lt;section name=&amp;quot;Client&amp;quot; class=&amp;quot;client&amp;quot; show=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local targetPosition = Vector3(-2627.32, -1083.2, 433.35) -- Somewhere in Mount Chilliad&lt;br /&gt;
&lt;br /&gt;
local function moveCameraToTarget(deltaTime)&lt;br /&gt;
    local currentPosition = Vector3(getCameraMatrix())&lt;br /&gt;
    local direction = targetPosition - currentPosition&lt;br /&gt;
    direction:normalize() -- Get a direction vector by normalizing the vector from the current position to the target position&lt;br /&gt;
    setCameraMatrix(currentPosition + direction * deltaTime * 0.05, -2589.45, -1174.49, 418.09)&lt;br /&gt;
end&lt;br /&gt;
addEventHandler(&amp;quot;onClientPreRender&amp;quot;, root, moveCameraToTarget)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/section&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===getX and setX===&lt;br /&gt;
===getY and setY===&lt;br /&gt;
===getZ and setZ===&lt;br /&gt;
===getNormalized===&lt;br /&gt;
Returns a normalized vector (of length 1) of the vector it's used on. Differently from the ''Vector3:normalize'' method, this one returns a ''vector3'' and doesn't modify the original vector.&lt;br /&gt;
&lt;br /&gt;
====Syntax====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;vector3 Vector3:getNormalized ( )&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Example====&lt;br /&gt;
This example slowly moves all the players' camera to look at the Mount Chilliad with a shorter code than the previous example.&lt;br /&gt;
&amp;lt;section name=&amp;quot;Client&amp;quot; class=&amp;quot;client&amp;quot; show=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local targetPosition = Vector3(-2627.32, -1083.2, 433.35) -- Somewhere in Mount Chilliad&lt;br /&gt;
&lt;br /&gt;
local function moveCameraToTarget(deltaTime)&lt;br /&gt;
    local currentPosition = Vector3(getCameraMatrix())&lt;br /&gt;
    local direction = (targetPosition - currentPosition):getNormalized() -- Get a direction vector by normalizing the vector from the current position to the target position&lt;br /&gt;
    setCameraMatrix(currentPosition + direction * deltaTime * 0.05, -2589.45, -1174.49, 418.09)&lt;br /&gt;
end&lt;br /&gt;
addEventHandler(&amp;quot;onClientPreRender&amp;quot;, root, moveCameraToTarget)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/section&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===getSquaredLength===&lt;br /&gt;
===getLength===&lt;br /&gt;
===intersectsSegmentTriangle===&lt;br /&gt;
&lt;br /&gt;
[[ru:Vector/Vector3]]&lt;/div&gt;</summary>
		<author><name>Jayceon</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=GetDynamicDoorObjectOpenRatio&amp;diff=71151</id>
		<title>GetDynamicDoorObjectOpenRatio</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=GetDynamicDoorObjectOpenRatio&amp;diff=71151"/>
		<updated>2021-06-03T19:58:15Z</updated>

		<summary type="html">&lt;p&gt;Jayceon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Useful_Function}}&lt;br /&gt;
This function tells you how open a dynamic (interactive - pushable) door is (the 'open ratio') just like the [[GetVehicleDoorOpenRatio]] function.&lt;br /&gt;
&lt;br /&gt;
{{Note|This function only works properly on objects that have the special collision-response IDE flag #6 (SWINGDOOR). These are: '''1491''', '''1492''', '''1494''', '''1499''', '''1502''', '''1523'''}}&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;float getDynamicDoorObjectOpenRatio ( object theObject )&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Required Arguments===&lt;br /&gt;
*'''theObject:''' The [[object]] that you wish to get the door open ratio of.&lt;br /&gt;
&lt;br /&gt;
===Returns===&lt;br /&gt;
Returns a number between 0 and 1 that indicates how open the door is. 0 is closed, and 1 is fully open. Returns false if invalid arguments are passed.&lt;br /&gt;
&lt;br /&gt;
==Code==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function getDynamicDoorObjectOpenRatio(theObject)&lt;br /&gt;
    if isElement(theObject) then&lt;br /&gt;
        if getElementType(theObject) == &amp;quot;object&amp;quot; then&lt;br /&gt;
            local angularVelocity = select(3, getElementAngularVelocity(theObject))&lt;br /&gt;
&lt;br /&gt;
            if math.abs(angularVelocity) &amp;gt; 0 then&lt;br /&gt;
                local objectMatrix = getElementMatrix(theObject)&lt;br /&gt;
                local initialAngle = select(3, getElementRotation(theObject, &amp;quot;ZXY&amp;quot;))&lt;br /&gt;
                local currentAngle = -math.deg(math.atan2(objectMatrix[2][1], objectMatrix[2][2]))&lt;br /&gt;
&lt;br /&gt;
                if initialAngle + 180 &amp;gt;= currentAngle then&lt;br /&gt;
                    if initialAngle - 180 &amp;gt; currentAngle then&lt;br /&gt;
                        currentAngle = currentAngle + 360&lt;br /&gt;
                    end&lt;br /&gt;
                else&lt;br /&gt;
                    currentAngle = currentAngle - 360&lt;br /&gt;
                end&lt;br /&gt;
&lt;br /&gt;
                return math.abs(currentAngle - initialAngle) / 108&lt;br /&gt;
            end&lt;br /&gt;
&lt;br /&gt;
            return 0&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return false&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Useful_Functions}}&lt;/div&gt;</summary>
		<author><name>Jayceon</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=Template:Useful_Functions&amp;diff=71147</id>
		<title>Template:Useful Functions</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=Template:Useful_Functions&amp;diff=71147"/>
		<updated>2021-06-03T13:20:08Z</updated>

		<summary type="html">&lt;p&gt;Jayceon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
=== Table functions ===&lt;br /&gt;
*[[isValueInTable]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns true if the value exists in the table, false if the value does not exist in the table.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[setTableToSql]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function is used to save the table in the database (sql).&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getTableFromSql]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This functionality is used to obtain saved tables using the function ([https://wiki.multitheftauto.com/wiki/SetTableToSql SetTableToSql ]).&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[rangeToTable]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function converts a string range to a table containing number values.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[setTableProtected]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function protects a table and makes it read-only.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[Sort_Functions]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» These functions are able to sort your tables by a key.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[table.compare]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function checks whether two given tables are equal.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[table.copy]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function copies a whole table and all the tables in that table.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[table.empty]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function checks whether a table is empty.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[table.map]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function goes through a table and replaces every field with the return of the passed function, where the field's value is passed as first argument and optionally more arguments.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[table.merge]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function merges two or more tables together.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[table.random]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function retrieves a random value from a table.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[table.removeValue]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function removes a specified value from a table.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[table.size]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns the absolute size of a table.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[table.getRandomRows]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns random rows from table.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[table.element]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns a new table with only userdata content.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[pairsByKeys]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function sort pairs table.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[addTableChangeHandler]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function monitors the changes of a table.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== ACL functions ===&lt;br /&gt;
*[[aclGroupClone]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function clone a group to another group with/without ACLs and/or objects.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getPlayersInACLGroup]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns all players in an ACL group.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getPlayerAcls]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns a table of all ACL groups on a player.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[isPlayerInACL]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function checks if a player element is in an ACL group.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[renameAclGroup]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function gives an existing ACL group a new name.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getAccountsRanks]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function is used to detect the account name groups and put them in the chat.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Account functions ===&lt;br /&gt;
*[[getPlayerFromAccountName]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function is used to obtain a player by the name of his account.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Camera functions ===&lt;br /&gt;
*[[smoothMoveCamera]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function allows you to create a cinematic camera flight.&lt;br /&gt;
&lt;br /&gt;
=== Cursor functions ===&lt;br /&gt;
*[[getCursorMovedOn]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function checks in which way the cursor is currently moving.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Drawing functions ===&lt;br /&gt;
*[[dxDrawAnimWindow]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function draws an animated 2D window on the screen.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[dxDrawBorderedRectangle]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This is a function that will create a bordered rectangle.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[dxDrawBorderedText]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This is a function that will create a bordered text.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[dxDrawDashedLine]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function draws a line with dashes.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[dxDrawRing]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function draws a ring with dx lines.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[dxDrawTextOnRectangle]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» Esta funcion crea un rectangle con un texto dentro.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[dxDrawGifImage]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function simulates the effect of a GIF image by using image sprites in 2D.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[dxDrawImage3D]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function draws a 3D image in GTA world.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[dxDrawSprite]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function draw a sprite in the 3D world.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[dxDrawImageOnElement]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function draws an image on any element.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[dxDrawLinedRectangle]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This is a function that will create a rectangle outline with dx lines.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[dxDrawLoading]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function draws a loading bar on the screen.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[dxDrawOctagon3D]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function creates a 3D Octagon&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[dxDrawPolygon]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function draws a custom polygon on the screen.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[dxDrawRectangle3D]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function draws a 3D rectangle in GTA world.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[dxDrawProgressBar]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function simulates a progress bar drawed using DirectDraw.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[dxDrawTextOnElement]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function draws a text on any element.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[dxDrawTriangle]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This is a function that will create a triangle with dx lines.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[dxGetFontSizeFromHeight]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function calculates the font size from given height.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[dxGetRealFontHeight]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function calculates the height of a font.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[wordWrap]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function breaks a long string into a table of separate lines limited to a specific length in pixels, for drawing separately.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[dxDrawRombo]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function creates a Rhombus.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getScreenStartPositionFromBox]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function helps with getting the correct position for your dx-effects.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Effects functions ===&lt;br /&gt;
*[[attachEffect]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function allows you attach an effect to an element.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Element functions === &lt;br /&gt;
*[[getElementSpeed]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns the specified element's speed in m/s, km/h or mph.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getElementsInDimension]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns a table of elements that are in the specified dimension.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getElementsWithinMarker]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns a table of elements that are within a marker's collision shape.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getElementUsingData]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns table elements that contains the elements data with the given key and value.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getNearestElement]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns the nearest element (of a specific type) to a player.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[isElementInPhotograph]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function checks if an element is in the player's camera picture area.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[isElementInRange]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function allows you to check if an element's range to a main point is within the maximum range.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[isElementMoving]]&amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function checks if an element is moving.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[isElementWithinAColShape]]&amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function checks if an element is within a collision shape element.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[multi_check]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function checks one element to many, handy and clean.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[setElementSpeed]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function allows you to set the speed of an element in kph or mph units.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[attachElementToBone]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function allows you to attach an element to ped bone accurately using new bone functions.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Events ===&lt;br /&gt;
*[[onVehicleWeaponFire]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This code implements an event that is triggered when a player in a vehicle fires a vehicle's weapon.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Input functions ===&lt;br /&gt;
*[[bindControlKeys]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function allows you to bind each key bound to a control individually. Doing this bypasses a little MTA restriction.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getBoundControls]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns a table of control names that are bound to the specified key.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[unbindControlKeys]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function allows you to unbind each key bound to a control individually. Use this function with [[bindControlKeys]].&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getClipboard]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This event returns the contents of the clipboard by pressing ctrl + v / ctrl + V. Event triggered ONLY if cursor is showing.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Data functions === &lt;br /&gt;
*[[byte2human]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function converts an integer (number of bytes) into a human-readable unit.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[capitalize]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function capitalizes a given string.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[convertServerTickToTimeStamp]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function converts server ticks to a unix timestamp.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[convertTextToSpeech]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function converts the provided text to a speech in the provided language which players can hear.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[findRotation]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function takes two points and returns the direction from point A to point B.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[findRotation3D]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function takes two sets of XYZ coordinates. It returns the 3D direction from point A to point B.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[formatDate]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function formats a date on the basis of a format string and returns it.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[formatNumber]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function formats large numbers by adding commas.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[generateString]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function generates a random string with any characters.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[generateRandomASCIIString]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns a random string which uses ASCII characters. &amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getDistance]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» Returns the distance between two elements.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getAge]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function calculates the age of a given birthday.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getDistanceBetweenPointAndSegment2D]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function takes point coordinates and line (a segment) starting and ending coordinates. It returns the shortest distance between the point and the line.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getEasterDate]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns easter date monthday and month for a given year.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getKeyFromValueInTable]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns the key of the specified value in a table.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getOffsetFromXYZ]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function allows you to take an entity and a position and calculate the relative offset between them accounting for rotations.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getPointFromDistanceRotation]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function finds a point based on a starting point, direction and distance.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getRealMonth]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns the current month name&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getRGColorFromPercentage]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia', sans-serif; font-size:smaller;&amp;quot;&amp;gt;»This function returns two integers representing red and green colors according to the specified percentage.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getScreenRotationFromWorldPosition]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns a screen relative rotation to a world position.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getTimestamp]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns the UNIX timestamp of a specified date and time.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[gradientString]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function transforms a string in a new coloured gradient string.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[isLeapYear]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns a boolean representing if a given year is a leap year.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[isValidMail]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function checks whether a provided e-mail string is valid.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[removeHex]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function is used to remove hexadecimal numbers (colors, for example) from strings.&lt;br /&gt;
*[[RGBToHex]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns a string representing the color in hexadecimal.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[secondsToTimeDesc]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function converts a plain seconds-integer into a user-friendly time description.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[string.count]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function counts the amount of occurences of a string in a string.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[string.insert]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function inserts a string within another string at a given position.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[string.explode]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function splits a string at a given separator pattern and returns a table with the pieces.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[switch]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function allows the value of a variable or expression to control the flow of program execution via a multiway branch.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[toHex]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function converts a decimal number to a hexadecimal number, as a fix to be used client-side.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[var dump]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function outputs information about one or more variables using outputConsole.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[wavelengthToRGBA]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function converts a physical wavelength of light to a RGBA color.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getDistanceBetweenElements]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» Esta funcion sirve para obtener la distancia entre dos elementos.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getFreeDimension]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function get free dimension.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== GUI functions === &lt;br /&gt;
*[[centerWindow]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function centers a CEGUI window element responsively in any resolution.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[guiMoveElement]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function moves guiElement by/like using moveObject.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[isMouseOnGUICloseButton]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function allows you to check whether the mouse cursor/pointer is within a gui-window's native close button.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[guiSetStaticImageMovable]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function allows you to move a static image like a gui window.&amp;lt;/span&amp;gt;&lt;br /&gt;
=====Comboboxes=====&lt;br /&gt;
*[[guiComboBoxAdjustHeight]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function adjusts a CEGUI combobox element to have the correct height.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Gridlists=====&lt;br /&gt;
*[[guiGridListAddPlayers]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function add all online players to a grid list.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[guiGridListGetColumnIDFromTitle]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function gets a gridlist's column ID from the column title.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[guiGridListSetColumnNonSortable]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function makes a gridlist column become non-sortable.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[guiGridListSetColumnsFixedWidth]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function makes a gridlist have all its columns fixed width.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[guiGridListGetSelectedText]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns a string containing the inner text of a selected gridlist item.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getGridListRowIndexFromText]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns the GridList row index from the specified text.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[isTextInGridList]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function checks if some text exist or not in the GridList.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[convertGridListToText]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function converts grid list contents to text.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Labels=====&lt;br /&gt;
*[[guiLabelAddEffect]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function add an effects to the gui-label like (shadow, outline).&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Marker functions ===&lt;br /&gt;
*[[createMarkerAttachedTo]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function creates a marker that is attached to an element.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Math functions ===&lt;br /&gt;
*[[mathNumber]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function is a workaround for the client-side floating-point precision of 24-bits.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[math.hypot]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns the Hypotenuse of the triangle given by sides x and y.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[math.percent]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns a percentage from two number values.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[math.round]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» Rounds a number whereas the number of decimals to keep and the method may be set.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[reMap]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» Re-maps a number from one range to another.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[math.isPointInPolygon]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» Check if point is inside polygon or not.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[math.polygonArea]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» Compute area of any polygon.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[math.randomDiff]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» Generates a pseudo-random integer that's always different from the last random number generated.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[math.lerp]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» Get val between two integer.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[math.getBezierPoint]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» Get N-th order bezier point.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Map functions ===&lt;br /&gt;
*[[assignLod]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function lets you conveniently generate and apply a LOD model to a mapping object.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getWorldPositionFromMapPosition]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function converts an F11 map position to world position.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ped functions ===&lt;br /&gt;
*[[getAlivePlayers (Client)|getAlivePlayers]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns a table of the alive players client-side.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getAlivePlayersInTeam]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns a table of the alive players in a team.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getPlayersInVehicles]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns a table of the players insides vehicles from a specified dimension.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getGuestPlayers]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function gets a players not login or players Guest .&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getOnlineAdmins]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns a table of all logged-in administrators.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getPedEyesPosition]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function allows you to get peds eyes position.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getPedMaxHealth]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns a pedestrians's maximum health by converting it from their maximum health stat.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getPedMaxOxygenLevel]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns a ped's maximum oxygen level by converting it from their maximum underwater stamina stat.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getPedWeaponSkill]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns a ped's corresponding weapon skill level name.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getPlayerFromNamePart]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns a player from partial name.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getPlayerFromSerial]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns a player from their serial.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getPlayersByData]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns a table of players that have the specified data name.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getPlayersInPhotograph]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns a table of all players in photograph.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[isPedAiming]]&amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function checks if a pedestrian is aiming their weapon.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[isPedAimingNearPed]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This is similar to isPedAiming but uses a colshape to be more precise.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[isPedDrivingVehicle]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function checks if a specified pedestrian is driving a vehicle.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[isPedDiving]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This feature checks that pedestrian is diving in the water.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[isPlayerInTeam]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function checks if a player is in a specified team.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Player functions ===&lt;br /&gt;
*[[countPlayersInRange]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns the number of players that are within a certain range of the specified coordinates.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[isPlayerHitByVehicle]]&amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function cancels event when a element is hit by a vehicle.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[warpToPlayer]]&amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function make player warp to another player.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getPlayersInRange]]&amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function make a table of players within certain range.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getPlayerPreviousAndNextWeapon]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns the player previous and next weapon.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Resource functions ===&lt;br /&gt;
*[[getResourceScripts]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns a table of the resource scripts.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getResourceSize]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns the size of a specified resource in kB(kilobyte)&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getResourceSettings]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns a table of the resource settings.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[refreshResource]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function refreshes your resource if you changed any of the files&lt;br /&gt;
*[[setResourcePriority]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function set resource download priority group.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getFilesInResourceFolder]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function gets a list of files that are inside a folder of a resource.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sound functions ===&lt;br /&gt;
*[[isSoundFinished]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function checks if a sound element has finished.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[isSoundPlaying]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function checks if a sound element is playing or not.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[stopSoundSlowly]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function stop your sound element slowly.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Browser functions ===&lt;br /&gt;
*[[playVideo]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function plays a video on the screen.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Team functions ===&lt;br /&gt;
*[[getTeamFromColor]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns a team element by the specified color.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getTeamWithFewestPlayers]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns a team element with least players of all the specified teams.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Vehicle functions ===&lt;br /&gt;
*[[findEmptyCarSeat]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function finds you the first empty seat in a vehicle.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getNearestVehicle]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function gets the nearest vehicle to the specified player in a specified distance.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getRandomVehicle]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function gets a random vehicle.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getValidVehicleModels]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns a table of all valid vehicle models.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getVehiclesCountByType]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns the amount of vehicles by the given type as an integer value.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[isVehicleEmpty]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function checks whether a vehicle is empty.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[isVehicleOccupied]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function checks if a specified vehicle is occupied.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[isVehicleOnRoof]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function checks whether vehicle is on roof.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[isVehicleReversing]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function checks if a specified vehicle is moving backwards.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[isVehicleUpgraded]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function checks is vehicle upgraded by upgrade ID.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[isVehicleDoubleExhaust]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function checks is exhaust vehicle double.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[setVehicleGravityPoint]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function sets a vehicle's gravity in the direction of a 3 dimensional coordinate with the strength specified.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getVehicleTurnVelocityCenterOfMass]]&amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function gets a vehicle's turn velocity relative to the vehicle's center or mass.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[setVehicleTurnVelocityCenterOfMass]]&amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function sets a vehicle's turn velocity relative to the vehicle's center or mass.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Weapon functions === &lt;br /&gt;
*[[getJetpackWeaponsEnabled]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns a table of enabled weapons usable on a jetpack.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Object functions ===&lt;br /&gt;
*[[getDynamicDoorObjectOpenRatio]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function tells you how open a dynamic door is in a range from 0 to 1.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== XML functions ===&lt;br /&gt;
*[[getXMLNodes]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns all children of a XML node.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Engine functions ===&lt;br /&gt;
*[[engineGetCOLsFromLibrary]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function gets the collision data from the col library.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[engineLoadIMGContainer]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function loads the IMG container.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Utility ===&lt;br /&gt;
*[[animate]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function allows you to use interpolateBetween without render event and easily used.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[callClientFunction]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function allows you to call any client-side function from the server's side.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[callServerFunction]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function allows you to call any server-side function from the client's side.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[check]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function checks if its arguments are of the right type and calls the error-function if one is not.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[checkPassiveTimer]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function allows you to use passive timers in your conditions. For example you want to prevent players repeatedly using a command.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[coroutine.resume]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function applies a fix for hidden coroutine error messages.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getBanFromName]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This functions returns the ban of the given playername.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getCurrentFPS]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns the frames per second at which GTA: SA is running.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[IfElse]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns one of two values based on a boolean expression.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[isMouseInCircle]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function checks if a cursor position is in circular area or not.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[isMouseInPosition]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function allows you to check whether the mouse cursor/pointer is within a rectangular position.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[isCharInString]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This shared function allows you to check if a char specified is in a string value.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[iterElements]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns ''a time-saving'' iterator for your for-loops.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[vector3:compare]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This method checks whether two vectors match, with optional precision.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[preprocessor]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function allow you to use gcc macros.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[PlotTrajectoryAtTime]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» Calculate projectile/water trajectory.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getSkinNameFromID]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns the name of the skin from the given id.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:Useful Functions]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jayceon</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=GetDynamicDoorObjectOpenRatio&amp;diff=71146</id>
		<title>GetDynamicDoorObjectOpenRatio</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=GetDynamicDoorObjectOpenRatio&amp;diff=71146"/>
		<updated>2021-06-03T13:06:05Z</updated>

		<summary type="html">&lt;p&gt;Jayceon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Useful_Function}}&lt;br /&gt;
This function tells you how open a dynamic (interactive - pushable) door is (the 'open ratio') just like the [[GetVehicleDoorOpenRatio]] function.&lt;br /&gt;
&lt;br /&gt;
{{Note|This function only works properly on objects that have the special collision-response IDE flag #6 (SWINGDOOR). They are: '''1491''', '''1492''', '''1494''', '''1499''', '''1502''', '''1523'''}}&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;float getDynamicDoorObjectOpenRatio ( object theObject )&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Required Arguments===&lt;br /&gt;
*'''theObject:''' The [[object]] that you wish to get the door open ratio of.&lt;br /&gt;
&lt;br /&gt;
===Returns===&lt;br /&gt;
Returns a number between 0 and 1 that indicates how open the door is. 0 is closed, and 1 is fully open. Returns false if invalid arguments are passed.&lt;br /&gt;
&lt;br /&gt;
==Code==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function getDynamicDoorObjectOpenRatio(theObject)&lt;br /&gt;
    if isElement(theObject) then&lt;br /&gt;
        if getElementType(theObject) == &amp;quot;object&amp;quot; then&lt;br /&gt;
            local angularVelocity = select(3, getElementAngularVelocity(theObject))&lt;br /&gt;
&lt;br /&gt;
            if math.abs(angularVelocity) &amp;gt; 0 then&lt;br /&gt;
                local objectMatrix = getElementMatrix(theObject)&lt;br /&gt;
                local initialAngle = select(3, getElementRotation(theObject, &amp;quot;ZXY&amp;quot;))&lt;br /&gt;
                local currentAngle = -math.deg(math.atan2(objectMatrix[2][1], objectMatrix[2][2]))&lt;br /&gt;
&lt;br /&gt;
                if initialAngle + 180 &amp;gt;= currentAngle then&lt;br /&gt;
                    if initialAngle - 180 &amp;gt; currentAngle then&lt;br /&gt;
                        currentAngle = currentAngle + 360&lt;br /&gt;
                    end&lt;br /&gt;
                else&lt;br /&gt;
                    currentAngle = currentAngle - 360&lt;br /&gt;
                end&lt;br /&gt;
&lt;br /&gt;
                return math.abs(currentAngle - initialAngle) / 108&lt;br /&gt;
            end&lt;br /&gt;
&lt;br /&gt;
            return 0&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return false&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Useful_Functions}}&lt;/div&gt;</summary>
		<author><name>Jayceon</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=GetDynamicDoorObjectOpenRatio&amp;diff=71145</id>
		<title>GetDynamicDoorObjectOpenRatio</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=GetDynamicDoorObjectOpenRatio&amp;diff=71145"/>
		<updated>2021-06-03T12:51:56Z</updated>

		<summary type="html">&lt;p&gt;Jayceon: Created page with &amp;quot;{{Useful_Function}} This function tells you how open a dynamic (interactive - pushable) door is (the 'open ratio') just like the GetVehicleDoorOpenRatio function. Note tha...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Useful_Function}}&lt;br /&gt;
This function tells you how open a dynamic (interactive - pushable) door is (the 'open ratio') just like the [[GetVehicleDoorOpenRatio]] function.&lt;br /&gt;
Note that this function only works properly on objects that have the special collision-response IDE flag #6 (SWINGDOOR).&lt;br /&gt;
They are: '''1491''', '''1492''', '''1494''', '''1499''', '''1502''', '''1523'''&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;float getDynamicDoorObjectOpenRatio ( object theObject )&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Required Arguments===&lt;br /&gt;
*'''theObject:''' The [[object]] that you wish to get the door open ratio of.&lt;br /&gt;
&lt;br /&gt;
===Returns===&lt;br /&gt;
Returns a number between 0 and 1 that indicates how open the door is. 0 is closed, and 1 is fully open. Returns false if invalid arguments are passed.&lt;br /&gt;
&lt;br /&gt;
==Code==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function getDynamicDoorObjectOpenRatio(theObject)&lt;br /&gt;
    if isElement(theObject) then&lt;br /&gt;
        if getElementType(theObject) == &amp;quot;object&amp;quot; then&lt;br /&gt;
            local angularVelocity = select(3, getElementAngularVelocity(theObject))&lt;br /&gt;
&lt;br /&gt;
            if math.abs(angularVelocity) &amp;gt; 0 then&lt;br /&gt;
                local objectMatrix = getElementMatrix(theObject)&lt;br /&gt;
                local initialAngle = select(3, getElementRotation(theObject, &amp;quot;ZXY&amp;quot;))&lt;br /&gt;
                local currentAngle = -math.deg(math.atan2(objectMatrix[2][1], objectMatrix[2][2]))&lt;br /&gt;
&lt;br /&gt;
                if initialAngle + 180 &amp;gt;= currentAngle then&lt;br /&gt;
                    if initialAngle - 180 &amp;gt; currentAngle then&lt;br /&gt;
                        currentAngle = currentAngle + 360&lt;br /&gt;
                    end&lt;br /&gt;
                else&lt;br /&gt;
                    currentAngle = currentAngle - 360&lt;br /&gt;
                end&lt;br /&gt;
&lt;br /&gt;
                return math.abs(currentAngle - initialAngle) / 108&lt;br /&gt;
            end&lt;br /&gt;
&lt;br /&gt;
            return 0&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return false&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Useful_Functions}}&lt;/div&gt;</summary>
		<author><name>Jayceon</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=GetScreenFromWorldPosition&amp;diff=67250</id>
		<title>GetScreenFromWorldPosition</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=GetScreenFromWorldPosition&amp;diff=67250"/>
		<updated>2020-08-14T14:01:20Z</updated>

		<summary type="html">&lt;p&gt;Jayceon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{{Client function}}&lt;br /&gt;
This function gets the screen position of a point in the world. This is useful for attaching 2D gui elements to parts of the world (e.g. players) or detecting if a point is on the screen (though it does not check if it is actually visible, you should use [[processLineOfSight]] for that).&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
float, float, float getScreenFromWorldPosition ( float x, float y, float z [, float edgeTolerance = 0.0, bool relative = true ] )&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Required Arguments===&lt;br /&gt;
*'''x:''' A float value indicating the x position in the world.&lt;br /&gt;
*'''y:''' A float value indicating the y position in the world.&lt;br /&gt;
*'''z:''' A float value indicating the z position in the world.&lt;br /&gt;
&lt;br /&gt;
===Optional Arguments=== &lt;br /&gt;
{{OptionalArg}}&lt;br /&gt;
{{New feature/item|3|1.0||&lt;br /&gt;
*'''edgeTolerance:''' A [[float]] value indicating the distance the position can be off screen before the function returns false. Note: it's clamped down on both axies to the size of screen at the given axis*10&lt;br /&gt;
*'''relative:''' A [[boolean]] value that indicates if edgeTolerance is in pixels [false], or relative to the screen size [true].&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Returns===&lt;br /&gt;
Returns two ''x'', ''y'' [[float]]s indicating the screen position and [[float]] distance between screen and given position if successful, ''false'' otherwise.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
&amp;lt;section class=&amp;quot;client&amp;quot; name=&amp;quot;Client-side Script&amp;quot; show=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
This example add a '3d' text at coordinates 0, 0, 0 (center of map).&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
addEventHandler ( &amp;quot;onClientRender&amp;quot;, root,&lt;br /&gt;
function ( )&lt;br /&gt;
	if ( getDistanceBetweenPoints3D ( 0, 0, 3, getElementPosition ( localPlayer ) ) ) &amp;lt; 50 then&lt;br /&gt;
		local coords = { getScreenFromWorldPosition ( 0, 0, 3 ) }&lt;br /&gt;
		if coords[1] and coords[2] then&lt;br /&gt;
			dxDrawText ( &amp;quot;Hello !&amp;quot;, coords[1], coords[2], coords[1], coords[2], tocolor(255,255,255), 1, &amp;quot;default-bold&amp;quot; )&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end )&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/section&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
{{Client_world_functions}}&lt;/div&gt;</summary>
		<author><name>Jayceon</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=User:Jayceon&amp;diff=67237</id>
		<title>User:Jayceon</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=User:Jayceon&amp;diff=67237"/>
		<updated>2020-08-09T11:55:41Z</updated>

		<summary type="html">&lt;p&gt;Jayceon: Created page with &amp;quot;__NOTOC__ left == Contact == Discord: '''Jayceon#9063'''&amp;lt;br&amp;gt; [https://github.com/jayceon123 GitHub Profile]&amp;lt;br&amp;gt; [https://forum.mtasa.com/profile/52...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
[[File:Jay blue.png|thumb|left]]&lt;br /&gt;
== Contact ==&lt;br /&gt;
Discord: '''Jayceon#9063'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/jayceon123 GitHub Profile]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://forum.mtasa.com/profile/52346-jayceon/ Forum Profile]&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jayceon</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=File:Jay_blue.png&amp;diff=67236</id>
		<title>File:Jay blue.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=File:Jay_blue.png&amp;diff=67236"/>
		<updated>2020-08-09T11:53:30Z</updated>

		<summary type="html">&lt;p&gt;Jayceon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Jayceon Profile Avatar&lt;/div&gt;</summary>
		<author><name>Jayceon</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=DxDrawMaterialPrimitive3D&amp;diff=67128</id>
		<title>DxDrawMaterialPrimitive3D</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=DxDrawMaterialPrimitive3D&amp;diff=67128"/>
		<updated>2020-08-04T13:52:10Z</updated>

		<summary type="html">&lt;p&gt;Jayceon: Created page with &amp;quot;__NOTOC__  {{Client function}}  This function draws a 3D primitive shape with material applied to it in the 3D world - rendered for one frame. This should be used in conjuncti...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ &lt;br /&gt;
{{Client function}} &lt;br /&gt;
This function draws a 3D primitive shape with material applied to it in the 3D world - rendered for one frame. This should be used in conjunction with [[onClientRender]] in order to display continuously.&lt;br /&gt;
If image file is used, it should ideally have dimensions that are a power of two, to prevent possible blurring.&lt;br /&gt;
Power of two: 2px, 4px, 8px, 16px, 32px, 64px, 128px, 256px, 512px, 1024px...&lt;br /&gt;
&lt;br /&gt;
==Syntax== &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
bool dxDrawMaterialPrimitive3D ( primitiveType pType, mixed material, bool postGUI, table vertice1 [, table vertice2, ...] )&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Required Arguments=== &lt;br /&gt;
* '''pType:''' Type of primitive to be drawn.&lt;br /&gt;
* '''image:''' Either a [[material]] element or a [[filepath]] of the image which is going to be drawn. (.dds images are also supported). Image files should ideally have dimensions that are a power of two, to prevent possible blurring. Use a texture created with [[dxCreateTexture]] to '''speed up drawing'''.&lt;br /&gt;
* '''postGUI:''' A bool representing whether the line should be drawn on top of or behind any ingame GUI (rendered by CEGUI).&lt;br /&gt;
* '''vertices:''' Tables representing each primitive vertice, required amount of them is determined by primitive type.&lt;br /&gt;
&lt;br /&gt;
==Allowed types==&lt;br /&gt;
[[Image:MTAsa_primitives.png|thumb|240px|Available primitive types.]]&lt;br /&gt;
More info on primitives may be found on [https://msdn.microsoft.com/en-us/library/windows/desktop/bb147291(v=vs.85).aspx this MSDN site] &lt;br /&gt;
* '''pointlist:''' Renders the vertices as a collection of isolated points.&lt;br /&gt;
* '''linelist:''' Renders the vertices as a list of isolated straight line segments.&lt;br /&gt;
* '''linestrip:''' Renders the vertices as a single polyline.&lt;br /&gt;
* '''trianglelist:''' Renders the specified vertices as a sequence of isolated triangles. Each group of three vertices defines a separate triangle.&lt;br /&gt;
* '''trianglestrip:''' Renders the vertices as a triangle strip.&lt;br /&gt;
* '''trianglefan:''' Renders the vertices as a triangle fan.&lt;br /&gt;
&lt;br /&gt;
==Vertices format==&lt;br /&gt;
* '''posX:''' An float representing the X position of the vertice in the GTA world.&lt;br /&gt;
* '''posY:''' An float representing the Y position of the vertice in the GTA world.&lt;br /&gt;
* '''posZ:''' An float representing the Z position of the vertice in the GTA world.&lt;br /&gt;
* '''color (optional):''' An integer of the hex color, produced using [[tocolor]] or 0xAARRGGBB (AA = alpha, RR = red, GG = green, BB = blue). If it's not specified, white color is used.&lt;br /&gt;
* '''u:''' An float representing  the relative X coordinate of the top left corner of the material which should be drawn from image&lt;br /&gt;
* '''v:''' An float representing  the relative Y coordinate of the top left corner of the material which should be drawn from image&lt;br /&gt;
&lt;br /&gt;
===Returns===&lt;br /&gt;
Returns a ''true'' if the operation was successful, ''false'' otherwise.&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
{{Example}}&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
{{Drawing_functions}}&lt;br /&gt;
&lt;br /&gt;
[[hu:dxDrawMaterialPrimitive3D]]&lt;/div&gt;</summary>
		<author><name>Jayceon</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=SetVehicleSirens&amp;diff=65805</id>
		<title>SetVehicleSirens</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=SetVehicleSirens&amp;diff=65805"/>
		<updated>2020-04-10T17:45:09Z</updated>

		<summary type="html">&lt;p&gt;Jayceon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{{Server client function}}&lt;br /&gt;
{{New feature/item|3.0130|1.3.0|3968|&lt;br /&gt;
This function changes the properties of a vehicles siren point.&lt;br /&gt;
}}&lt;br /&gt;
{{Note|Although you may be able to add sirens to any vehice, this function may not work. This function fails on certain vehicle models (https://wiki.multitheftauto.com/wiki/Vehicle_IDs#Lua_table_of_vehicles_that_doesn.27t_support_siren_lights).}}&lt;br /&gt;
&lt;br /&gt;
==Syntax== &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
bool setVehicleSirens ( vehicle theVehicle, int sirenPoint, float posX, float posY, float posZ, float red, float green, float blue, [float alpha = 255, float minAlpha = 0.0] )&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{OOP||[[vehicle]]:setSirens||getVehicleSirens}}&lt;br /&gt;
===Required Arguments=== &lt;br /&gt;
*'''theVehicle:''' The vehicle to modify&lt;br /&gt;
*'''sirenPoint:''' The siren point to modify&lt;br /&gt;
*'''posX:''' The x position of this siren point from the center of the vehicle&lt;br /&gt;
*'''posY:''' The y position of this siren point from the center of the vehicle&lt;br /&gt;
*'''posZ:''' The z position of this siren point from the center of the vehicle&lt;br /&gt;
*'''red:''' The amount of red from 0 to 255&lt;br /&gt;
*'''green:''' The amount of green from 0 to 255&lt;br /&gt;
*'''blue:''' The amount of blue from 0 to 255&lt;br /&gt;
&lt;br /&gt;
===Optional Arguments===&lt;br /&gt;
*'''alpha:''' The alpha of the siren from 0 to 255&lt;br /&gt;
*'''minAlpha:''' The minimum alpha of the light during day time&lt;br /&gt;
&lt;br /&gt;
===Returns===&lt;br /&gt;
Returns ''true'' if the siren point was successfully changed on the vehicle, ''false'' otherwise. &lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&amp;lt;section name=&amp;quot;Server&amp;quot; class=&amp;quot;server&amp;quot; show=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
This example adds a siren then sets the vehicle siren in the center of the car. (Not sure if it works...)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
addEventHandler(&amp;quot;onVehicleEnter&amp;quot;,root,function(player,seat)&lt;br /&gt;
   if(player)and(seat==0)then&lt;br /&gt;
      addVehicleSirens(source,1,1)&lt;br /&gt;
      setVehicleSirens(source,1,0,0,0,100,0,100)&lt;br /&gt;
   end&lt;br /&gt;
end)&lt;br /&gt;
addEventHandler(&amp;quot;onVehicleExit&amp;quot;,root,function(player,seat)&lt;br /&gt;
   if(player)and(seat==0)then&lt;br /&gt;
      removeVehicleSirens(source)&lt;br /&gt;
   end&lt;br /&gt;
end)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/section&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
{{Requirements|1.3.0-9.03968|1.3.0-9.03968|}}&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
{{Vehicle_functions}}&lt;/div&gt;</summary>
		<author><name>Jayceon</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=Vehicle_IDs&amp;diff=65804</id>
		<title>Vehicle IDs</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=Vehicle_IDs&amp;diff=65804"/>
		<updated>2020-04-10T17:43:29Z</updated>

		<summary type="html">&lt;p&gt;Jayceon: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This is a list of GTA:SA's vehicle ID numbers, as listed in the vehicles.ide file. These vehicle ID numbers are used for several vehicle scripting functions.&lt;br /&gt;
&lt;br /&gt;
====Lua table of all the valid vehicle IDs listed on this page====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;vehicleIds = {400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415,&lt;br /&gt;
	416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433,&lt;br /&gt;
	434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451,&lt;br /&gt;
	452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469,&lt;br /&gt;
	470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487,&lt;br /&gt;
	488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,&lt;br /&gt;
	506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523,&lt;br /&gt;
	524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541,&lt;br /&gt;
	542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559,&lt;br /&gt;
	560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577,&lt;br /&gt;
	578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595,&lt;br /&gt;
	596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Lua table of all vehicle names====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
-- (when indexing just do a &amp;lt;vehicle model id you want the name of&amp;gt; - 399 to get the name)&lt;br /&gt;
vehicleNames = {&amp;quot;Landstalker&amp;quot;, &amp;quot;Bravura&amp;quot;, &amp;quot;Buffalo&amp;quot;, &amp;quot;Linerunner&amp;quot;, &amp;quot;Perennial&amp;quot;, &amp;quot;Sentinel&amp;quot;, &amp;quot;Dumper&amp;quot;, &amp;quot;Fire Truck&amp;quot;, &amp;quot;Trashmaster&amp;quot;, &amp;quot;Stretch&amp;quot;, &amp;quot;Manana&amp;quot;, &lt;br /&gt;
                       &amp;quot;Infernus&amp;quot;, &amp;quot;Voodoo&amp;quot;, &amp;quot;Pony&amp;quot;, &amp;quot;Mule&amp;quot;, &amp;quot;Cheetah&amp;quot;, &amp;quot;Ambulance&amp;quot;, &amp;quot;Leviathan&amp;quot;, &amp;quot;Moonbeam&amp;quot;, &amp;quot;Esperanto&amp;quot;, &amp;quot;Taxi&amp;quot;, &amp;quot;Washington&amp;quot;, &amp;quot;Bobcat&amp;quot;, &lt;br /&gt;
                       &amp;quot;Mr. Whoopee&amp;quot;, &amp;quot;BF Injection&amp;quot;, &amp;quot;Hunter&amp;quot;, &amp;quot;Premier&amp;quot;, &amp;quot;Enforcer&amp;quot;, &amp;quot;Securicar&amp;quot;, &amp;quot;Banshee&amp;quot;, &amp;quot;Predator&amp;quot;, &amp;quot;Bus&amp;quot;, &amp;quot;Rhino&amp;quot;, &amp;quot;Barracks&amp;quot;, &amp;quot;Hotknife&amp;quot;, &lt;br /&gt;
                       &amp;quot;Trailer 1&amp;quot;, &amp;quot;Previon&amp;quot;, &amp;quot;Coach&amp;quot;, &amp;quot;Cabbie&amp;quot;, &amp;quot;Stallion&amp;quot;, &amp;quot;Rumpo&amp;quot;, &amp;quot;RC Bandit&amp;quot;, &amp;quot;Romero&amp;quot;, &amp;quot;Packer&amp;quot;, &amp;quot;Monster&amp;quot;, &amp;quot;Admiral&amp;quot;, &amp;quot;Squalo&amp;quot;, &lt;br /&gt;
                       &amp;quot;Seasparrow&amp;quot;, &amp;quot;Pizzaboy&amp;quot;, &amp;quot;Tram&amp;quot;, &amp;quot;Trailer 2&amp;quot;, &amp;quot;Turismo&amp;quot;, &amp;quot;Speeder&amp;quot;, &amp;quot;Reefer&amp;quot;, &amp;quot;Tropic&amp;quot;, &amp;quot;Flatbed&amp;quot;, &amp;quot;Yankee&amp;quot;, &amp;quot;Caddy&amp;quot;, &amp;quot;Solair&amp;quot;, &lt;br /&gt;
                       &amp;quot;Berkley's RC Van&amp;quot;, &amp;quot;Skimmer&amp;quot;, &amp;quot;PCJ-600&amp;quot;, &amp;quot;Faggio&amp;quot;, &amp;quot;Freeway&amp;quot;, &amp;quot;RC Baron&amp;quot;, &amp;quot;RC Raider&amp;quot;, &amp;quot;Glendale&amp;quot;, &amp;quot;Oceanic&amp;quot;, &amp;quot;Sanchez&amp;quot;, &amp;quot;Sparrow&amp;quot;, &amp;quot;Patriot&amp;quot;, &lt;br /&gt;
                       &amp;quot;Quadbike&amp;quot;, &amp;quot;Coastguard&amp;quot;, &amp;quot;Dinghy&amp;quot;, &amp;quot;Hermes&amp;quot;, &amp;quot;Sabre&amp;quot;, &amp;quot;Rustler&amp;quot;, &amp;quot;ZR-350&amp;quot;, &amp;quot;Walton&amp;quot;, &amp;quot;Regina&amp;quot;, &amp;quot;Comet&amp;quot;, &amp;quot;BMX&amp;quot;, &amp;quot;Burrito&amp;quot;, &amp;quot;Camper&amp;quot;, &amp;quot;Marquis&amp;quot;, &lt;br /&gt;
                       &amp;quot;Baggage&amp;quot;, &amp;quot;Dozer&amp;quot;, &amp;quot;Maverick&amp;quot;, &amp;quot;News Chopper&amp;quot;, &amp;quot;Rancher&amp;quot;, &amp;quot;FBI Rancher&amp;quot;, &amp;quot;Virgo&amp;quot;, &amp;quot;Greenwood&amp;quot;, &amp;quot;Jetmax&amp;quot;, &amp;quot;Hotring Racer&amp;quot;, &amp;quot;Sandking&amp;quot;, &lt;br /&gt;
                       &amp;quot;Blista Compact&amp;quot;, &amp;quot;Police Maverick&amp;quot;, &amp;quot;Boxville&amp;quot;, &amp;quot;Benson&amp;quot;, &amp;quot;Mesa&amp;quot;, &amp;quot;RC Goblin&amp;quot;, &amp;quot;Hotring Racer 3&amp;quot;, &amp;quot;Hotring Racer 2&amp;quot;, &amp;quot;Bloodring Banger&amp;quot;, &lt;br /&gt;
                       &amp;quot;Rancher Lure&amp;quot;, &amp;quot;Super GT&amp;quot;, &amp;quot;Elegant&amp;quot;, &amp;quot;Journey&amp;quot;, &amp;quot;Bike&amp;quot;, &amp;quot;Mountain Bike&amp;quot;, &amp;quot;Beagle&amp;quot;, &amp;quot;Cropduster&amp;quot;, &amp;quot;Stuntplane&amp;quot;, &amp;quot;Tanker&amp;quot;, &amp;quot;Roadtrain&amp;quot;, &amp;quot;Nebula&amp;quot;, &lt;br /&gt;
                       &amp;quot;Majestic&amp;quot;, &amp;quot;Buccaneer&amp;quot;, &amp;quot;Shamal&amp;quot;, &amp;quot;Hydra&amp;quot;, &amp;quot;FCR-900&amp;quot;, &amp;quot;NRG-500&amp;quot;, &amp;quot;HPV1000&amp;quot;, &amp;quot;Cement Truck&amp;quot;, &amp;quot;Towtruck&amp;quot;, &amp;quot;Fortune&amp;quot;, &amp;quot;Cadrona&amp;quot;, &amp;quot;FBI Truck&amp;quot;, &lt;br /&gt;
                       &amp;quot;Willard&amp;quot;, &amp;quot;Forklift&amp;quot;, &amp;quot;Tractor&amp;quot;, &amp;quot;Combine Harvester&amp;quot;, &amp;quot;Feltzer&amp;quot;, &amp;quot;Remington&amp;quot;, &amp;quot;Slamvan&amp;quot;, &amp;quot;Blade&amp;quot;, &amp;quot;Freight&amp;quot;, &amp;quot;Streak&amp;quot;, &amp;quot;Vortex&amp;quot;, &amp;quot;Vincent&amp;quot;, &lt;br /&gt;
                       &amp;quot;Bullet&amp;quot;, &amp;quot;Clover&amp;quot;, &amp;quot;Sadler&amp;quot;, &amp;quot;Fire Truck Ladder&amp;quot;, &amp;quot;Hustler&amp;quot;, &amp;quot;Intruder&amp;quot;, &amp;quot;Primo&amp;quot;, &amp;quot;Cargobob&amp;quot;, &amp;quot;Tampa&amp;quot;, &amp;quot;Sunrise&amp;quot;, &amp;quot;Merit&amp;quot;, &amp;quot;Utility Van&amp;quot;, &lt;br /&gt;
                       &amp;quot;Nevada&amp;quot;, &amp;quot;Yosemite&amp;quot;, &amp;quot;Windsor&amp;quot;, &amp;quot;Monster 2&amp;quot;, &amp;quot;Monster 3&amp;quot;, &amp;quot;Uranus&amp;quot;, &amp;quot;Jester&amp;quot;, &amp;quot;Sultan&amp;quot;, &amp;quot;Stratum&amp;quot;, &amp;quot;Elegy&amp;quot;, &amp;quot;Raindance&amp;quot;, &amp;quot;RC Tiger&amp;quot;, &amp;quot;Flash&amp;quot;, &lt;br /&gt;
                       &amp;quot;Tahoma&amp;quot;, &amp;quot;Savanna&amp;quot;, &amp;quot;Bandito&amp;quot;, &amp;quot;Freight Train Flatbed&amp;quot;, &amp;quot;Streak Train Trailer&amp;quot;, &amp;quot;Kart&amp;quot;, &amp;quot;Mower&amp;quot;, &amp;quot;Dune&amp;quot;, &amp;quot;Sweeper&amp;quot;, &amp;quot;Broadway&amp;quot;, &amp;quot;Tornado&amp;quot;, &lt;br /&gt;
                       &amp;quot;AT-400&amp;quot;, &amp;quot;DFT-30&amp;quot;, &amp;quot;Huntley&amp;quot;, &amp;quot;Stafford&amp;quot;, &amp;quot;BF-400&amp;quot;, &amp;quot;Newsvan&amp;quot;, &amp;quot;Tug&amp;quot;, &amp;quot;Trailer (Tanker Commando)&amp;quot;, &amp;quot;Emperor&amp;quot;, &amp;quot;Wayfarer&amp;quot;, &amp;quot;Euros&amp;quot;, &amp;quot;Hotdog&amp;quot;, &lt;br /&gt;
                       &amp;quot;Club&amp;quot;, &amp;quot;Box Freight&amp;quot;, &amp;quot;Trailer 3&amp;quot;, &amp;quot;Andromada&amp;quot;, &amp;quot;Dodo&amp;quot;, &amp;quot;RC Cam&amp;quot;, &amp;quot;Launch&amp;quot;, &amp;quot;Police LS&amp;quot;, &amp;quot;Police&amp;quot;, &amp;quot;Police SF&amp;quot;, &amp;quot;Police LV&amp;quot;, &amp;quot;Police Ranger&amp;quot;, &lt;br /&gt;
                       &amp;quot;Ranger&amp;quot;, &amp;quot;Picador&amp;quot;, &amp;quot;S.W.A.T.&amp;quot;, &amp;quot;Alpha&amp;quot;, &amp;quot;Phoenix&amp;quot;, &amp;quot;Glendale Damaged&amp;quot;, &amp;quot;Sadler&amp;quot;, &amp;quot;Sadler Damaged&amp;quot;, &amp;quot;Baggage Trailer (covered)&amp;quot;, &lt;br /&gt;
                       &amp;quot;Baggage Trailer (Uncovered)&amp;quot;, &amp;quot;Trailer (Stairs)&amp;quot;, &amp;quot;Boxville Mission&amp;quot;, &amp;quot;Farm Trailer&amp;quot;, &amp;quot;Street Clean Trailer&amp;quot;&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Lua table of vehicles that are not lockable====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;nonLockableVehicles = {&lt;br /&gt;
    594, 606, 607, 611, 584, 608, 435, 450, 591, 539, 441, 464, 501, 465, 564, 472, 473, 493, 595, 484, 430, 453, 452, 446, 454, 581, 509, 481,&lt;br /&gt;
    462, 521, 463, 510, 522, 461, 448, 468, 586, 425, 520&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Lua table of vehicles without number plates====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;noNumberPlates = {&lt;br /&gt;
    592, 553, 577, 488, 511, 497, 548, 563, 512, 476, 593, 447, 425, 519, 520, 460, 417, 469, 487, 513, 509, 481, 510, 472, 473, 493, 595, 484,&lt;br /&gt;
    430, 453, 452, 446, 454&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Lua table of vehicles that support up to three different colors====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;maxColorVehicles = {&lt;br /&gt;
    483, 524, 446&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Lua table of vehicles that doesn't support siren lights====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;noSirenLights = {&lt;br /&gt;
    400, 401, 402, 403, 404, 405, 406, 417, 420, 423, 425, 430, 432, 433, 435, 438, 441, 446, 447, 448, 452, 453, 454, 460, 461, 462, 463, 464,&lt;br /&gt;
    465, 468, 469, 472, 473, 476, 481, 484, 487, 488, 493, 497, 501, 509, 510, 511, 512, 513, 519, 520, 521, 522, 523, 528, 537, 538, 539, 544,&lt;br /&gt;
    548, 553, 563, 564, 569, 570, 577, 581, 586, 590, 592, 593, 595, 600, 601, 602, 603, 604, 605, 606, 607, 608, 610, 611&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Aircrafts==&lt;br /&gt;
{|&lt;br /&gt;
|- style=&amp;quot;vertical-align: top;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding-right: 50px;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===Airplanes===&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name || ID || class=&amp;quot;unsortable&amp;quot; | Image&lt;br /&gt;
|-&lt;br /&gt;
| Andromada || 592 || align=&amp;quot;center&amp;quot; | [[Image:Androm.png]]&lt;br /&gt;
|-&lt;br /&gt;
| AT-400 || 577 || align=&amp;quot;center&amp;quot; | [[Image:At400.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Beagle || 511  || align=&amp;quot;center&amp;quot; | [[Image:Beagle.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Cropduster || 512 || align=&amp;quot;center&amp;quot; | [[Image:Cropdust.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Dodo || 593 || align=&amp;quot;center&amp;quot; | [[Image:Dodo.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Hydra || 520 || align=&amp;quot;center&amp;quot; | [[Image:Hydra.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Nevada || 553 || align=&amp;quot;center&amp;quot; | [[Image:Nevada.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Rustler || 476 || align=&amp;quot;center&amp;quot; | [[Image:Rustler.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Shamal || 519 || align=&amp;quot;center&amp;quot; | [[Image:Shamal.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Skimmer || 460 || align=&amp;quot;center&amp;quot; | [[Image:Skimmer.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Stuntplane || 513 || align=&amp;quot;center&amp;quot; | [[Image:Stunt.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;padding-right: 50px;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===Helicopters===&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name || ID || class=&amp;quot;unsortable&amp;quot; | Image&lt;br /&gt;
|-&lt;br /&gt;
| Cargobob || 548 || align=&amp;quot;center&amp;quot; | [[Image:Cargobob.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Hunter || 425 || align=&amp;quot;center&amp;quot; | [[Image:Hunter.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Leviathan || 417 || align=&amp;quot;center&amp;quot; | [[Image:Leviathn.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Maverick || 487 || align=&amp;quot;center&amp;quot; | [[Image:Maverick.png]]&lt;br /&gt;
|-&lt;br /&gt;
| News Chopper || 488 || align=&amp;quot;center&amp;quot; | [[Image:Newschop.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Police Maverick || 497 || align=&amp;quot;center&amp;quot; | [[Image:Polmav.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Raindance || 563 || align=&amp;quot;center&amp;quot; | [[Image:Raindanc.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Seasparrow || 447 || align=&amp;quot;center&amp;quot; | [[Image:Seaspar.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Sparrow || 469 || align=&amp;quot;center&amp;quot; | [[Image:Sparrow.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Boats==&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name || ID || class=&amp;quot;unsortable&amp;quot; | Image&lt;br /&gt;
|-&lt;br /&gt;
| Coastguard || 472 || align=&amp;quot;center&amp;quot; | [[Image:Coastg.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Dinghy || 473 || align=&amp;quot;center&amp;quot; | [[Image:Dinghy.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Jetmax || 493 || align=&amp;quot;center&amp;quot; | [[Image:Jetmax.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Launch || 595 || align=&amp;quot;center&amp;quot; | [[Image:Launch.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Marquis || 484 || align=&amp;quot;center&amp;quot; | [[Image:Marquis.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Predator || 430 || align=&amp;quot;center&amp;quot; | [[Image:Predator.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Reefer || 453 || align=&amp;quot;center&amp;quot; | [[Image:Reefer.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Speeder || 452 || align=&amp;quot;center&amp;quot; | [[Image:Speeder.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Squalo || 446 || align=&amp;quot;center&amp;quot; | [[Image:Squalo.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Tropic || 454 || align=&amp;quot;center&amp;quot; | [[Image:Tropic.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Land vehicles==&lt;br /&gt;
{|&lt;br /&gt;
|- style=&amp;quot;vertical-align: top;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding-right: 50px;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===Bikes===&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name || ID || class=&amp;quot;unsortable&amp;quot; | Image&lt;br /&gt;
|-&lt;br /&gt;
| BF-400 || 581 || align=&amp;quot;center&amp;quot; | [[Image:Bf400.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Bike || 509 || align=&amp;quot;center&amp;quot; | [[Image:Bike.png]]&lt;br /&gt;
|-&lt;br /&gt;
| BMX || 481 || align=&amp;quot;center&amp;quot; | [[Image:Bmx.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Faggio || 462 || align=&amp;quot;center&amp;quot; | [[Image:Faggio.png]]&lt;br /&gt;
|-&lt;br /&gt;
| FCR-900 || 521 || align=&amp;quot;center&amp;quot; | [[Image:Fcr900.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Freeway || 463 || align=&amp;quot;center&amp;quot; | [[Image:Freeway.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Mountain Bike || 510 || align=&amp;quot;center&amp;quot; | [[Image:Mtbike.png]]&lt;br /&gt;
|-&lt;br /&gt;
| NRG-500 || 522 || align=&amp;quot;center&amp;quot; | [[Image:Nrg500.png]]&lt;br /&gt;
|-&lt;br /&gt;
| PCJ-600 || 461 || align=&amp;quot;center&amp;quot; | [[Image:Pcj600.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Pizzaboy || 448 || align=&amp;quot;center&amp;quot; | [[Image:Pizzaboy.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Sanchez ||  468 || align=&amp;quot;center&amp;quot; | [[Image:Sanchez.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Wayfarer || 586 || align=&amp;quot;center&amp;quot; | [[Image:Wayfarer.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;padding-right: 50px;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===2-Door &amp;amp; Compact cars===&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name || ID || class=&amp;quot;unsortable&amp;quot; | Image&lt;br /&gt;
|-&lt;br /&gt;
| Alpha || 602 || align=&amp;quot;center&amp;quot; | [[Image:Alpha.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Blista Compact || 496 || align=&amp;quot;center&amp;quot; | [[Image:Blistac.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Bravura || 401 || align=&amp;quot;center&amp;quot; | [[Image:Bravura.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Buccaneer || 518 || align=&amp;quot;center&amp;quot; | [[Image:Buccanee.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Cadrona || 527 || align=&amp;quot;center&amp;quot; | [[Image:Cadrona.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Club || 589 || align=&amp;quot;center&amp;quot; | [[Image:Club.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Esperanto || 419 || align=&amp;quot;center&amp;quot; | [[Image:Esperant.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Euros || 587 || align=&amp;quot;center&amp;quot; | [[Image:Euros.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Feltzer || 533 || align=&amp;quot;center&amp;quot; | [[Image:Feltzer.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Fortune || 526 || align=&amp;quot;center&amp;quot; | [[Image:Fortune.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Hermes || 474 || align=&amp;quot;center&amp;quot; | [[Image:Hermes.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Hustler || 545 || align=&amp;quot;center&amp;quot; | [[Image:Hustler.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Majestic || 517 || align=&amp;quot;center&amp;quot; | [[Image:Majestic.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Manana || 410 || align=&amp;quot;center&amp;quot; | [[Image:Manana.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Picador || 600 || align=&amp;quot;center&amp;quot; | [[Image:Picador.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Previon || 436 || align=&amp;quot;center&amp;quot; | [[Image:Previon.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Stallion || 439 || align=&amp;quot;center&amp;quot; | [[Image:Stallion.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Tampa || 549 || align=&amp;quot;center&amp;quot; | [[Image:Tampa.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Virgo || 491 || align=&amp;quot;center&amp;quot; | [[Image:Virgo.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;padding-right: 50px;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=== 4-Door &amp;amp; Luxury cars===&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name || ID || class=&amp;quot;unsortable&amp;quot; | Image&lt;br /&gt;
|-&lt;br /&gt;
| Admiral || 445 || align=&amp;quot;center&amp;quot; | [[Image:Admiral.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Damaged Glendale || 604 || align=&amp;quot;center&amp;quot; | [[Image:Glenshit.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Elegant || 507 || align=&amp;quot;center&amp;quot; | [[Image:Elegant.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Emperor || 585 || align=&amp;quot;center&amp;quot; | [[Image:Emperor.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Glendale || 466 || align=&amp;quot;center&amp;quot; | [[Image:Glendale.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Greenwood || 492 || align=&amp;quot;center&amp;quot; | [[Image:Greenwoo.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Intruder || 546 || align=&amp;quot;center&amp;quot; | [[Image:Intruder.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Merit || 551 || align=&amp;quot;center&amp;quot; | [[Image:Merit.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Nebula || 516 || align=&amp;quot;center&amp;quot; | [[Image:Nebula.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Oceanic || 467 || align=&amp;quot;center&amp;quot; | [[Image:Oceanic.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Premier || 426 || align=&amp;quot;center&amp;quot; | [[Image:Premier.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Primo || 547 || align=&amp;quot;center&amp;quot; | [[Image:Primo.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Sentinel || 405 || align=&amp;quot;center&amp;quot; | [[Image:Sentinel.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Stafford || 580 || align=&amp;quot;center&amp;quot; | [[Image:Stafford.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Stretch || 409 || align=&amp;quot;center&amp;quot; | [[Image:Stretch.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Sunrise || 550 || align=&amp;quot;center&amp;quot; | [[Image:Sunrise.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Tahoma || 566 || align=&amp;quot;center&amp;quot; | [[Image:Tahoma.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Vincent || 540 || align=&amp;quot;center&amp;quot; | [[Image:Vincent.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Washington || 421 || align=&amp;quot;center&amp;quot; | [[Image:Washing.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Willard || 529 || align=&amp;quot;center&amp;quot; | [[Image:Willard.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
{|&lt;br /&gt;
|- style=&amp;quot;vertical-align: top;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding-right: 50px;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===Civil service===&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name || ID || class=&amp;quot;unsortable&amp;quot; | Image&lt;br /&gt;
|-&lt;br /&gt;
| Baggage || 485 || align=&amp;quot;center&amp;quot; | [[Image:Baggage.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Bus || 431 || align=&amp;quot;center&amp;quot; | [[Image:Bus.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Cabbie || 438 || align=&amp;quot;center&amp;quot; | [[Image:Cabbie.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Coach || 437 || align=&amp;quot;center&amp;quot; | [[Image:Coach.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Sweeper || 574 || align=&amp;quot;center&amp;quot; | [[Image:Sweeper.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Taxi || 420 || align=&amp;quot;center&amp;quot; | [[Image:Taxi.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Towtruck || 525 || align=&amp;quot;center&amp;quot; | [[Image:Towtruck.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Trashmaster || 408 || align=&amp;quot;center&amp;quot; | [[Image:Trash.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Utility Van || 552 || align=&amp;quot;center&amp;quot; | [[Image:Utility.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;padding-right: 50px;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===Government vehicles===&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name || ID || class=&amp;quot;unsortable&amp;quot; | Image&lt;br /&gt;
|-&lt;br /&gt;
| Ambulance || 416 || align=&amp;quot;center&amp;quot; | [[Image:Ambulan.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Barracks || 433 || align=&amp;quot;center&amp;quot; | [[Image:Barracks.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Enforcer || 427 || align=&amp;quot;center&amp;quot; | [[Image:Enforcer.png]]&lt;br /&gt;
|-&lt;br /&gt;
| FBI Rancher || 490 || align=&amp;quot;center&amp;quot; | [[Image:Fbiranch.png]]&lt;br /&gt;
|-&lt;br /&gt;
| FBI Truck || 528 || align=&amp;quot;center&amp;quot; | [[Image:Fbitruck.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Fire Truck || 407 || align=&amp;quot;center&amp;quot; | [[Image:Firetruk.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Fire Truck || 544 || align=&amp;quot;center&amp;quot; | [[Image:Firela.png]]&lt;br /&gt;
|-&lt;br /&gt;
| HPV1000 || 523 || align=&amp;quot;center&amp;quot; | [[Image:Hpv1000.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Patriot || 470 || align=&amp;quot;center&amp;quot; | [[Image:Patriot.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Police LS || 596 || align=&amp;quot;center&amp;quot; | [[Image:Policels.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Police LV || 598 || align=&amp;quot;center&amp;quot; | [[Image:Policelv.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Police Ranger || 599 || align=&amp;quot;center&amp;quot; | [[Image:Policeru.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Police SF || 597 || align=&amp;quot;center&amp;quot; | [[Image:Policesf.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Rhino || 432 || align=&amp;quot;center&amp;quot; | [[Image:Rhino.png]]&lt;br /&gt;
|-&lt;br /&gt;
| S.W.A.T. || 601 || align=&amp;quot;center&amp;quot; | [[Image:Swatvan.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Securicar || 428 || align=&amp;quot;center&amp;quot; | [[Image:Securica.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;padding-right: 50px;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===Heavy &amp;amp; Utility trucks===&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name || ID || class=&amp;quot;unsortable&amp;quot; | Image&lt;br /&gt;
|-&lt;br /&gt;
| Benson || 499 || align=&amp;quot;center&amp;quot; | [[Image:Benson.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Boxville Mission|| 609 || align=&amp;quot;center&amp;quot; | [[Image:Boxburg.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Boxville || 498 || align=&amp;quot;center&amp;quot; | [[Image:Boxville.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Cement Truck || 524 || align=&amp;quot;center&amp;quot; | [[Image:Cement.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Combine Harvester || 532 || align=&amp;quot;center&amp;quot; | [[Image:Combine.png]]&lt;br /&gt;
|-&lt;br /&gt;
| DFT-30 || 578 || align=&amp;quot;center&amp;quot; | [[Image:Dft30.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Dozer || 486 || align=&amp;quot;center&amp;quot; | [[Image:Dozer.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Dumper || 406 || align=&amp;quot;center&amp;quot; | [[Image:Dumper.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Dune || 573 || align=&amp;quot;center&amp;quot; | [[Image:Dune.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Flatbed || 455 || align=&amp;quot;center&amp;quot; | [[Image:Flatbed.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Hotdog || 588 || align=&amp;quot;center&amp;quot; | [[Image:Hotdog.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Linerunner || 403 || align=&amp;quot;center&amp;quot; | [[Image:Linerun.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Mr. Whoopee || 423 || align=&amp;quot;center&amp;quot; | [[Image:Mrwhoop.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Mule || 414 || align=&amp;quot;center&amp;quot; | [[Image:Mule.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Packer || 443 || align=&amp;quot;center&amp;quot; | [[Image:Packer.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Roadtrain || 515 || align=&amp;quot;center&amp;quot; | [[Image:Rdtrain.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Tanker || 514 || align=&amp;quot;center&amp;quot; | [[Image:Tanker.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Tractor || 531 || align=&amp;quot;center&amp;quot; | [[Image:Tractor.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Yankee || 456 || align=&amp;quot;center&amp;quot; | [[Image:Yankee.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;padding-right: 50px;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===Light trucks &amp;amp; Vans===&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name || ID || class=&amp;quot;unsortable&amp;quot; | Image&lt;br /&gt;
|-&lt;br /&gt;
| Berkley's RC Van || 459 || align=&amp;quot;center&amp;quot; | [[Image:Topfun.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Bobcat || 422 || align=&amp;quot;center&amp;quot; | [[Image:Bobcat.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Burrito || 482 || align=&amp;quot;center&amp;quot; | [[Image:Burrito.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Damaged Sadler || 605 || align=&amp;quot;center&amp;quot; | [[Image:Sadlshit.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Forklift || 530 || align=&amp;quot;center&amp;quot; | [[Image:Forklift.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Moonbeam || 418 || align=&amp;quot;center&amp;quot; | [[Image:Moonbeam.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Mower || 572 || align=&amp;quot;center&amp;quot; | [[Image:Mower.png]]&lt;br /&gt;
|-&lt;br /&gt;
| News Van || 582 || align=&amp;quot;center&amp;quot; | [[Image:Newsvan.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Pony || 413 || align=&amp;quot;center&amp;quot; | [[Image:Pony.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Rumpo || 440 || align=&amp;quot;center&amp;quot; | [[Image:Rumpo.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Sadler || 543 || align=&amp;quot;center&amp;quot; | [[Image:Sadler.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Tug || 583 || align=&amp;quot;center&amp;quot; | [[Image:Tug.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Walton || 478 || align=&amp;quot;center&amp;quot; | [[Image:Walton.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Yosemite || 554 || align=&amp;quot;center&amp;quot; | [[Image:Yosemite.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;padding-right: 50px;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===SUVs &amp;amp; Wagons===&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name || ID || class=&amp;quot;unsortable&amp;quot; | Image&lt;br /&gt;
|-&lt;br /&gt;
| Huntley || 579 || align=&amp;quot;center&amp;quot; | [[Image:Huntley.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Landstalker || 400 || align=&amp;quot;center&amp;quot; | [[Image:Landstal.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Perennial || 404 || align=&amp;quot;center&amp;quot; | [[Image:Peren.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Rancher || 489 || align=&amp;quot;center&amp;quot; | [[Image:Rancher.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Rancher || 505 || align=&amp;quot;center&amp;quot; | [[Image:Rnchlure.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Regina || 479 || align=&amp;quot;center&amp;quot; | [[Image:Regina.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Romero || 442 || align=&amp;quot;center&amp;quot; | [[Image:Romero.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Solair || 458 || align=&amp;quot;center&amp;quot; | [[Image:Solair.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
{|&lt;br /&gt;
|- style=&amp;quot;vertical-align: top;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding-right: 50px;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===Lowriders===&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name || ID || class=&amp;quot;unsortable&amp;quot; | Image&lt;br /&gt;
|-&lt;br /&gt;
| Blade || 536 || align=&amp;quot;center&amp;quot; | [[Image:Blade.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Broadway || 575 || align=&amp;quot;center&amp;quot; | [[Image:Broadway.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Remington || 534 || align=&amp;quot;center&amp;quot; | [[Image:Remingtn.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Savanna || 567 || align=&amp;quot;center&amp;quot; | [[Image:Savanna.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Slamvan || 535 || align=&amp;quot;center&amp;quot; | [[Image:Slamvan.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Tornado || 576 || align=&amp;quot;center&amp;quot; | [[Image:Tornado.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Voodoo || 412 || align=&amp;quot;center&amp;quot; | [[Image:Voodoo.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;padding-right: 50px;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===Muscle cars===&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name || ID || class=&amp;quot;unsortable&amp;quot; | Image&lt;br /&gt;
|-&lt;br /&gt;
| Buffalo || 402 || align=&amp;quot;center&amp;quot; | [[Image:Buffalo.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Clover || 542 || align=&amp;quot;center&amp;quot; | [[Image:Clover.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Phoenix || 603 || align=&amp;quot;center&amp;quot; | [[Image:Phoenix.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Sabre || 475 || align=&amp;quot;center&amp;quot; | [[Image:Sabre.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;padding-right: 50px;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===Street racers===&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name || ID || class=&amp;quot;unsortable&amp;quot; | Image&lt;br /&gt;
|-&lt;br /&gt;
| Banshee || 429 || align=&amp;quot;center&amp;quot; | [[Image:Banshee.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Bullet || 541 || align=&amp;quot;center&amp;quot; | [[Image:Bullet.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Cheetah || 415 || align=&amp;quot;center&amp;quot; | [[Image:Cheetah.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Comet || 480 || align=&amp;quot;center&amp;quot; | [[Image:Comet.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Elegy || 562 || align=&amp;quot;center&amp;quot; | [[Image:Elegy.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Flash || 565 || align=&amp;quot;center&amp;quot; | [[Image:Flash.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Hotknife || 434 || align=&amp;quot;center&amp;quot; | [[Image:Hotknife.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Hotring Racer || 494 || align=&amp;quot;center&amp;quot; | [[Image:Hotring.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Hotring Racer 2 || 502 || align=&amp;quot;center&amp;quot; | [[Image:Hotrina.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Hotring Racer 3 || 503 || align=&amp;quot;center&amp;quot; | [[Image:Hotrinb.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Infernus || 411 || align=&amp;quot;center&amp;quot; | [[Image:411.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Jester || 559 || align=&amp;quot;center&amp;quot; | [[Image:Jester.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Stratum || 561 || align=&amp;quot;center&amp;quot; | [[Image:Stratum.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Sultan || 560 || align=&amp;quot;center&amp;quot; | [[Image:Sultan.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Super GT || 506 || align=&amp;quot;center&amp;quot; | [[Image:Supergt.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Turismo || 451 || align=&amp;quot;center&amp;quot; | [[Image:Turismo.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Uranus || 558 || align=&amp;quot;center&amp;quot; | [[Image:Uranus.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Windsor || 555 || align=&amp;quot;center&amp;quot; | [[Image:Windsor.png]]&lt;br /&gt;
|-&lt;br /&gt;
| ZR-350 || 477 || align=&amp;quot;center&amp;quot; | [[Image:Zr350.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
{|&lt;br /&gt;
|- style=&amp;quot;vertical-align: top;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding-right: 50px;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===RC Vehicles===&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name || ID || class=&amp;quot;unsortable&amp;quot; | Image&lt;br /&gt;
|-&lt;br /&gt;
| RC Bandit || 441 || align=&amp;quot;center&amp;quot; | [[Image:Rcbandit.png]]&lt;br /&gt;
|-&lt;br /&gt;
| RC Baron || 464 || align=&amp;quot;center&amp;quot; | [[Image:Rcbaron.png]]&lt;br /&gt;
|-&lt;br /&gt;
| RC Cam || 594 || align=&amp;quot;center&amp;quot; | [[Image:Rccam.png]]&lt;br /&gt;
|-&lt;br /&gt;
| RC Goblin || 501 || align=&amp;quot;center&amp;quot; | [[Image:Rcgoblin.png]]&lt;br /&gt;
|-&lt;br /&gt;
| RC Raider || 465 || align=&amp;quot;center&amp;quot; | [[Image:Rcraider.png]]&lt;br /&gt;
|-&lt;br /&gt;
| RC Tiger || 564 || align=&amp;quot;center&amp;quot; | [[Image:Rctiger.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;padding-right: 50px;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===Trailers===&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name || ID || class=&amp;quot;unsortable&amp;quot; | Image&lt;br /&gt;
|-&lt;br /&gt;
| Baggage Trailer || 606 || align=&amp;quot;center&amp;quot; | [[Image:Bagboxa.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Baggage Trailer || 607 || align=&amp;quot;center&amp;quot; | [[Image:Bagboxb.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Farm Trailer || 610 || align=&amp;quot;center&amp;quot; | [[Image:Farmtr1.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Petrol trailer || 584 || align=&amp;quot;center&amp;quot; | [[Image:Petrotr.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Trailer || 611 || align=&amp;quot;center&amp;quot; | [[Image:Utiltr1.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Trailer || 608 || align=&amp;quot;center&amp;quot; | [[Image:Tugstair.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Trailer 1 || 435 || align=&amp;quot;center&amp;quot; | [[Image:Artict1.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Trailer 2 || 450 || align=&amp;quot;center&amp;quot; | [[Image:Artict2.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Trailer 3 || 591 || align=&amp;quot;center&amp;quot; | [[Image:Artict3.png]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;padding-right: 50px;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===Trains &amp;amp; Railroad cars===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name || ID || class=&amp;quot;unsortable&amp;quot; | Image&lt;br /&gt;
|-&lt;br /&gt;
| Box Freight || 590 || align=&amp;quot;center&amp;quot; | [[Image:Freibox.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Brown Streak || 538 || align=&amp;quot;center&amp;quot; | [[Image:Streak.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Brown Streak Carriage || 570 || align=&amp;quot;center&amp;quot; | [[Image:Streakc.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Flat Freight || 569 || align=&amp;quot;center&amp;quot; | [[Image:Freiflat.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Freight || 537 || align=&amp;quot;center&amp;quot; | [[Image:Freight.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Tram || 449 || align=&amp;quot;center&amp;quot; | [[Image:Tram.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Recreational==&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name || ID || class=&amp;quot;unsortable&amp;quot; | Image&lt;br /&gt;
|-&lt;br /&gt;
| Bandito || 568 || align=&amp;quot;center&amp;quot; | [[Image:Bandito.png]]&lt;br /&gt;
|-&lt;br /&gt;
| BF Injection || 424 || align=&amp;quot;center&amp;quot; | [[Image:Bfinject.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Bloodring Banger || 504 || align=&amp;quot;center&amp;quot; | [[Image:Bloodra.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Caddy || 457 || align=&amp;quot;center&amp;quot; | [[Image:Caddy.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Camper || 483 || align=&amp;quot;center&amp;quot; | [[Image:Camper.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Journey || 508 || align=&amp;quot;center&amp;quot; | [[Image:Journey.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Kart || 571 || align=&amp;quot;center&amp;quot; | [[Image:Kart.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Mesa || 500 || align=&amp;quot;center&amp;quot; | [[Image:Mesa.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Monster || 444 || align=&amp;quot;center&amp;quot; | [[Image:Monster.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Monster 2 || 556 || align=&amp;quot;center&amp;quot; | [[Image:Monstera.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Monster 3 || 557 || align=&amp;quot;center&amp;quot; | [[Image:Monsterb.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Quadbike || 471 || align=&amp;quot;center&amp;quot; | [[Image:Quad.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Sandking || 495 || align=&amp;quot;center&amp;quot; | [[Image:Sandking.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Vortex || 539 || align=&amp;quot;center&amp;quot; | [[Image:Vortex.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Vehicle Functions==&lt;br /&gt;
{{Vehicle functions}}&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
&lt;br /&gt;
[[hu:Vehicle IDs]]&lt;br /&gt;
[[id|ID Lists]]&lt;br /&gt;
[[tr:Araç ID'leri]]&lt;br /&gt;
[[it:ID Veicoli]]&lt;br /&gt;
[[ru:Vehicle IDs]]&lt;br /&gt;
[[de:Fahrzeug IDs]]&lt;br /&gt;
&lt;br /&gt;
[[Category:ID Lists]]&lt;/div&gt;</summary>
		<author><name>Jayceon</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=ReMap&amp;diff=65095</id>
		<title>ReMap</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=ReMap&amp;diff=65095"/>
		<updated>2020-02-09T17:50:43Z</updated>

		<summary type="html">&lt;p&gt;Jayceon: /* Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Useful_Function}}&lt;br /&gt;
Re-maps a number from one range to another.&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;int/float reMap(float value, float low1, float high1, float low2, float high2)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Required Arguments===&lt;br /&gt;
* '''value''': The incoming value to be converted&lt;br /&gt;
* '''low1''': Lower bound of the value's current range&lt;br /&gt;
* '''high1''': Upper bound of the value's current range&lt;br /&gt;
* '''low2''': Lower bound of the value's target range&lt;br /&gt;
* '''high2''': Upper bound of the value's target range&lt;br /&gt;
&lt;br /&gt;
===Returns===&lt;br /&gt;
Returns the re-mapped number.&lt;br /&gt;
&lt;br /&gt;
==Code==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function reMap(value, low1, high1, low2, high2)&lt;br /&gt;
    return low2 + (value - low1) * (high2 - low2) / (high1 - low1)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&amp;lt;section name=&amp;quot;Clientside Example&amp;quot; class=&amp;quot;client&amp;quot; show=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot; lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local alpha = 127.5&lt;br /&gt;
local opacity = reMap(alpha, 0, 255, 0, 1)&lt;br /&gt;
&lt;br /&gt;
-- And the &amp;quot;opacity&amp;quot; return 0.5 because 255/2 = 127.5 and 0 to 1 range is 0.5&lt;br /&gt;
&lt;br /&gt;
-- Reverse:&lt;br /&gt;
local opacity = 0.5&lt;br /&gt;
local alpha = reMap(opacity, 0, 1, 0, 255)&lt;br /&gt;
&lt;br /&gt;
-- And the &amp;quot;alpha &amp;quot; return 127.5 because 1/2 = 0.5 and 0 to 255 range is 127.5&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/section&amp;gt;&lt;br /&gt;
{{Useful_Functions}}&lt;/div&gt;</summary>
		<author><name>Jayceon</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=SetVehicleDoorState&amp;diff=62081</id>
		<title>SetVehicleDoorState</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=SetVehicleDoorState&amp;diff=62081"/>
		<updated>2019-01-29T13:01:35Z</updated>

		<summary type="html">&lt;p&gt;Jayceon: /* Required Arguments */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{{Server client function}}&lt;br /&gt;
This function sets the state of the specified door on a vehicle.&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;bool setVehicleDoorState ( vehicle theVehicle, int door, int state )&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{OOP||[[vehicle]]:setDoorState||getVehicleDoorState}}&lt;br /&gt;
&lt;br /&gt;
==Required Arguments==&lt;br /&gt;
*'''theVehicle:''' The [[vehicle]] that you wish to change the door state of.&lt;br /&gt;
*'''door:''' An integer representing which door to set the state of. Valid values are:&lt;br /&gt;
**'''0:''' Hood&lt;br /&gt;
**'''1:''' Trunk&lt;br /&gt;
**'''2:''' Front left&lt;br /&gt;
**'''3:''' Front right&lt;br /&gt;
**'''4:''' Rear left&lt;br /&gt;
**'''5:''' Rear right&lt;br /&gt;
*'''state:''' An integer representing the state to set the door to. Valid values are:&lt;br /&gt;
**'''0:''' Shut, intact (aka Closed, undamaged)&lt;br /&gt;
**'''1:''' Ajar, intact (aka Slightly open, undamaged)&lt;br /&gt;
**'''2:''' Shut, damaged (aka Closed, damaged)&lt;br /&gt;
**'''3:''' Ajar, damaged (aka Slightly open, damaged)&lt;br /&gt;
**'''4:''' Missing&lt;br /&gt;
&lt;br /&gt;
==Returns==&lt;br /&gt;
Returns ''true'' if the door state was successfully set, ''false'' otherwise.&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
-- create a new vehicle&lt;br /&gt;
local newcar = createVehicle ( 520, 1024, 1024, 1024 )&lt;br /&gt;
-- break its front left door off&lt;br /&gt;
state = setVehicleDoorState ( newcar, 2, 4 )&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
{{Vehicle functions}}&lt;/div&gt;</summary>
		<author><name>Jayceon</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=ReMap&amp;diff=51779</id>
		<title>ReMap</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=ReMap&amp;diff=51779"/>
		<updated>2017-08-03T09:45:15Z</updated>

		<summary type="html">&lt;p&gt;Jayceon: /* Syntax */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Re-maps a number from one range to another.&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;int/float reMap(float value, float low1, float high1, float low2, float high2)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Required Arguments===&lt;br /&gt;
* '''value''': The incoming value to be converted&lt;br /&gt;
* '''low1''': Lower bound of the value's current range&lt;br /&gt;
* '''high1''': Upper bound of the value's current range&lt;br /&gt;
* '''low2''': Lower bound of the value's target range&lt;br /&gt;
* '''high2''': Upper bound of the value's target range&lt;br /&gt;
&lt;br /&gt;
===Returns===&lt;br /&gt;
Returns the re-mapped number.&lt;br /&gt;
&lt;br /&gt;
==Code==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function reMap(value, low1, high1, low2, high2)&lt;br /&gt;
    return low2 + (value - low1) * (high2 - low2) / (high1 - low1)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&amp;lt;section name=&amp;quot;Clientside Example&amp;quot; class=&amp;quot;client&amp;quot; show=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot; lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local realAlpha = 127.5&lt;br /&gt;
local alpha = reMap(realAlpha, 0, 255, 0, 1)&lt;br /&gt;
&lt;br /&gt;
-- And the &amp;quot;alpha&amp;quot; return 0.5 because 255/2 = 127.5 and 0 to 1 range is 0.5&lt;br /&gt;
&lt;br /&gt;
-- Reverse:&lt;br /&gt;
local alpha = 0.5&lt;br /&gt;
local realAlpha = reMap(realAlpha, 0, 1, 0, 255)&lt;br /&gt;
&lt;br /&gt;
-- And the &amp;quot;realAlpha &amp;quot; return 127.5 because 1/2 = 0.5 and 0 to 255 range is 127.5&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/section&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Author: Jayceon&lt;/div&gt;</summary>
		<author><name>Jayceon</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=Template:Useful_Functions&amp;diff=51777</id>
		<title>Template:Useful Functions</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=Template:Useful_Functions&amp;diff=51777"/>
		<updated>2017-08-02T20:48:38Z</updated>

		<summary type="html">&lt;p&gt;Jayceon: /* Math functions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== ACL functions ===&lt;br /&gt;
*[[aclGroupClone]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function clone a group to another group with/without ACLs and/or objects.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getPlayerAcls]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns a table of all ACL groups on a player.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[isPlayerInACL]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function checks if a player element is in an ACL group.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[renameAclGroup]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function gives an existing ACL group a new name.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Account functions ===&lt;br /&gt;
*[[setAccountName]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function is used to change an existing account's name.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[removeAccountData]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function is used to remove data from account .&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Camera functions ===&lt;br /&gt;
*[[smoothMoveCamera]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function allows you to create a cinematic camera flight.&lt;br /&gt;
&lt;br /&gt;
=== Cursor functions ===&lt;br /&gt;
*[[getCursorMoveOn]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function checks in which way the cursor is currently moving.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Drawing functions ===&lt;br /&gt;
*[[dxDrawAnimWindow]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function draws an animated 2D window on the screen.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[dxDrawCircle]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function draws a number of 2D lines in order to achieve a circle shape on the screen.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[dxDrawOctagon3D]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function creates a 3D Octagon&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[dxDrawTriangle]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This is a function that will create a triangle with dx lines.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[dxDrawLinedRectangle]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This is a function that will create a rectangle outline with dx lines.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[dxDrawBorderedRectangle]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This is a function that will create a bordered rectangle .&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[dxDrawGifImage]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function simulates the effect of a GIF image by using image sprites in 2D.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[dxDrawImage3D]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function draws a 3D image in GTA world.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[dxDrawImageOnElement]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function draws an image on any element.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[dxDrawLoading]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function draws a loading bar on the screen.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[dxDrawProgressBar]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function simulates a progress bar drawed using DirectDraw.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[dxDrawRectangle3D]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function draws a 3D rectangle in GTA world.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[dxDrawTextOnElement]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function draws a text on any element.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[dxGetFontSizeFromHeight]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function calculates the font size from given height.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[dxGetRealFontHeight]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function calculates the height of a font.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Effects functions ===&lt;br /&gt;
*[[attachEffect]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function allows you attach an effect to an element.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Elements functions === &lt;br /&gt;
*[[getElementSpeed]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns the specified element's speed in m/s, km/h or mph.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getElementsInDimension]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns a table of elements that are in the specified dimension.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getElementsWithinMarker]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns a table of elements that are within a marker's collision shape.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[isElementInPhotograph]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function checks if an element is in the player's camera picture area.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[isElementInRange]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function allows you to check if an element's range to a main point is within the maximum range.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[isElementMoving]]&amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function checks if an element is moving.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[isElementWithinAColShape]]&amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function checks if an element is within a collision shape element.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[multi_check]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function checks one element to many, handy and clean.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[setElementSpeed]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function allows you to set the speed of an element in kph or mph units.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Events ===&lt;br /&gt;
*[[onVehicleWeaponFire]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This code implements an event that is triggered when a player in a vehicle fires a vehicle's weapon.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Input functions ===&lt;br /&gt;
*[[bindControlKeys]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function allows you to bind each key bound to a control individually. Doing this bypasses a little MTA restriction.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getBoundControls]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns a table of control names that are bound to the specified key.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[unbindControlKeys]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function allows you to unbind each key bound to a control individually. Use this function with [[bindControlKeys]].&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Data functions === &lt;br /&gt;
*[[Byte2human]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function converts an integer (number of bytes) into a human-readable unit.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[capitalize]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function capitalizes a given string.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[convertNumber]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function converts and formats large numbers.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[convertServerTickToTimeStamp]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function converts server ticks to a unix timestamp.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[convertTextToSpeech]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function converts the provided text to a speech in the provided language which players can hear.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[findRotation]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function takes two points and returns the direction from point A to point B.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[FormatDate]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function formats a date on the basis of a format string and returns it.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getRealMonthM]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function gives you the real months name&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getRealMonthH]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function convert english months to arabic months&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[generateString]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function generates a random string with any characters.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[generateRandomASCIIString]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns a random string which uses ASCII characters. &amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getAge]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function calculates the age of a given birthday.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getDistanceBetweenPointAndSegment2D]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function takes point coordinates and line (a segment) starting and ending coordinates. It returns the shortest distance between the point and the line.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getEasterDate]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns easter date monthday and month for a given year.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getKeyFromValueInTable]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns the key of the specified value in a table.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getOffsetFromXYZ]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function allows you to take an entity and a position and calculate the relative offset between them accounting for rotations.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getPointFromDistanceRotation]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function finds a point based on a starting point, direction and distance.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getRGColorFromPercentage]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia', sans-serif; font-size:smaller;&amp;quot;&amp;gt;»This function returns two integers representing red and green colors according to the specified percentage.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getScreenRotationFromWorldPosition]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns a screen relative rotation to a world position.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getTimestamp]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns the UNIX timestamp of a specified date and time.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[isLeapYear]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns a boolean representing if a given year is a leap year.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[isValidMail]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function checks whether a provided e-mail string is valid.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[removeHex]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function is used to remove hexadecimal numbers (colors, for example) from strings.&lt;br /&gt;
*[[RGBToHex]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns a string representing the color in hexadecimal.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[toHex]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function converts a decimal number to a hexadecimal number, as a fix to be used client-side.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[secondsToTimeDesc]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function converts a plain seconds-integer into a user-friendly time description.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[string.count]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function counts the amount of occurences of a string in a string.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[string.explode]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function splits a string at a given separator pattern and returns a table with the pieces.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[switch]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function allows the value of a variable or expression to control the flow of program execution via a multiway branch.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[var dump]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function outputs information about one or more variables using outputConsole.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[wavelengthToRGBA]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function converts a physical wavelength of light to a RGBA color.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== GUI functions === &lt;br /&gt;
*[[centerWindow]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function centers a CEGUI window element responsively in any resolution.&amp;lt;/span&amp;gt;&lt;br /&gt;
=====Comboboxes=====&lt;br /&gt;
*[[guiComboBoxAdjustHeight]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function adjusts a CEGUI combobox element to have the correct height.&amp;lt;/span&amp;gt;&lt;br /&gt;
=====Gridlists=====&lt;br /&gt;
*[[getGridListRowIndexFromText]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns the GridList row index from the specified text.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[guiGridListGetSelectedText]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns a string containing the inner text of a selected gridlist item.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[guiGridListAddPlayers]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function add all online players to a grid list.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[isTextInGridList]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function checks if some text exist or not in the GridList.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Math functions ===&lt;br /&gt;
*[[mathNumber]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function is a workaround for the client-side floating-point precision of 24-bits.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[math.hypot]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns the Hypotenuse of the triangle given by sides x and y.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[math.percent]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns a percentage from two number values.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[math.round]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» Rounds a number whereas the number of decimals to keep and the method may be set.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[reMap]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» Re-maps a number from one range to another.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ped functions ===&lt;br /&gt;
*[[getAlivePlayers (Client)|getAlivePlayers]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns a table of the alive players client-side.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getAlivePlayersInTeam]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns a table of the alive players in a team.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getOnlineAdmins]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns a table of all logged-in administrators.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getPedMaxHealth]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns a pedestrians's maximum health by converting it from their maximum health stat.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getPedMaxOxygenLevel]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns a ped's maximum oxygen level by converting it from their maximum underwater stamina stat.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getPlayerFromNamePart]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns a player from partial name.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getPlayerFromSerial]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns a player from their serial.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getPlayersInGroup]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns all Players In Group .&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getGuestPlayers]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function gets a players not login or players Guest .&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getDimensionEmpty]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns id Dimension Empty .&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getPlayersByData]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns a table of players that have the specified data name.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getPlayersInPhotograph]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns a table of all players in photograph.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[isPedAiming]]&amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function checks if a pedestrian is aiming their weapon.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[isPedDrivingVehicle]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function checks if a specified pedestrian is driving a vehicle.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[isPlayerInTeam]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function checks if a player is in a specified team.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[isPedAimingNearPed]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This is similar to isPedAiming but uses a colshape to be more precise.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getPedEyesPosition]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function allows you to get peds eyes position.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Resource functions ===&lt;br /&gt;
*[[getResourceSettings]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns a table of the resource settings.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getResourceScripts]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns a table of the resource scripts.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[refreshResource]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function refreshes your resource if you changed any of the files&lt;br /&gt;
&lt;br /&gt;
=== Sound functions ===&lt;br /&gt;
*[[isSoundFinished]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function checks if a sound element has finished.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[stopSoundSlowly]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function stop your sound element slowly.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Table functions ===&lt;br /&gt;
*[[rangeToTable]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function converts a string range to a table containing number values.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[setTableProtected]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function protects a table and makes it read-only.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[table.copy]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function copies a whole table and all the tables in that table.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[table.compare]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function checks whether two given tables are equal.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[table.empty]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function checks whether a table is empty.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[table.map]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function goes through a table and replaces every field with the return of the passed function, where the field's value is passed as first argument and optionally more arguments.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[table.merge]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function merges two or more tables together.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[table.random]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function retrieves a random value from a table.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[table.size]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns the absolute size of a table.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[table.removeValue]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function removes a specified value from a table.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Team functions ===&lt;br /&gt;
*[[getTeamFromColor]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns a team element by the specified color.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getTeamWithFewestPlayers]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns a team element with least players of all the specified teams.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Vehicle funcions === &lt;br /&gt;
*[[getRandomVehicle]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function gets a random vehicle.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getValidVehicleModels]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns a table of all valid vehicle models.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getVehicleRespawnPosition]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function allows you to get the respawn position of a vehicle.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getVehiclesCountByType]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns the amount of vehicles by the given type as an integer value.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[isVehicleEmpty]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function checks whether a vehicle is empty.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getNearestVehicle]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function gets the nearest vehicle to the specified player in a specified distance.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[isVehicleOccupied]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function checks if a specified vehicle is occupied.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[isVehicleOnRoof]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function checks whether vehicle is on roof.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[setVehicleGravityPoint]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function sets a vehicle's gravity in the direction of a 3 dimensional coordinate with the strength specified.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Weapon functions === &lt;br /&gt;
*[[getJetpackWeaponsEnabled]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns a table of enabled weapons usable on a jetpack.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== XML functions ===&lt;br /&gt;
*[[getXMLNodes]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns all children of a XML node.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Utility ===&lt;br /&gt;
*[[Check]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function checks if its arguments are of the right type and calls the error-function if one is not.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[coroutine.resume]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function applies a fix for hidden coroutine error messages.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[callClientFunction]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function allows you to call any client-side function from the server's side.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[callServerFunction]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function allows you to call any server-side function from the client's side.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[animate]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function allows you to use interpolateBetween without render event and easily used.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getBanFromName]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This functions returns the ban of the given playername.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[getCurrentFPS]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns the frames per second at which GTA: SA is running.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[IfElse]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns one of two values based on a boolean expression.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[isCursorOnElement]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function checks whether the cursor is in a particular area.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[isMouseInCircle]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function checks if a cursor position is in circular area or not.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[isMouseInPosition]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function allows you to check whether the mouse cursor/pointer is within a rectangular position.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[iterElements]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This function returns ''a time-saving'' iterator for your for-loops.&amp;lt;/span&amp;gt;&lt;br /&gt;
*[[vector3:compare]] &amp;lt;span style=&amp;quot;color:gray; font-family:'Georgia',sans-serif; font-size:smaller;&amp;quot;&amp;gt;» This method checks whether two vectors match, with optional precision.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Useful Functions]]&lt;/div&gt;</summary>
		<author><name>Jayceon</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=ReMap&amp;diff=51776</id>
		<title>ReMap</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=ReMap&amp;diff=51776"/>
		<updated>2017-08-02T20:47:08Z</updated>

		<summary type="html">&lt;p&gt;Jayceon: /* Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Re-maps a number from one range to another.&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;int/float reMap( float value, float low1, float high1, float low2, float high2)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Required Arguments===&lt;br /&gt;
* '''value''': The incoming value to be converted&lt;br /&gt;
* '''low1''': Lower bound of the value's current range&lt;br /&gt;
* '''high1''': Upper bound of the value's current range&lt;br /&gt;
* '''low2''': Lower bound of the value's target range&lt;br /&gt;
* '''high2''': Upper bound of the value's target range&lt;br /&gt;
&lt;br /&gt;
===Returns===&lt;br /&gt;
Returns the re-mapped number.&lt;br /&gt;
&lt;br /&gt;
==Code==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function reMap(value, low1, high1, low2, high2)&lt;br /&gt;
    return low2 + (value - low1) * (high2 - low2) / (high1 - low1)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&amp;lt;section name=&amp;quot;Clientside Example&amp;quot; class=&amp;quot;client&amp;quot; show=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot; lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local realAlpha = 127.5&lt;br /&gt;
local alpha = reMap(realAlpha, 0, 255, 0, 1)&lt;br /&gt;
&lt;br /&gt;
-- And the &amp;quot;alpha&amp;quot; return 0.5 because 255/2 = 127.5 and 0 to 1 range is 0.5&lt;br /&gt;
&lt;br /&gt;
-- Reverse:&lt;br /&gt;
local alpha = 0.5&lt;br /&gt;
local realAlpha = reMap(realAlpha, 0, 1, 0, 255)&lt;br /&gt;
&lt;br /&gt;
-- And the &amp;quot;realAlpha &amp;quot; return 127.5 because 1/2 = 0.5 and 0 to 255 range is 127.5&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/section&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Author: Jayceon&lt;/div&gt;</summary>
		<author><name>Jayceon</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=ReMap&amp;diff=51775</id>
		<title>ReMap</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=ReMap&amp;diff=51775"/>
		<updated>2017-08-02T20:46:41Z</updated>

		<summary type="html">&lt;p&gt;Jayceon: Created page with &amp;quot;Re-maps a number from one range to another.  ==Syntax== &amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;int/float reMap( float value, float low1, float high1, float low2, float high2)&amp;lt;/syntaxhigh...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Re-maps a number from one range to another.&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;int/float reMap( float value, float low1, float high1, float low2, float high2)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Required Arguments===&lt;br /&gt;
* '''value''': The incoming value to be converted&lt;br /&gt;
* '''low1''': Lower bound of the value's current range&lt;br /&gt;
* '''high1''': Upper bound of the value's current range&lt;br /&gt;
* '''low2''': Lower bound of the value's target range&lt;br /&gt;
* '''high2''': Upper bound of the value's target range&lt;br /&gt;
&lt;br /&gt;
===Returns===&lt;br /&gt;
Returns the re-mapped number.&lt;br /&gt;
&lt;br /&gt;
==Code==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function reMap(value, low1, high1, low2, high2)&lt;br /&gt;
    return low2 + (value - low1) * (high2 - low2) / (high1 - low1)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&amp;lt;section name=&amp;quot;Clientside Example&amp;quot; class=&amp;quot;client&amp;quot; show=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot; lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local realAlpha = 127.5&lt;br /&gt;
local alpha = reMap(realAlpha, 0, 255, 0, 1)&lt;br /&gt;
&lt;br /&gt;
-- And the &amp;quot;alpha&amp;quot; return 0.5 because 255/2 = 127.5 and 0 to 1 range is 0.5&lt;br /&gt;
&lt;br /&gt;
-- Reverse:&lt;br /&gt;
local alpha = 0.5&lt;br /&gt;
local realAlpha = reMap(realAlpha, 0, 1, 0, 255)&lt;br /&gt;
&lt;br /&gt;
-- And the &amp;quot;realAlpha &amp;quot; return 127.5 because 1/2 = 0.5 and 0 to 255 range is 127.5&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/section&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jayceon</name></author>
	</entry>
</feed>