Library

memory

table

Typed read, write, scan and watch operations against the target process address space. Disabled at runtime via the Configuration tab; every call fails when disabled.

Functions

32

#memory.is_enabled() → boolean

processsince 0.2.1a-alpha

Returns whether the calling thread holds the Memory ScriptPermission. Equivalent to rbxcli.is_permission_granted("Memory").

Aliasesisenabled

#memory.write(address: number, data: buffer) → ProcessWriteResult

processsince 0.2.1a-alpha

Writes the contents of a buffer to address. Requires the Memory Library to be enabled in the Configuration Tab.

Parameters

addressnumber

Address to write to.

databuffer

Buffer whose contents to write.

Errors

  • VMException library disabled -- Memory Library is disabled in the Configuration Tab.

#memory.write_string(address: number, string: string) → ProcessWriteResult

processsince 1.9.1-beta

Attempts to write a string to address. Requires the Memory Library to be enabled in the Configuration Tab.

Parameters

addressnumber

Address to write to.

stringstring

The string to write to the C++ string.

Errors

  • VMException library disabled -- Memory Library is disabled in the Configuration Tab.
  • VMException string too long -- The string that was attempted to be written was too long.

#memory.writeu8(address: number, value: number) → ProcessWriteResult

processsince 0.5.1-alpha

Writes an unsigned 8-bit integer to address. Requires the Memory Library to be enabled in the Configuration Tab.

Parameters

addressnumber

Address to write to.

valuenumber

Value to write.

Errors

  • VMException library disabled -- Memory Library is disabled in the Configuration Tab.

#memory.writebool(address: number, value: boolean) → ProcessWriteResult

processsince 0.5.1-alpha

Writes a boolean to address. Requires the Memory Library to be enabled in the Configuration Tab.

Parameters

addressnumber

Address to write to.

valueboolean

Value to write.

Errors

  • VMException library disabled -- Memory Library is disabled in the Configuration Tab.

#memory.writeu16(address: number, value: number) → ProcessWriteResult

processsince 0.5.1-alpha

Writes an unsigned 16-bit integer to address. Requires the Memory Library to be enabled in the Configuration Tab.

Parameters

addressnumber

Address to write to.

valuenumber

Value to write.

Errors

  • VMException library disabled -- Memory Library is disabled in the Configuration Tab.

#memory.writeu32(address: number, value: number) → ProcessWriteResult

processsince 0.5.1-alpha

Writes an unsigned 32-bit integer to address. Requires the Memory Library to be enabled in the Configuration Tab.

Parameters

addressnumber

Address to write to.

valuenumber

Value to write.

Errors

  • VMException library disabled -- Memory Library is disabled in the Configuration Tab.

#memory.writei8(address: number, value: number) → ProcessWriteResult

processsince 0.5.1-alpha

Writes a signed 8-bit integer to address. Requires the Memory Library to be enabled in the Configuration Tab.

Parameters

addressnumber

Address to write to.

valuenumber

Value to write.

Errors

  • VMException library disabled -- Memory Library is disabled in the Configuration Tab.

#memory.writei16(address: number, value: number) → ProcessWriteResult

processsince 0.5.1-alpha

Writes a signed 16-bit integer to address. Requires the Memory Library to be enabled in the Configuration Tab.

Parameters

addressnumber

Address to write to.

valuenumber

Value to write.

Errors

  • VMException library disabled -- Memory Library is disabled in the Configuration Tab.

#memory.writei32(address: number, value: number) → ProcessWriteResult

processsince 0.5.1-alpha

Writes a signed 32-bit integer to address. Requires the Memory Library to be enabled in the Configuration Tab.

Parameters

addressnumber

Address to write to.

valuenumber

Value to write.

Errors

  • VMException library disabled -- Memory Library is disabled in the Configuration Tab.

#memory.writef32(address: number, value: number) → ProcessWriteResult

processsince 0.5.1-alpha

Writes a 32-bit float to address. Requires the Memory Library to be enabled in the Configuration Tab.

Parameters

addressnumber

Address to write to.

valuenumber

Value to write.

Errors

  • VMException library disabled -- Memory Library is disabled in the Configuration Tab.

#memory.writef64(address: number, value: number) → ProcessWriteResult

processsince 0.5.1-alpha

Writes a 64-bit double to address. Requires the Memory Library to be enabled in the Configuration Tab.

Parameters

addressnumber

Address to write to.

valuenumber

Value to write.

Errors

  • VMException library disabled -- Memory Library is disabled in the Configuration Tab.

#memory.read(address: number, size: number) → ProcessReadResult, buffer | nil

processsince 0.2.1a-alpha

Reads size bytes from address into a buffer. Requires the Memory Library to be enabled in the Configuration Tab.

Parameters

addressnumber

Address to read from.

sizenumber

Number of bytes to read.

Errors

  • VMException library disabled -- Memory Library is disabled in the Configuration Tab.

#memory.readu8(address: number) → ProcessReadResult, number | nil

processsince 0.5.1-alpha

Reads an unsigned 8-bit integer from address. Requires the Memory Library to be enabled in the Configuration Tab.

Parameters

addressnumber

Address to read from.

Errors

  • VMException library disabled -- Memory Library is disabled in the Configuration Tab.

#memory.readbool(address: number) → ProcessReadResult, boolean | nil

processsince 0.5.1-alpha

Reads a boolean from address. Requires the Memory Library to be enabled in the Configuration Tab.

Parameters

addressnumber

Address to read from.

Errors

  • VMException library disabled -- Memory Library is disabled in the Configuration Tab.

#memory.readu16(address: number) → ProcessReadResult, number | nil

processsince 0.5.1-alpha

Reads an unsigned 16-bit integer from address. Requires the Memory Library to be enabled in the Configuration Tab.

Parameters

addressnumber

Address to read from.

Errors

  • VMException library disabled -- Memory Library is disabled in the Configuration Tab.

#memory.readu32(address: number) → ProcessReadResult, number | nil

processsince 0.5.1-alpha

Reads an unsigned 32-bit integer from address. Requires the Memory Library to be enabled in the Configuration Tab.

Parameters

addressnumber

Address to read from.

Errors

  • VMException library disabled -- Memory Library is disabled in the Configuration Tab.

#memory.readi8(address: number) → ProcessReadResult, number | nil

processsince 0.5.1-alpha

Reads a signed 8-bit integer from address. Requires the Memory Library to be enabled in the Configuration Tab.

Parameters

addressnumber

Address to read from.

Errors

  • VMException library disabled -- Memory Library is disabled in the Configuration Tab.

#memory.readi16(address: number) → ProcessReadResult, number | nil

processsince 0.5.1-alpha

Reads a signed 16-bit integer from address. Requires the Memory Library to be enabled in the Configuration Tab.

Parameters

addressnumber

Address to read from.

Errors

  • VMException library disabled -- Memory Library is disabled in the Configuration Tab.

#memory.readi32(address: number) → ProcessReadResult, number | nil

processsince 0.5.1-alpha

Reads a signed 32-bit integer from address. Requires the Memory Library to be enabled in the Configuration Tab.

Parameters

addressnumber

Address to read from.

Errors

  • VMException library disabled -- Memory Library is disabled in the Configuration Tab.

#memory.readf32(address: number) → ProcessReadResult, number | nil

processsince 0.5.1-alpha

Reads a 32-bit float from address. Requires the Memory Library to be enabled in the Configuration Tab.

Parameters

addressnumber

Address to read from.

Errors

  • VMException library disabled -- Memory Library is disabled in the Configuration Tab.

#memory.readf64(address: number) → ProcessReadResult, number | nil

processsince 0.5.1-alpha

Reads a 64-bit double from address. Requires the Memory Library to be enabled in the Configuration Tab.

Parameters

addressnumber

Address to read from.

Errors

  • VMException library disabled -- Memory Library is disabled in the Configuration Tab.

#memory.read_pointer(address: number) → ProcessReadResult, number | nil

processsince 0.5.1-alpha

Reads a pointer-sized unsigned integer from address. Requires the Memory Library to be enabled in the Configuration Tab.

Aliasesreadpointer

Parameters

addressnumber

Address to read from.

Errors

  • VMException library disabled -- Memory Library is disabled in the Configuration Tab.

#memory.read_string(address: number, isCxx: boolean, readCount: number?, readExactly: boolean) → ProcessReadResult, string | nil

processsince 0.2.1a-alpha

Reads a string from address. Pass true for isCxx to read a C++ std::string, false for a null-terminated C string. Requires the Memory Library to be enabled in the Configuration Tab.

Aliasesreadstring

Parameters

addressnumber

Address to read from.

isCxxboolean

Whether to read a C++ std::string (true) or a null-terminated C string (false).

readCountnumber?

Maximum characters to read (C string only).

readExactlyboolean

Whether to read exactly readCount characters (C string only).

Errors

  • VMException library disabled -- Memory Library is disabled in the Configuration Tab.

