Skip to main content

Global Functions

Description

Global Lua standard library functions and miscellaneous extensions to them.

Functions

assert

assert(expression, message: string)

If the the first argument is false or nil, an error is thrown with the second argument as the message. Otherwise all the arguments are returned.

collectgarbage

collectgarbage(opt: string, arg)

This function is a generic interface to the garbage collector. It performs different functions according to its first argument, opt:

  • "collect": performs a full garbage-collection cycle. This is the default option.
  • "stop": stops the garbage collector.
  • "restart": restarts the garbage collector.
  • "count": returns the total memory in use by Lua (in Kbytes).
  • "step": performs a garbage-collection step. The step "size" is controlled by arg (larger values mean more steps) in a non-specified way. If you want to control the step size you must experimentally tune the value of arg. Returns true if the step finished a collection cycle.
  • "setpause": sets arg as the new value for the pause of the collector (see §2.10). Returns the previous value for pause.
  • "setstepmul": sets arg as the new value for the step multiplier of the collector (see §2.10). Returns the previous value for step.

Modifying garbage collector settings is generally not recommended, unless you know what you are doing.

defer

defer(callback)

Registers a function to be called at lua shutdown/reload, equivalent to client.set_event_callback("shutdown", callback).

error

error(message: string, level: number)

Terminates the last protected function called and outputs message as an error message. If the function containing the error is not called in a protected function (pcall), then the script which called the function will terminate. The error function itself never returns and acts like a script error. The level argument specifies how to get the error position. With level 1 (the default), the error position is where the error function was called. Level 2 points the error to where the function that called error was called; and so on. Passing a level 0 avoids the addition of error position information to the message.

getfenv

getfenv(stack): table

Returns the environment of the function or stack level passed to it.

getmetatable

getmetatable(tbl: table): table

Returns the metatable of the given table if it has one, otherwise returns nil. If t does have a metatable, and the __metatable metamethod is set, it returns that value instead.

ipairs

ipairs(tbl: table): function, table, number

Returns three values: an iterator function, the table tbl and the number 0. Each time the iterator function is called, it returns the next numerical index-value pair in the table.

When used in a generic for-in-loop, the return values can be used to iterate over each numerical index in the table.

load

load(chunk: string, chunkname: string, mode: string, env: table): function, string

Loads a chunk of Lua source code from a string or a "reader" function.

If there are no syntactic errors, returns the compiled chunk as a function; otherwise, returns nil plus the error message.

If chunk is a function, load calls it repeatedly to get the chunk pieces. Each call to chunk must return a string that concatenates with previous results. A return of an empty string, nil, or no value signals the end of the chunk.

next

next(t: table, key: any): , value

Returns the first key/value pair in the t table. If a key argument was specified then returns the next element in the table based on the key provided.

If the table is empty or the specified key was the last key in the array, it returns nil. This means that you can use next(t) to check whether a table is empty.

The order in which the indices are enumerated is not specified, even for numeric indices. To traverse an array-like table in order, use a numerical for loop or ipairs.

pairs

pairs(tbl: table): function, table, number

Returns three values: an iterator function, the table tbl and nil. Each time the iterator function is called, it returns the next key-value pair in the table.

When used in a generic for-in-loop, the return values can be used to iterate over all key-value pairs in the table. The iteration order is not specified and tables do not keep their insertion order.

pcall

pcall(func, ...): boolean,

Calls the function func in "protected mode". This means that any error inside func is not propagated; instead, pcall catches the error and returns back to the caller. If the first return value is true, the function call succeeded with no errors and the other return values will be the return values from the function. If the first return value is false, the second one will be the error message.

print

print(...)

Logs a message to the console. Equivalent to client.log.

printf

printf(fmt: string, ...)

Logs a formatted message to the console. It accepts the same parameters as string.format

rawequal

rawequal(v1: any, v2: any): boolean

Checks whether v1 is equal to v2, without invoking any metamethod.

rawget

rawget(tbl: table, key):

Gets the raw value of a table field, without invoking any __index metamethod.

rawlen

rawlen(tbl: table): number

Gets the raw length of a table, without invoking the __len metamethod.

rawset

rawset(tbl: table, key, value)

Sets the raw value of a table field, without invoking any __newindex metamethod.

readfile

readfile(filename: string): string

Returns the contents of the file, or nil if the file doesn't exist.

require

require(modname: string):

Loads a Lua module. The package.path is searched for the module, and the first file found is loaded. If the module returns a value, that value is returned by require, otherwise true is returned. Workshop libraries can be loaded using require "gamesense/<id>", if you are subscribed to them.

select

select(index: number, ...)

Returns all the arguments passed to it after the index. Alternatively, if the string "#" is passed as the first argument, it returns the total number of arguments passed to it (including nils).

setfenv

setfenv(stack, env: table): function

Sets the environment of the given function to the given table.

setmetatable

setmetatable(tbl: table, metatable: table)

Sets the metatable of the given table tbl to metatable. If metatable is nil, the metatable of t is removed. Finally, this function returns the table tbl which was passed to it. If tbl already has a metatable whose __metatable metamethod is set, calling this on tbl raises an error.

tonumber

tonumber(value, base: number)

Tries to convert its argument to a number. If the argument is a number, a string or a number cdata object convertible to a number, then tonumber returns this number; otherwise, it returns nil.

tostring

tostring(value): string

Receives an argument of any type and converts it to a string in a reasonable format. For complete control of how numbers are converted, use string.format. If the metatable of value has a __tostring metamethod, then it will be called with value as the only argument and will return the result.

toticks

toticks(time: number): number

Converts time (seconds) to ticks.

totime

totime(ticks: number): number

Converts ticks to time. Return value is in seconds.

type

type(value): string

Returns the type of its only argument, coded as a string. The possible results of this function are "nil" (a string, not the value nil), "number", "string", "boolean", "table", "function", "thread", and "userdata".

unpack

unpack(tbl: table, i: number, j: number):

Returns the items with numeric keys from the given table tbl, from i to j.

vtable_bind

vtable_bind(module_name: string, interface_name: string, index: number, typestring: string, ...): function

Utility for calling virtual functions on FFI objects. This variant works with Interfaces and doesn't require passing the this-pointer as the first argument every time.

vtable_thunk

vtable_thunk(index: number, typestring: string, ...): function

Utility for calling virtual functions on FFI objects. This variant takes the this-pointer as the first argument and grabs the virtual function from it when called.

writefile

writefile(filename: string, text: string)

Overwrites the file with the passed text. The file is created if it doesn't exist.

xpcall

xpcall(func, handler, ...): boolean,

Calls the function func in "protected mode". This means that any error inside func is not propagated; instead, xpcall catches the error, calls the "error handler" function passed to it, then returns back to the caller. If the first return value is true, the function call succeeded with no errors and the other return values will be the return values from the function. If the first return value is false, the second one will be the error message.