After being annoyed with constantly having to create functions like recursive filters, proper assertions, and pretty much anything useful with tables, the VevoxelAPI for ROBLOX was born.


In it's simplest form:

api = require(255043196)

But, if you want to require from multiple locations and not have to type the asset ID each time, create a ModuleScript in ServerScriptService with the following:

if script.Parent == game.ServerScriptService then script:Clone().Parent = game.ReplicatedStorage end
return require(255043196)

Requiring this module from either ServerScriptService or ReplicatedStorage will also now yield the API. If you do not need to use the API in any LocalScripts, you can simply comment or remove the first line.

If you want a copy for yourself, you can simply take it for free from the ROBLOX website.


The VevoxelAPI for ROBLOX, like other APIs by Vevox, is available under the MIT License.


Assertions (assert)

Performs assertions on various input, throwing an error if assertions fail. Serves as a more advanced form of Lua's assert function.

All functions accept a number as their final argument. This is optional, and may be used to specify the argument number that failed the assertion.

ok(*, [number])

Asserts that the statement is "truthy" (i.e. not not a == true).

notOk(*, [number])

Asserts that the statement is "falsey" (i.e. not a == true).

equal(*, *, [number])

Asserts that the first argument equals the second argument.

notEqual(*, *, [number])

Asserts that the first argument is not equal to the second argument.

is(*, string, [number])

Asserts that the first argument is of the type given in the second argument.

isA(Instance, string, [number])

Asserts that the first argument IsA class of the second argument.

Async (async)

A few functions involving co-routines and delays.

run(function, [number])

Runs the given function asynchronously after the given time in seconds or immediately. Legacy wrapper for delay.

Class (class)

Object-oriented-style class creation function using Lua metatables. This module does not have children and instead is just a function that is called directly.

@(function|table, [function])

If the first argument is a table, a new class will be created extending the class of the first argument, using the second argument as a constructor. If the first argument is a function, a new class will be created using that function as a constructor.

Constants (const)

Vevoxel API Constants


The string value Hello world!.


The current version of the API, in semver format.


The default filter function for filter calls. Currently a function that always returns true.


A void-returning function that instantly exits


The default gravity for ROBLOX, at 196.2 studs/s^2.

Events (events)


Event Functions (event)

Helper functions for handing events.

debounced(RBXScriptSignal, function, [number])

De-bounces an event, using the given function as a callback. Optionally uses a specified number of seconds to wait between each "bounce".

Instance Functions (instance)


Interface Functions (interface)


Math (math)



String Functions (string)


Table Functions (table)