Pointer wraps a single memory address. You get one from ptr(), from
Memory.scan(), or by following another pointer - and then use it to
navigate and read game memory.
.address is always a BigInt (0n, 0x12345678n, etc.).
All methods accept number, BigInt, or another Pointer as an address
argument - the engine converts automatically.Overview
Arithmetic
Offset and compare pointers with add, sub, and equals.
Dereference
Follow a pointer to get the value it points to.
Resolve
Walk multi-level pointer chains in one call.
Read
Read typed scalars, strings, arrays, or raw byte snapshots.
Properties
Creating a pointer
ptr() is the idiomatic shorthand in scripts.
Pointer.null
A pre-built null pointer - use it as a sentinel or default value.Arithmetic
.add
Pointer shifted forward by offset bytes. The original is
not modified.
.sub
Pointer shifted backward by offset bytes.
.equals
true if both pointers point to the same address.
Dereference
.deref / .derefRaw
Pointer. Use deref in most cases - derefRaw forces a live read.
Resolve
.resolve / .resolveRaw
add + deref calls manually.
Read
.read / .readRaw
readRaw mirrors every overload but bypasses the cache.
Reads that fail (bad address, access denied) throw an error. Check
.isNull before reading from a pointer you’re not sure about.Type names
Snapshot
Snapshot is what .read(byteCount) returns - a frozen copy of raw bytes
together with helpers to interpret them.
Accessor
.at(offset) returns an object whose getter properties decode bytes in-place: