Skip to main content

Please ensure you have verified that both the memory address and the value you are reading or writing are correct. Improper use of these memory functions can lead to corrupted data, process crashes, or other unexpected and potentially unstable behavior within the targeted application. Use these functions only if you know exactly what you are doing.

Access

All memory C++ functions are exposed to your Lua script via a single global table named memory. You access individual values by using the dot (.) or bracket ([]) operator on this table.
Memory Usage Example
local memory_read_bytes = memory.read_bytes(0x7FF72D040000, (100 * 8)); -- Dot Operator
memory["write_uint64"](0x7FF72D040000, constants["uint64_max"]); -- Bracket Operator

Functions

This section lists all available C++ functions exposed within the global memory table. These functions allow for low-level reading and writing of specific data types directly to and from process memory addresses.

get_base

Returns the game process’ base address.
get_base(): number

read_int8

Reads a signed 8-bit integer from the specified memory address.
read_int8(number: address): number
address
number
required
The memory address (a number) from which to read the 8-bit value.

read_int16

Reads a signed 16-bit integer from the specified memory address.
read_int16(number: address): number
address
number
required
The memory address (a number) from which to read the 16-bit value.

read_int32

Reads a signed 32-bit integer from the specified memory address.
read_int32(number: address): number
address
number
required
The memory address (a number) from which to read the 32-bit value.

read_int64

Reads a signed 64-bit integer from the specified memory address.
read_int64(number: address): number
address
number
required
The memory address (a number) from which to read the 64-bit value.

read_uint8

Reads an unsigned 8-bit integer from the specified memory address.
read_uint8(number: address): number
address
number
required
The memory address (a number) from which to read the unsigned 8-bit value.

read_uint16

Reads an unsigned 16-bit integer from the specified memory address.
read_uint16(number: address): number
address
number
required
The memory address (a number) from which to read the unsigned 16-bit value.

read_uint32

Reads an unsigned 32-bit integer from the specified memory address.
read_uint32(number: address): number
address
number
required
The memory address (a number) from which to read the unsigned 32-bit value.

read_uint64

Reads an unsigned 64-bit integer from the specified memory address.
read_uint64(number: address): number
address
number
required
The memory address (a number) from which to read the unsigned 64-bit value.

read_bool

Reads a boolean value from the specified memory address.
read_bool(number: address): boolean
address
number
required
The memory address (a number) from which to read the boolean value.

read_float

Reads a 32-bit floating-point number from the specified memory address.
read_float(number: address): number
address
number
required
The memory address (a number) from which to read the float value.

read_double

Reads a 64-bit floating-point number from the specified memory address.
read_double(number: address): number
address
number
required
The memory address (a number) from which to read the double value.

read_vector2

Reads a Vector2 from the specified memory address.
read_vector2(number: address): Vector2
address
number
required
The memory address (a number) from which to read the Vector2 value.

read_vector3

Reads a Vector3 from the specified memory address.
read_vector3(number: address): Vector3
address
number
required
The memory address (a number) from which to read the Vector3 value.

read_vector4

Reads a Vector4 from the specified memory address.
read_vector4(number: address): Vector4
address
number
required
The memory address (a number) from which to read the Vector4 value.

read_matrix3

Reads a Matrix3 from the specified memory address.
read_matrix3(number: address): Matrix3
address
number
required
The memory address (a number) from which to read the Matrix3 value.

read_matrix4

Reads a Matrix4 from the specified memory address.
read_matrix4(number: address): Matrix4
address
number
required
The memory address (a number) from which to read the Matrix4 value.

read_cframe

Reads a CFrame (CoordinateFrame) from the specified memory address.
read_cframe(number: address): CFrame
address
number
required
The memory address (a number) from which to read the CFrame value.

read_rect

Reads a Rect from the specified memory address.
read_rect(number: address): Rect
address
number
required
The memory address (a number) from which to read the Rect value.

read_udim

Reads a UDim from the specified memory address.
read_udim(number: address): UDim
address
number
required
The memory address (a number) from which to read the UDim value.

read_udim2

Reads a UDim2 from the specified memory address.
read_udim2(number: address): UDim2
address
number
required
The memory address (a number) from which to read the UDim2 value.

read_color3

Reads a Color3 from the specified memory address.
read_color3(number: address): Color3
address
number
required
The memory address (a number) from which to read the Color3 value.

read_color4

Reads a Color4 from the specified memory address.
read_color4(number: address): Color4
address
number
required
The memory address (a number) from which to read the Color4 value.

read_string

Reads a string from the specified memory address with a given size.
read_string(number: address, number: size): string
address
number
required
The memory address (a number) from which to read the string.
size
number
required
The size of the string to read in bytes.

read_byte

Reads a single byte (unsigned 8-bit integer) from the specified memory address.
read_byte(number: address): number
address
number
required
The memory address (a number) from which to read the byte value.

read_bytes

Reads multiple bytes from the specified memory address and returns them as a table.
read_bytes(number: address, number: size): table
address
number
required
The memory address (a number) from which to read the bytes.
size
number
required
The number of bytes to read.

write_int8

