Version: latest - a1.64.x ⚖️

📐 Vector

A Vector composed of components (X, Y, Z) with floating point precision. Used mainly for entity position.

👐Open Source
This library implementation is Open Sourced on GitHub!
🧑‍💻API Source
This page is auto-generated! The Functions, Properties and Events described here are defined in our GitHub's API Repository! Feel free to commit suggestions and changes to the source .json API files!

info

Vectors are internally and automatically compressed, which reduces it's size in the network up to 90%. Some cool details:

• Vectors parameters in Classes Methods are usually compressed with precision of 1 decimal place (with some exceptions which we need more precision).
• Vectors passed in Remote Events are compressed with precision of 2 decimal places. If you need more precision, we recommend passing them as raw number instead.

🎒 Examples​

``local new_vector = Vector(1452.5, 512, 943.1)``

🛠 Constructors​

Default Constructor

``local my_vector = Vector(X?, Y?, Z?)``
TypeNameDefaultDescription
number`X``0`X Coordinate
number`Y``X`Y Coordinate
number`Z``X`Z Coordinate

🧽 Properties​

TypeNameDescription
number`X`X Coordinate
number`Y`Y Coordinate
number`Z`Z Coordinate

🦠 Functions​

info

This structure supports `+`, `-`, `*`, `/`, `^`, `==`, and `tostring` operations.

ReturnsNameDescription
boolean`Equals`Check against another vector for equality, within specified error limits
number`Distance`Distance between two points
number`DistanceSquared`Squared distance between two points
Vector`GetUnsafeNormal`Calculates normalized version of vector without checking for zero length
Vector`GetSafeNormal`Gets a normalized copy of the vector, checking it is safe to do so based on the length
boolean`IsNearlyZero`Checks whether vector is near to zero within a specified tolerance
boolean`IsZero`Checks whether all components of the vector are exactly zero
boolean`Normalize`Normalize this vector in-place if it is larger than a given tolerance. Leaves it unchanged if not
number`Size`Get the length (magnitude) of this vector
number`SizeSquared`Get the squared length of this vector
Rotator`Rotation`Returns the orientation corresponding to the direction in which the vector points

`Equals`

Check if the vector is equal to another vector, within specified error limits

— Returns boolean (Are the vectors equal or not).

``local ret = my_vector:Equals(other, tolerance?)``
TypeParameterDefaultDescription
Vector`other` Required parameter The vector to compare to
number`tolerance?``0.000001`The error limits

`Distance`

Returns the distance of 2 vectors

— Returns number (The distance betweem the vectors).

``local ret = my_vector:Distance(other)``
TypeParameterDefaultDescription
Vector`other` Required parameter The vector to get the distance to

`DistanceSquared`

Return the squared distance of 2 vectors

— Returns number (The squared distance betweem the vectors).

``local ret = my_vector:DistanceSquared(other)``
TypeParameterDefaultDescription
Vector`other` Required parameter The vector to get the squared distance to

`GetUnsafeNormal`

Returns the normalized version of vector without checking for zero length

— Returns Vector (The unsafe normal).

``local ret = my_vector:GetUnsafeNormal()``

`GetSafeNormal`

Returns a normalized copy of the vector, checking it is safe to do so based on the length

— Returns Vector (The safe normal).

``local ret = my_vector:GetSafeNormal()``

`IsNearlyZero`

Checks whether vector is near to zero within a specified tolerance

— Returns boolean (If the bool is near to zero).

``local ret = my_vector:IsNearlyZero(tolerance?)``
TypeParameterDefaultDescription
number`tolerance?``0.000001`The error limits

`IsZero`

Checks whether all components of the vector are exactly zero

— Returns boolean (If all components of the vector are exactly zero).

``local ret = my_vector:IsZero()``

`Normalize`

Normalize this vector in-place if it is larger than a given tolerance. Leaves it unchanged if not

— Returns boolean (If the vector has been modified).

``local ret = my_vector:Normalize()``

`Size`

Get the length (magnitude) of this vector

— Returns number (The lenght of the vector).

``local ret = my_vector:Size()``

`SizeSquared`

Get the squared length of this vector

— Returns number (The squared length of the vector).

``local ret = my_vector:SizeSquared()``

`Rotation`

Returns the orientation corresponding to the direction in which the vector points

— Returns Rotator (The orientation of the vector).

``local ret = my_vector:Rotation()``