Skip to main content


Utils is a utility containing commonly reused functions. Instance is accessible through the BdApi.




Builds a classname string from any number of arguments. This includes arrays and objects. When given an array all values from the array are added to the list. When given an object they keys are added as the classnames if the value is truthy. Copyright (c) 2018 Jed Watson MIT License

argument...Anyanything that should be used to add classnames.

Returns: void


Returns a function, that, as long as it continues to be invoked, will not be triggered. The function will be called after it stops being called for N milliseconds. Adapted from the version by David Walsh (


Returns: void


Takes a string of html and escapes it using the brower's own escaping mechanism.

htmlStringhtml to be escaped

Returns: void


Deep extends an object with a set of other objects. Objects later in the list of extenders have priority, that is to say if one sets a key to be a primitive, it will be overwritten with the next one with the same key. If it is an object, and the keys match, the object is extended. This happens recursively.

extendeeobjectObject to be extended
extenders...objectObjects to extend with

Returns: object - - A reference to extendee


Finds a value, subobject, or array from a tree that matches a specific filter. This is a DFS.

treeobjectnoneTree that should be walked
searchFiltercallablenoneFilter to check against each object and subobject
optionsobjectnoneAdditional options to customize the search
options.walkableArray.<string>|nullnoneArray of strings to use as keys that are allowed to be walked on. Null value indicates all keys are walkable
options.ignoreArray.<string>[]Array of strings to use as keys to exclude from the search, most helpful when walkable = null.

Returns: void