Skip to content


Standard RoStrap debugging library. Contains better error/warn functions and an implementation of TableToString.

local Debug = Resources:LoadLibrary("Debug")

Library API


string Debug.TableToString(table Table [, bool Multiline = false, string TableName])

Pretty self-explanatory. Table is the table to convert into a string. String TableName puts local TableName = at the beginning. Multiline makes it multiline. Returns a string-readable version of Table.


string Debug.DirectoryToString(RbxObject Object)

A fixed version of GetFullName.


string Debug.Inspect(any Object)

Returns a string representation of Object


string Debug.EscapeString(string String)

Turns strings into Lua-readable format. Returns Objects location in proper Lua format. Useful for when you are doing string-intensive coding. Those minus signs are so tricky!


function Debug.AlphabeticalOrder(table Dictionary)

Iteration function that iterates over a dictionary in alphabetical order. Dictionary is that which will be iterated over in alphabetical order. Not case-sensitive.


for Key, Value in next, Debug.AlphabeticalOrder{Apple = true, Noodles = 5, Soup = false} do
    print(Key, Value)


void Debug.Error(string ErrorMessage, ... strings argumentsToFormatIn)

Standard RoStrap Erroring system. Prefixing ErrorMessage with '!' makes it expect the [error origin script].Name as first parameter in {...}. Past the initial Error string, subsequent arguments get unpacked in a string.format of the error string. Assert falls back on Error. Error blames the latest item on the traceback as the cause of the error. Error makes it clear which Library and function are being misused.


Condition Debug.Assert(Variant Condition, ... strings TupleToSendToError)

Returns Condition or Debug.Error(...)


void Debug.Warn(string ErrorMessage, ... strings argumentsToFormatIn)

Functions the same as Debug.Error, but internally calls warn instead of error.


function Debug.UnionIteratorFunctions(functions ...)

Unions iterator functions in the order they are passed in, without duplicates from overlap.

for i, v in Debug.UnionIteratorFunctions(ipairs, pairs){1,2,3,4, a = 1, b = 2} do
    print(i, v)