14 min read

Source: Roblox Creator Hub · CC BY 4.0 · View source · Code samples: MIT Imported 2026-10-03. Formatting adapted for this site.

math

This library is an interface to the standard C math library, providing all of its functions inside the math table.

Properties

NameType / ReturnsDescription
math.enumberThe value of Euler's number, e.
math.hugenumberReturns a value larger than or equal to any other numerical value (about 21024).
math.nannumberA NaN value, as defined by the IEEE 754 standard.
math.phinumberThe value of the golden ratio.
math.pinumberThe value of pi.
math.sqrt2numberThe value of the square root of 2.
math.taunumberThe value of tau, which is defined as 2 * math.pi.

math.e

The value of Euler's number, e.

FieldValue
typenumber

math.huge

Returns a value larger than or equal to any other numerical value (about 21024). Dividing a positive number by zero yields this same value.

FieldValue
typenumber

math.nan

A NaN value, as defined by the IEEE 754 standard. Comparing directly to math.nan will always return false; use math.isnan() instead.

FieldValue
typenumber

math.phi

The value of the golden ratio.

FieldValue
typenumber

math.pi

The value of pi.

FieldValue
typenumber

math.sqrt2

The value of the square root of 2.

FieldValue
typenumber

math.tau

The value of tau, which is defined as 2 * math.pi.

FieldValue
typenumber

Functions

NameType / ReturnsDescription
math.absnumberReturns the absolute value of x.
math.acosnumberReturns the arc cosine of x.
math.asinnumberReturns the arc sine of x.
math.atannumberReturns the arc tangent of x in radians.
math.atan2numberReturns the arc tangent of y/x (in radians) while using the signs of both parameters to find the quadrant of the result.
math.ceilintReturns the smallest integer larger than or equal to x.
math.clampnumberReturns a number between min and max, inclusive.
math.cosnumberReturns the cosine of x, assumed to be in radians.
math.coshnumberReturns the hyperbolic cosine of x.
math.degnumberReturns the angle x (given in radians) in degrees.
math.expnumberReturns the value e^x.
math.floorintReturns the largest integer smaller than or equal to x.
math.fmodnumberReturns the remainder of the division of x by y that rounds the quotient towards zero.
math.frexpnumber, intReturns m and e such that x = m*2^e.
math.isfinitebooleanReturns true if x is a finite number.
math.isinfbooleanReturns true if x is positive or negative infinity and false otherwise.
math.isnanbooleanReturns true if x is not a number (NaN) and false otherwise.
math.ldexpnumberReturns x*2^e (e should be an integer).
math.lerpnumberReturns the linear interpolation between a and b.
math.lognumberReturns the logarithm of x using the given base.
math.log10numberReturns the base-10 logarithm of x.
math.mapnumberReturns the value of x mapped from one range to another.
math.maxnumberReturns the maximum value among the numbers passed to the function.
math.minnumberReturns the minimum value among the numbers passed to the function.
math.modfnumber, numberReturns two numbers: the integral part of x and the fractional part of x.
math.noisenumberReturns a Perlin noise value.
math.pownumberReturns x^y.
math.radnumberReturns the angle x (given in degrees) in radians.
math.randomnumberReturns a random number within the range provided.
math.randomseed()Sets x as the seed for the pseudo-random generator.
math.roundnumberReturns the integer with the smallest difference between it and the given number.
math.signintReturns -1 if x is less than 0, 0 if x equals 0, or 1 if x is greater than 0.
math.sinnumberReturns the sine of x, assumed to be in radians.
math.sinhnumberReturns the hyperbolic sine of x.
math.sqrtnumberReturns the square root of x.
math.tannumberReturns the tangent of x, assumed to be in radians.
math.tanhnumberReturns the hyperbolic tangent of x.

math.abs

Returns the absolute value of x.

Parameters

NameTypeDefaultDescription
xnumberThe number to return the absolute value of.

Returns

TypeDescription
numberThe absolute value of x.

math.acos

Returns the arc cosine of x.

Parameters

NameTypeDefaultDescription
xnumberThe cosine value, between -1 and 1.

Returns

TypeDescription
numberThe angle in radians whose cosine is x, in the range [0, pi].

math.asin

Returns the arc sine of x.

Parameters

NameTypeDefaultDescription
xnumberThe sine value, between -1 and 1.

Returns

TypeDescription
numberThe angle in radians whose sine is x, in the range [-pi/2, pi/2].

math.atan

Returns the arc tangent of x in radians.

Parameters

NameTypeDefaultDescription
xnumberThe value to compute the arc tangent of.

Returns

TypeDescription
numberThe arc tangent of x in radians, in the range [-pi/2, pi/2].

math.atan2

Returns the arc tangent of y/x (in radians) while using the signs of both parameters to find the quadrant of the result. It also handles correctly the case of x being zero.

Parameters

NameTypeDefaultDescription
ynumberThe Y coordinate.
xnumberThe X coordinate.

Returns

TypeDescription
numberThe arc tangent of y/x in radians, in the range [-pi, pi].

