string HttpGet(unk, string url)
Returns fetched HTTP contents

table<Instance> GetObjects(unk, string asseturl)
Returns array of objects from specified asseturl

void info(ToString ...)
Outputs an info message in the dev console

void error2(ToString ...)
Outputs a red message in the dev console

table getgenv()
Returns getfenv()'s __index

table getrenv()
Returns real environment

table getreg()
Returns the Lua registry table

table getgc()
Returns a table of all collectible Lua objects

table gettenv(thread th)
Returns environment of a thread

table<table> getallthreads()
Returns an array of every Lua thread

table getrawmetatable()
Returns the metatable of an object, even if locked

table getsenv/getmenv(Variant<Script, ModuleScript> sc)
Returns the environment of a script or modulescript

table<table> getscriptenvs()
Returns an array of all the environments that have a "script" global

function/bool, nil/string loadstring(string source, string chunkname = nil)
Compiles source (with optional chunkname), and returns the generated LClosure. If the
compilation fails, false will be returned, along with an error message.

function/bool, nil/string loadfile(string path, string chunkname = nil)
Compiles the source of a file (with optional chunkname), and returns the generated LClosure. 
If the compilation fails, false will be returned, along with an error message.

void dofile(string path)
Compiles source (with optional chunkname), and calls LClosure. If the
compilation fails, an error message will display in the dev console.

void setreadonly(table tbl)
Set's a table's readonly property

bool isreadonly(table tbl)
Returns a table's readonly property

bool checkcaller(number level)
Returns if the function calling the function calling checkcaller was created by Calamari.
If a level is specified, it ill return if the function of that level is a Calamari function.

bool checkclosure(function f)
Returns is the closure specified was created by Calamari.

table<Instance> getinstances()
Returns an array of all Instances.

table<Instance> getnilinstances() 
Returns an array of all Instances parented to nil.

Instance createrawinstance(string classname) 
Returns an object based on ClassName, ignoring all typechecks. 

number getcontext()
Returns the current identity.

void setcontext(number identity)
Sets the current identity.

void mkdir(string path)
Creates a folder in the specified path.

void writefile(string path, BinaryString cont)
Writes string/BinaryString to the specified path.

BinaryString readfile(string path)
Returns a string/BinaryString from the specified path.

BinaryString readfileas(string title = nil)
Prompts the user with an OpenFileDialog, and returns the content
of the selected file. If cancelled, this will return nil.

void writefileas(BinaryString cont, string title = nil)
Prompts the user with an OpenFileDialog, and savesthe content
to the selected file. If cancelled, this will not return.

void messagebox(string msg)
Displays a MessageBox with the desired message.

BinaryString serialize(Script sc)
Returns the serialized form of a script represented as LuaU bytecode. 

LClosure deserialize(BinaryString bin)
Returns an LClosure based off of a deserialized dump of LuaU bytecode.

string decompile(Variant<Script, ModuleScript> sc)
Returns the decompiled source of a Script/ModuleScript

string protodump(Variant<Script, ModuleScript> sc)
Returns the dumped proto of any script/modulescript.
NOTE: The protos are represented as C structs, so you may reuse 
them in your code.

void setclipboard(Variant<ToString, Instance> ...)
Sets data to the clipboard. If it's an Instance, it will be copied 
as Instance data and can be pasted into Studio.

Variant<string, Instance> getclipboard()
Returns the data from the clipboard. If the clipboard contains
an instance, it will be loaded via loadinstance.

void printconsole(ToString ...)
Outputs data to the Calamari console. A space character will be placed 
after each individual object.

BinaryString saveinstance(Variant<Instance, table<Instance>> objects = game, string path = nil, bool binary = false)
Returns saved instances. If objects is not specified, game will automatically be entirely saved as a .rbxl. If it is specified, 
and is an Instance, that instance will be saved as a .rbxm(x). If it is specified as a table,  the contained instances will be saved as 
a .rbxm(x). If a path is specified, it will save the file automatically to that path. If binary is false, all data will be represented in raw XML,
and the appropriate file extensions should be .rbxmx. If binary is true, all data will be LZ4 compressed, and the appropriate file paths 
should be .rbxm.

Instance loadinstance(BinaryString cont)
Returns a loaded instance from XML or BinaryString. This function will automatically detect Binary and XML instances.

Variant fireclient(RemoteEvent remote, Variant ...)
Bypasses client check and fires a RemoteEvent.

Variant invokeclient(RemoteFunction remote, Variant ...)
Bypasses client check and fires a RemoteFunction.

Script getscriptcaller(number level)
Returns the script from the callers environment. If level is specified, we retrieve the script from that level.

function getcaller(number level)
Returns the caller. If level is specified, we retrieve that level's caller.

LClosure getscriptfunction(Script sc)
Returns the function of a script.

table<ModuleScript> getmodules()
Returns an array populated with every module script.

table<Script> getscripts()
Returns an array populated with every script.

Closure hookfunction/replaceclosure(Closure f, Closure replacement)
Returns a copy of the original function f. Replaces closure f with replacement.

bool islclosure(Closure f)
Returns if the specified function is an LClosure.

CClosure newcclosure(Closure f)
Returns an enclosed, C version of function f. The returned function may yield, but will return outside
of the line of execution. This function will also be skipped over when calling checkcaller, and will return true 
when sent to checkclosure.

CClosure newcclosureyield(Closure f)
Returns an enclosed, C version of function f. Unlike newcclosure, this function will stay on the (topic) line of execution
when yielded. Unfortunately, the way this function works will break checkclosure, getfenv, and other level-oriented functions.
Aditionally, if this function yields and returns, the value "true" will be placed on the stack when resumed. This should be fixed in a later
update, and if so, please ignore this message.


void keypress(number key)
Simulates a key press

void keyrelease(number key)
Simulates a key release

void mouse1click(number delay)
Simulates a left mouse click

void mouse1press()
Simulates a left mouse press

void mouse1release()
Simulates a left mouse release

void mouse2click(number delay)
Simulates a right mouse click

void mouse2press()
Simulates a right mouse press

void mouse2release()
Simulates a right mouse release

void mousemoverel(number x, number y)
Simulates a mouse moving relative 

void mousescroll(number scroll)
Simulates a mouse scroll

number inverse(number num)
Returns the multiplicative inverse of a given number.

table debug.getfenv(Variant<number level, function f>)
Returns the environment of the specified level or function.

void debug.setfenv(function f, table env)
Sets a functions environment

table debug.getmetatable(Variant obj)
Returns the metatable of an object

void debug.setmetatable(Variant obj, table mt)
Sets the metatable of an object

number bit.badd(number x, number y)
Returns x + y

number bit.band(number x, number y)
Returns x & y

number bit.bdiv(number x, number y)
Returns x / y

number bit.bmul(number x, number y)
Returns x * y

number bit.bnot(number x)
Returns ~x

number bit.bor(number x, number y)
Returns x | y

number bit.bsub(number x, number y)
Returns x - y

number bit.bswap(number x)
Returns swapped byes of X

number bit.bxor(number x, number y)
Returns x ^ y

number bit.lshift(number x, number y)
Returns x << y

number bit.ror(number x, number y)
Returns ROR(x, y)

number bit.rshift(number x, number y)
Returns x >> y

number bit.tobit(number x,)
Returns normalized x

string bit.tohex(number x)
Returns hex representation of x