#memory.scan_signature(signature: string, start: number?, end: number?) → ProcessReadResult, { number }?

yieldsprocesssince 0.2.1a-alpha

Scans Roblox memory for an AOB signature, yielding until it completes. Optionally restricts the scan to the range [start, end]. Requires the Memory Library to be enabled in the Configuration Tab.

Aliasesscansignature

Parameters

signaturestring

AOB signature string to search for.

startnumber?

Start address of the scan range (optional).

endnumber?

End address of the scan range (optional).

Errors

  • VMException library disabled -- Memory Library is disabled in the Configuration Tab.
  • LuaError invalid signature -- The AOB string could not be parsed into a valid signature.
  • LuaError invalid arity -- Called with anything other than 1 or 3 arguments.

#memory.scan_instances(vtableAddress: number) → { number }

processsince 0.2.1a-alpha

Returns all memory addresses whose first pointer matches vtableAddress. Requires the Memory Library to be enabled in the Configuration Tab.

Aliasesscaninstances

Parameters

vtableAddressnumber

VTable address to scan for.

Errors

  • VMException library disabled -- Memory Library is disabled in the Configuration Tab.

#memory.is_valid_address(address: number) → boolean

processsince 0.2.6-alpha

Returns whether address points to a valid, readable page in the Roblox process. Requires the Memory Library to be enabled in the Configuration Tab.

Aliasesisvalidaddress

Parameters

addressnumber

Address to validate.

Errors

  • VMException library disabled -- Memory Library is disabled in the Configuration Tab.

#memory.scan_vtable(name: string) → number | nil

processsince 0.2.1a-alpha

Looks up a vtable by its mangled name and returns its address, or nil if not found. Requires the Memory Library to be enabled in the Configuration Tab.

Aliasesscanvtable

Parameters

namestring

Mangled vtable name to look up.

Errors

  • VMException library disabled -- Memory Library is disabled in the Configuration Tab.

#memory.get_base_address() → number

processsince 0.3.0c-alpha

Returns the base address of the Roblox executable module. Requires the Memory Library to be enabled in the Configuration Tab.

Aliasesgetbaseaddress

Errors

  • VMException library disabled -- Memory Library is disabled in the Configuration Tab.

#memory.watch(address: number, width: number, refresh_rate_in_ms: number) → Event

processsince 1.8.3-free

Registers a deferred watch on width bytes at address. The returned Event fires (old: buffer, new: buffer) whenever the polled snapshot diffs against the previous one. Polling cadence is refresh_rate_in_ms (min 1ms, max width 4096). Deferred firing schedules the handler on the Luau VM thread, so it does not block the polling worker. Watches are dropped on engine reset.

Parameters

addressnumber

Remote address to watch.

widthnumber

Number of bytes to read per tick.

refresh_rate_in_msnumber

Poll interval in milliseconds.

Errors

  • VMException library disabled -- Memory Library is disabled in the Configuration Tab.
  • LuaError invalid width -- width must be in [1, 4096].
  • LuaError invalid refresh -- refresh_rate_in_ms is below the minimum poll interval.

#memory.immediate_watch(address: number, width: number, refresh_rate_in_ms: number) → Event

processsince 1.8.3-free

Same as memory.watch but the handler runs inline on the polling thread while holding the VM lock. Use only for performance-critical paths where the deferred dispatch latency is too high; the handler will block further polling until it returns.

Aliasesimmediatewatch

Parameters

addressnumber

Remote address to watch.

widthnumber

Number of bytes to read per tick.

refresh_rate_in_msnumber

Poll interval in milliseconds.

Errors

  • VMException library disabled -- Memory Library is disabled in the Configuration Tab.
  • LuaError invalid width -- width must be in [1, 4096].
  • LuaError invalid refresh -- refresh_rate_in_ms is below the minimum poll interval.

#memory.create_write_loop(address: number, buffer: buffer, mode: string?) → WriteLoop

processsince 1.8.4-free

Creates a stateful write-loop bound to address with the supplied buffer payload. The loop is created stopped; call :start() to begin writing. mode selects the thread model: "shared" (default) reuses a single background worker shared by every Shared loop, while "exclusive" dedicates a thread to this loop. The buffer can be swapped at any time via :set_buffer(buf) without recreating the loop. Requires the Memory Library to be enabled in the Configuration Tab.

Parameters

addressnumber

Remote address to write to.

bufferbuffer

Payload bytes to write every tick.

modestring?

"shared" (default) or "exclusive".

Errors

  • VMException library disabled -- Memory Library is disabled in the Configuration Tab.