math.ceil

Returns the smallest integer larger than or equal to x.

Parameters

NameTypeDefaultDescription
xnumberThe number to round up.

Returns

TypeDescription
intThe smallest integer greater than or equal to x.

math.clamp

Returns a number between min and max, inclusive.

Parameters

NameTypeDefaultDescription
xnumberThe number to clamp.
minnumberThe minimum value of the range.
maxnumberThe maximum value of the range; must be greater than or equal to min.

Returns

TypeDescription
numberx constrained to the range [min, max].

math.cos

Returns the cosine of x, assumed to be in radians.

Parameters

NameTypeDefaultDescription
xnumberThe angle in radians.

Returns

TypeDescription
numberThe cosine of x.

math.cosh

Returns the hyperbolic cosine of x.

Parameters

NameTypeDefaultDescription
xnumberThe number to compute the hyperbolic cosine of.

Returns

TypeDescription
numberThe hyperbolic cosine of x.

math.deg

Returns the angle x (given in radians) in degrees.

Parameters

NameTypeDefaultDescription
xnumberThe angle in radians to convert.

Returns

TypeDescription
numberThe angle x converted to degrees.

math.exp

Returns the value e^x.

Parameters

NameTypeDefaultDescription
xnumberThe exponent.

Returns

TypeDescription
numberThe value of e raised to the power x.

math.floor

Returns the largest integer smaller than or equal to x.

Parameters

NameTypeDefaultDescription
xnumberThe number to round down.

Returns

TypeDescription
intThe largest integer less than or equal to x.

math.fmod

Returns the remainder of the division of x by y that rounds the quotient towards zero.

Parameters

NameTypeDefaultDescription
xnumberThe dividend.
ynumberThe divisor.

Returns

TypeDescription
numberThe remainder of the division of x by y.

math.frexp

Returns m and e such that x = m*2^e. e is an integer and the absolute value of m is in the range of 0.5 to 1 (inclusive of 0.5 but exclusive of 1), or zero when x is zero.

Parameters

NameTypeDefaultDescription
xnumberThe number to decompose into mantissa and exponent.

Returns

TypeDescription
numberThe mantissa m, a value whose absolute value is in [0.5, 1) or zero.
intThe exponent e such that x = m * 2^e.

math.isfinite

Returns true if x is a finite number, meaning it is neither NaN nor positive or negative infinity (±math.huge).

Parameters

NameTypeDefaultDescription
xnumberThe number to test.

Returns

TypeDescription
booleanTrue if x is neither NaN nor infinity, false otherwise.

math.isinf

Returns true if x is positive or negative infinity (±math.huge) and false otherwise.

Parameters

NameTypeDefaultDescription
xnumberThe number to test.

Returns

TypeDescription
booleanTrue if x is positive or negative infinity, false otherwise.

math.isnan

Returns true if x is not a number (NaN) and false otherwise.

Parameters

NameTypeDefaultDescription
xnumberThe number to test.

Returns

TypeDescription
booleanTrue if x is NaN, false otherwise.

math.ldexp

Returns x*2^e (e should be an integer).

Parameters

NameTypeDefaultDescription
xnumberThe mantissa value.
eintThe integer exponent.

Returns

TypeDescription
numberThe value x * 2^e.

math.lerp

Returns the linear interpolation between a and b based on the factor t.

This function uses the formula a+(b-a)*t. t is typically between 0 and 1 but values outside this range are acceptable.

Parameters

NameTypeDefaultDescription
anumberThe starting value.
bnumberThe ending value.
tnumberThe interpolation factor, typically between 0 and 1.

Returns

TypeDescription
numberThe interpolated value between a and b.

math.log

Returns the logarithm of x using the given base, or the mathematical constant e if no base is provided (natural logarithm).

Parameters

NameTypeDefaultDescription
xnumberThe number to compute the logarithm of.
basenumber2.7182818The base of the logarithm, the constant e by default.

Returns

TypeDescription
numberThe logarithm of x in the given base.

math.log10

Returns the base-10 logarithm of x.

Parameters

NameTypeDefaultDescription
xnumberThe number to compute the base-10 logarithm of.

Returns

TypeDescription
numberThe base-10 logarithm of x.

math.map

Returns a value that represents x mapped linearly from the input range (inmin to inmax) to the output range (outmin to outmax). This is achieved by determining the relative position of x within the input range and applying that ratio to the output range.

Parameters

NameTypeDefaultDescription
xnumberThe number to be mapped.
inminnumberThe lower bound of the input range.
inmaxnumberThe upper bound of the input range.
outminnumberThe lower bound of the output range.
outmaxnumberThe upper bound of the output range.

Returns

TypeDescription
numberThe value of x mapped to the output range.

math.max

Returns the maximum value among the numbers passed to the function.

Parameters

NameTypeDefaultDescription
xnumberThe first number to compare.
...numberAdditional numbers to compare.

Returns

TypeDescription
numberThe largest value among all arguments.

math.min