Writes a signed 8-bit integer to the specified memory address.
write_int8(number: address, number: value): void
address
number
required
The memory address (a number) to which to write the value.
value
number
required
The signed 8-bit integer value to write.

write_int16

Writes a signed 16-bit integer to the specified memory address.
write_int16(number: address, number: value): void
address
number
required
The memory address (a number) to which to write the value.
value
number
required
The signed 16-bit integer value to write.

write_int32

Writes a signed 32-bit integer to the specified memory address.
write_int32(number: address, number: value): void
address
number
required
The memory address (a number) to which to write the value.
value
number
required
The signed 32-bit integer value to write.

write_int64

Writes a signed 64-bit integer to the specified memory address.
write_int64(number: address, number: value): void
address
number
required
The memory address (a number) to which to write the value.
value
number
required
The signed 64-bit integer value to write.

write_uint8

Writes an unsigned 8-bit integer to the specified memory address.
write_uint8(number: address, number: value): void
address
number
required
The memory address (a number) to which to write the value.
value
number
required
The unsigned 8-bit integer value to write.

write_uint16

Writes an unsigned 16-bit integer to the specified memory address.
write_uint16(number: address, number: value): void
address
number
required
The memory address (a number) to which to write the value.
value
number
required
The unsigned 16-bit integer value to write.

write_uint32

Writes an unsigned 32-bit integer to the specified memory address.
write_uint32(number: address, number: value): void
address
number
required
The memory address (a number) to which to write the value.
value
required
The unsigned 32-bit integer value to write.

write_uint64

Writes an unsigned 64-bit integer to the specified memory address.
write_uint64(number: address, number: value): void
address
number
required
The memory address (a number) to which to write the value.
value
number
required
The unsigned 64-bit integer value to write.

write_bool

Writes a boolean value to the specified memory address.
write_bool(number: address, boolean: value): void
address
number
required
The memory address (a number) to which to write the value.
value
boolean
required
The boolean value to write.

write_float

Writes a 32-bit floating-point number to the specified memory address.
write_float(number: address, number: value): void
address
number
required
The memory address (a number) to which to write the value.
value
number
required
The float value to write.

write_double

Writes a 64-bit floating-point number to the specified memory address.
write_double(number: address, number: value): void
address
number
required
The memory address (a number) to which to write the value.
value
number
required
The double value to write.

write_vector2

Writes a Vector2 to the specified memory address.
write_vector2(number: address, Vector2: value): void
address
number
required
The memory address (a number) to which to write the value.
value
Vector2
required
The Vector2 value to write.

write_vector3

Writes a Vector3 to the specified memory address.
write_vector3(number: address, Vector3: value): void
address
number
required
The memory address (a number) to which to write the value.
value
Vector3
required
The Vector3 value to write.

write_vector4

Writes a Vector4 to the specified memory address.
write_vector4(number: address, Vector4: value): void
address
number
required
The memory address (a number) to which to write the value.
value
Vector4
required
The Vector4 value to write.

write_matrix3

Writes a Matrix3 to the specified memory address.
write_matrix3(number: address, Matrix3: value): void
address
number
required
The memory address (a number) to which to write the value.
value
Matrix3
required
The Matrix3 value to write.

write_matrix4

Writes a Matrix4 to the specified memory address.
write_matrix4(number: address, Matrix4: value): void
address
number
required
The memory address (a number) to which to write the value.
value
Matrix4
required
The Matrix4 value to write.

write_cframe

Writes a CFrame (CoordinateFrame) to the specified memory address.
write_cframe(number: address, CFrame: value): void
address
number
required
The memory address (a number) to which to write the value.
value
CFrame
required
The CFrame value to write.

write_rect

Writes a Rect to the specified memory address.
write_rect(number: address, Rect: value): void
address
number
required
The memory address (a number) to which to write the value.
value
Rect
required
The Rect value to write.

write_udim

Writes a UDim to the specified memory address.
write_udim(number: address, UDim: value): void
address
number
required
The memory address (a number) to which to write the value.
value
UDim
required
The UDim value to write.

write_udim2

Writes a UDim2 to the specified memory address.
write_udim2(number: address, UDim2: value): void
address
number
required
The memory address (a number) to which to write the value.
value
UDim2
required
The UDim2 value to write.

write_color3

Writes a Color3 to the specified memory address.
write_color3(number: address, Color3: value): void
address
number
required
The memory address (a number) to which to write the value.
value
Color3
required
The Color3 value to write.

write_color4

Writes a Color4 to the specified memory address.
write_color4(number: address, Color4: value): void
address
number
required
The memory address (a number) to which to write the value.
value
Color4
required
The Color4 value to write.

write_string

Writes a string to the specified memory address.
write_string(number: address, string: value): void
address
number
required
The memory address (a number) to which to write the string.
value
string
required
The string value to write.

write_byte

Writes a single byte (unsigned 8-bit integer) to the specified memory address.
write_byte(number: address, number: value): void
address
number
required
The memory address (a number) to which to write the value.
value
number
required
The byte value to write.

write_bytes

Writes multiple bytes to the specified memory address from a table.
write_bytes(number: address, table: value): void
address
number
required
The memory address (a number) to which to write the bytes.
value
table
required
A table containing the byte values to write.
I