-
-
Notifications
You must be signed in to change notification settings - Fork 6
Lua API Overview
- Most of this is found within other popular software of the same kind as ours. Most of the functions existed in the previous iteration of Synapse.
- Some functions may be defined under several names (for example,
checkcalleris also defined asis_protosmasher_caller) for compatibility with scripts written for other software. Those other definitions are not included in this document for the sake of organization.
<table> getgenv(<void>)Returns the environment that will be applied to each script ran by Synapse.
<table> getrenv(<void>)
Returns the global Roblox environment for the LocalScript state.
<table> getreg(<void>)
Returns the Lua registry.
<table> getgc(<void>)
Returns a copy of the Lua GC list.
<table> getinstances(<void>)
Returns a list of all instances within the game.
<table> getnilinstances(<void>)
Returns a list of all instances parented to nil within the game.
<table> getscripts(<void>)
Returns a list of all scripts within the game.
<table> getloadedmodules(<void>)
Returns all ModuleScripts loaded in the game.
<table> getconnections(<Signal> obj)
Gets a list of connections to the specified signal. You can then use :Disable and :Enable on the connections to disable/enable them.
<bool> isrbxactive(<void>)
Returns if the Roblox window is in focus. This must return true for any other mouse/keyboard function to work.
<void> keypress(<int> keycode)
Simulates a key press for the specified keycode. For more information: https://docs.microsoft.com/en-us/windows/desktop/inputdev/virtual-key-codes
<void> keyrelease(<int> key)
Releases key on the keyboard. You can access the int key values on MSDN.
<void> mouse1click(<void>)
Simulates a full left mouse button press.
<void> mouse1press(<void>)
Simulates a left mouse button press without releasing it.
<void> mouse1release(<void>)
Simulates a left mouse button release.
<void> mouse2click(<void>)
Simulates a full right mouse button press.
<void> mouse2press(<void>)
Clicks down on the right mouse button.
<void> mouse2release(<void>)
Simulates a right mouse button release.
<void> mousescroll(<signed int> px)
Scrolls the mouse wheel virtually by px pixels.
<void> mousemoverel(<int> x, <int> y)
Moves the mouse cursor relatively to the current mouse position by coordinates x and y.
<function> hookfunction(<function> old, <function> hook)
Hooks function 'old', replacing it with the function 'hook'. The old function is returned, you must use it to call the function further.
<function> newcclosure(<function> f)
Pushes a new CClosure that invokes function f upon call. Used for metatable hooks.
<string> readfile(<string> path)
Reads the contents of the file located at path and returns it. If the file does not exist, it errors.
<void> writefile(<string> filepath, <string> contents)
Writes contents to the supplied filepath.
<void> appendfile(<string> path, <string> content)
Appends content to the file contents at path. If the file does not exist, it errors.
<function> loadfile(<string> path)
Loads in the contents of a file as a chunk and returns it if compilation is successful. Otherwise, if an error has occured during compilation, nil followed by the error message will be returned.
<table> getsenv(<LocalScript, ModuleScript> Script)
Returns the environment of Script. Returns nil if the script is not running.
<LocalScript, ModuleScript, nil> getcallingscript(<void>)
Gets the script that is calling this function.
<table, nil> getrawmetatable(<T> value)
Retrieve the metatable of value irregardless of value's metatable's __metatable field. Returns nil if it doesn't exist.
<void> setreadonly(<table> table, <bool> ro)
Sets table's read-only value to ro
<bool> isreadonly(<table> table)
Returns table's read-only condition.
<function> loadstring(<string> chunk, [<string> chunkname])
Loads chunk as a Lua function and returns it if compilation is succesful. Otherwise, if an error has occured during compilation, nil followed by the error message will be returned.
<bool> checkcaller(<void>)
Returns true if the current thread was made by Synapse. Useful for metatable hooks.
<bool> islclosure(<function> f)
Returns true if f is an LClosure
<string> dumpstring(<string> Script)
Returns the Roblox formatted bytecode for source string Script.
<string> decompile(<LocalScript, ModuleScript, function> Script, bool Bytecode = false)
Decompiles Script and returns the decompiled script. If the decompilation fails, then the return value will be an error message.
<void> setclipboard(<string> value)
Sets value to the clipboard.
<void> setnonreplicatedproperty(<Instance> obj, <string> prop, <T> value)
Sets the prop property of obj, not replicating to the server. Useful for anticheat bypasses.
<table> getspecialinfo(<Instance> obj)
Gets a list of special properties for MeshParts, UnionOperations, and Terrain instances.
<void> saveinstance(<table> t = { noscripts = false, mode = "optimized" })
Saves the Roblox game into your workspace folder. You can use table t to customize options for this.
<table> debug.getlocals(<int> lvl)
Returns a table containing the upvalues at level lvl.
<T> debug.getlocal(<int> lvl, <string> localname)
Returns the local with name localname in level lvl.
<void> debug.setlocal(<int> lvl, <string> localname, <T> value)
Set local localname to value value at level lvl.
<table> debug.getconstants(<function, int> fi)
Retrieve the constants in function fi or at level fi.
<T> debug.getconstant(<function, int> fi, <int> idx)
Returns the constant at index idx in function fi or level fi.
<void> debug.setconstant(<function, int> fi, <string> consname, <int, bool, nil, string> value)
Set constant consname to tuple value at level or function fi.
<table> debug.getupvalues(<function, int> fi)
Retrieve the upvalues in function fi or at level fi.
<T> debug.getupvalue(<function, int> fi, <string> upval)
Returns the upvalue with name upval in function or level fi.
<void> debug.setupvalue(<function, int> fi, <string> upvname, <T> value)
Set upvalue upvname to value value at level or function fi.
<table> debug.setmetatable(<T> o, <table> mt)
Set the metatable of o to mt.
<table> debug.getregistry(<void>)
Returns the Lua registry.
debug.getinfo(<function, int> fi, <string> w = "flnSu") Returns a table of info pertaining to the Lua function fi.
<int> bit.bdiv(<uint> dividend, <uint> divisor)
Divides dividend by divisor, remainder is not returned.
<int> bit.badd(<uint> a, <uint> b)
Adds a with b, allows overflows (unlike normal Lua).
<int> bit.bsub(<uint> a, <uint> b)
Subtracts a with b, allows overflows (unlike normal Lua).
<int> bit.rshift(<uint> val, <uint> by)
Does a right shift on val using by.
<int> bit.band(<uint> val, <uint> by)
Does a logical AND (&) on val using by.
<int> bit.bor(<uint> val, <uint> by)
Does a logical OR (|) on val using by.
<int> bit.bxor(<uint> val, <uint> by)
Does a logical XOR (⊕) on val using by.
<int> bit.bnot(<uint> val)
Does a logical NOT on val.
<int> bit.bmul(<uint> val, <uint> by)
Multiplies val using by, allows overflows (unlike normal Lua)
<int> bit.bswap(<uint> val)
Does a bitwise swap on val.
<int> bit.tobit(<uint> val)
Converts val into proper form for bitwise operations.
<int> bit.ror(<uint> val, <uint> by)
Rotates right val using by.
<int> bit.lshift(<uint> val, <uint> by)
Does a left shift on val using by.
<string> bit.tohex(<uint> val)
Converts val to a hex string.
<string> syn.crypt.encrypt(<string> data, <string> key)
Encrypt's data with key.
<string> syn.crypt.decrypt(<string> data, <string> key)
Decrypt's data with key.
<string> syn.crypt.base64.encode(<string> data)
Encodes data with base64.
<string> syn.crypt.base64.decode(<string> data)
Decodes data with base64.
<string> syn.crypt.hash(<string> data)
Hashes data.
<void> syn.cache_replace(<Instance> obj, <Instance> t_obj)
Replace obj in the instance cache with t_obj.
<void> syn.cache_invalidate(<Instance> obj)
Invalidate obj's cache entry, forcing a recache upon the next lookup.
<void> syn.set_thread_identity(<int> n)
Sets the current thread identity after a Task Scheduler cycle is performed. (Note: call wait() after invoking this function for the expected results)
<int> syn.get_thread_identity(<void>)
Returns the current thread identity.
<bool> syn.is_cached(<Instance> obj)
Returns true if obj is currently cached within the registry.
<void> syn.write_clipboard(<string> content)
Writes content to the current Windows clipboard.
<WebSocket> syn.open_web_socket(<string> name)
Open's the Synapse WebSocket with channel name. This function will not exist if the user did not enable WebSocket support in theme.json.
-
_Gandsharedare replaced by Synapse with its own copy for security reasons. Usegetrenv()._G/getrenv().sharedif you want to access the original. - Always use
newcclosurefor metatable hooks - this is required to prevent detection methods and internal checks.
Sources:
- https://web.archive.org/web/20201121194148/https://github.com/LoukaMB/SynapseX/wiki
- https://web.archive.org/web/20201121194201/https://github.com/LoukaMB/SynapseX/wiki/Introduction
- https://web.archive.org/web/20201121194200/https://github.com/LoukaMB/SynapseX/wiki/Lua-API-Overview
- https://web.archive.org/web/20201121194159/https://github.com/LoukaMB/SynapseX/wiki/Theme-API
- https://web.archive.org/web/20201121194159/https://github.com/LoukaMB/SynapseX/wiki/WebSocket-API
- https://web.archive.org/web/20201121194159/https://github.com/LoukaMB/SynapseX/wiki/SxLib-API