Returns the minimum value among the numbers passed to the function.

Parameters

NameTypeDefaultDescription
xnumberThe first number to compare.
...numberAdditional numbers to compare.

Returns

TypeDescription
numberThe smallest value among all arguments.

math.modf

Returns two numbers: the integral part of x and the fractional part of x.

Parameters

NameTypeDefaultDescription
xnumberThe number to split into integral and fractional parts.

Returns

TypeDescription
numberThe integral part of x.
numberThe fractional part of x.

math.noise

Returns a Perlin noise value. The returned value is most often between the range of -1 to 1 (inclusive) but sometimes may be outside that range; if the interval is critical to you, use math.clamp(noise, -1, 1) on the output.

If you leave arguments out, they will be interpreted as zero, so math.noise(1.158) is equivalent to math.noise(1.158, 0, 0) and math.noise(1.158, 5.723) is equivalent to math.noise(1.158, 5.723, 0).

Note that this function uses a Perlin noise algorithm to assign fixed values to coordinates. For example, math.noise(1.158, 5.723) will always return 0.48397532105446 and math.noise(1.158, 6) will always return 0.15315161645412.

If x, y, and z are all integers, the return value will be 0. For fractional values of x, y, and z, the return value will gradually fluctuate between -0.5 and 0.5. For coordinates that are close to each other, the return values will also be close to each other.

The noise repeats with a period of 256 on each axis, so math.noise(x, y, z) and math.noise(x + 256, y, z) return identical values.

Parameters

NameTypeDefaultDescription
xnumberThe X coordinate of the sample point.
ynumber0The Y coordinate of the sample point.
znumber0The Z coordinate of the sample point.

Returns

TypeDescription
numberA Perlin noise value, typically between -1 and 1.

math.pow

Returns x^y (you can also use the expression x^y to compute this value).

Parameters

NameTypeDefaultDescription
xnumberThe base value.
ynumberThe exponent value.

Returns

TypeDescription
numberThe value x raised to the power y.

math.rad

Returns the angle x (given in degrees) in radians.

Parameters

NameTypeDefaultDescription
xnumberThe angle in degrees to convert.

Returns

TypeDescription
numberThe angle x converted to radians.

math.random

When called without arguments, returns a uniform pseudo-random real number in the range of 0 to 1 (inclusive of 0 but exclusive of 1).

When called with an integer number m, returns a uniform pseudo-random integer in the range of 1 to m, inclusive.

When called with two integer numbers m and n, returns a uniform pseudo-random integer in the range of m to n, inclusive.

Internally, this uses a 32-bit PCG (Permuted Congruential Generator) which achieves excellent statistical performance and makes its output hard to predict.

Parameters

NameTypeDefaultDescription
mnumber0When used alone, the upper bound of the integer range (lower bound is 1). When used with n, the lower bound.
nnumber1The upper bound of the integer range.

Returns

TypeDescription
numberA pseudo-random number within the specified range.

math.randomseed

Sets x as the seed for the pseudo-random generator: equal seeds produce equal sequences of numbers.

Parameters

NameTypeDefaultDescription
xnumberThe seed value for the pseudo-random number generator.

Returns

TypeDescription
()

math.round

Returns the integer with the smallest difference between it and the given number. For example, the value 5.8 returns 6.

For values like 0.5 that are equidistant to two integers, the value with the greater difference between it and zero is chosen. In other words, the function "rounds away from zero" such that 0.5 rounds to 1 and -0.5 rounds to -1.

Parameters

NameTypeDefaultDescription
xnumberThe value to be rounded.

Returns

TypeDescription
numberThe nearest integer to x, rounding away from zero for midpoints.

math.sign

Returns -1 if x is less than 0, 0 if x equals 0, or 1 if x is greater than 0.

Parameters

NameTypeDefaultDescription
xnumberThe number to determine the sign of.

Returns

TypeDescription
int-1 if x is negative, 0 if x is zero, or 1 if x is positive.

math.sin

Returns the sine of x, assumed to be in radians.

Parameters

NameTypeDefaultDescription
xnumberThe angle in radians.

Returns

TypeDescription
numberThe sine of x.

math.sinh

Returns the hyperbolic sine of x.

Parameters

NameTypeDefaultDescription
xnumberThe number to compute the hyperbolic sine of.

Returns

TypeDescription
numberThe hyperbolic sine of x.

math.sqrt

Returns the square root of x. You can also use the expression x^0.5 to compute this value.

Parameters

NameTypeDefaultDescription
xnumberThe number to compute the square root of.

Returns

TypeDescription
numberThe square root of x.

math.tan

Returns the tangent of x, assumed to be in radians.

Parameters

NameTypeDefaultDescription
xnumberThe angle in radians.

Returns

TypeDescription
numberThe tangent of x.

math.tanh

Returns the hyperbolic tangent of x.

Parameters

NameTypeDefaultDescription
xnumberThe number to compute the hyperbolic tangent of.

Returns

TypeDescription
numberThe hyperbolic tangent of x.