Dev group


The Dev API is a dangerous API! It allows direct memory access to anywhere in the game. It is very easy to crash your game by reading from or writing to the wrong addresses. If you do not know exactly what you're doing, steer clear of this API altogether. It is also intentionally not as documented for the same reasons.
Global functions

void Dev::Sleep(uint ms)

uint64 Dev::BaseAddress()

uint64 Dev::BaseAddressEnd()

uint64 Dev::FindPattern(const string&in pattern)

string Dev::Patch(uint64 ptr, const string&in pattern) Returns the original bytes as a backup.

Dev::HookInfo@ Dev::Hook(uint64 ptr, int padding, const string&in func) Hooks directly into game code. This requires manual unhooking in the OnDestroyed function. The function accepts arbitrarily-ordered parameters named as x86 registers. For example, you could set a parameter 'CMwNod@ rcx'.

void Dev::Unhook(Dev::HookInfo@ hook) Unhooks a registered hook. You're required to manually call this in the OnDestroyed function.

void Dev::InterceptProc(const string&in className, const string&in procName, Dev::ProcIntercept@ func)

void Dev::ResetInterceptProc(const string&in className, const string&in procName)

void Dev::ResetInterceptProc(const string&in className, const string&in procName, Dev::ProcIntercept@ func)

uint64 Dev::Allocate(uint size, bool executable = false)

void Dev::Free(uint64 ptr)

void Dev::DebugBreak()

string Dev::Read(uint64 ptr, uint64 size)

int8 Dev::ReadInt8(uint64 ptr)

int16 Dev::ReadInt16(uint64 ptr)

int Dev::ReadInt32(uint64 ptr)

int64 Dev::ReadInt64(uint64 ptr)

uint8 Dev::ReadUInt8(uint64 ptr)

uint16 Dev::ReadUInt16(uint64 ptr)

uint Dev::ReadUInt32(uint64 ptr)

uint64 Dev::ReadUInt64(uint64 ptr)

float Dev::ReadFloat(uint64 ptr)

double Dev::ReadDouble(uint64 ptr)

vec2 Dev::ReadVec2(uint64 ptr)

vec3 Dev::ReadVec3(uint64 ptr)

vec4 Dev::ReadVec4(uint64 ptr)

iso3 Dev::ReadIso3(uint64 ptr)

iso4 Dev::ReadIso4(uint64 ptr)

string Dev::ReadString(uint64 ptr, uint length)

void Dev::Write(uint64 ptr, const string&in pattern)

void Dev::Write(uint64 ptr, int8 i)

void Dev::Write(uint64 ptr, int16 i)

void Dev::Write(uint64 ptr, int i)

void Dev::Write(uint64 ptr, int64 i)

void Dev::Write(uint64 ptr, uint8 i)

void Dev::Write(uint64 ptr, uint16 i)

void Dev::Write(uint64 ptr, uint i)

void Dev::Write(uint64 ptr, uint64 i)

void Dev::Write(uint64 ptr, float f)

void Dev::Write(uint64 ptr, double f)

void Dev::Write(uint64 ptr, const vec2&in v)

void Dev::Write(uint64 ptr, const vec3&in v)

void Dev::Write(uint64 ptr, const vec4&in v)

void Dev::Write(uint64 ptr, const iso3&in v)

void Dev::Write(uint64 ptr, const iso4&in v)

void Dev::WriteString(uint64 ptr, const string&in str)

int8 Dev::GetOffsetInt8(const ?&in nod, uint offset)

int16 Dev::GetOffsetInt16(const ?&in nod, uint offset)

int Dev::GetOffsetInt32(const ?&in nod, uint offset)

int64 Dev::GetOffsetInt64(const ?&in nod, uint offset)

uint8 Dev::GetOffsetUint8(const ?&in nod, uint offset)

uint16 Dev::GetOffsetUint16(const ?&in nod, uint offset)

uint Dev::GetOffsetUint32(const ?&in nod, uint offset)

uint64 Dev::GetOffsetUint64(const ?&in nod, uint offset)

float Dev::GetOffsetFloat(const ?&in nod, uint offset)

double Dev::GetOffsetDouble(const ?&in nod, uint offset)

vec2 Dev::GetOffsetVec2(const ?&in nod, uint offset)

vec3 Dev::GetOffsetVec3(const ?&in nod, uint offset)

vec4 Dev::GetOffsetVec4(const ?&in nod, uint offset)

iso3 Dev::GetOffsetIso3(const ?&in nod, uint offset)

iso4 Dev::GetOffsetIso4(const ?&in nod, uint offset)

CMwNod@ Dev::GetOffsetNod(const ?&in nod, uint offset)

string Dev::GetOffsetString(const ?&in nod, uint offset)

void Dev::SetOffset(const ?&in nod, uint offset, const int8&in v)

void Dev::SetOffset(const ?&in nod, uint offset, const int16&in v)

void Dev::SetOffset(const ?&in nod, uint offset, const int&in v)

void Dev::SetOffset(const ?&in nod, uint offset, const int64&in v)

void Dev::SetOffset(const ?&in nod, uint offset, const uint8&in v)

void Dev::SetOffset(const ?&in nod, uint offset, const uint16&in v)

void Dev::SetOffset(const ?&in nod, uint offset, const uint&in v)

void Dev::SetOffset(const ?&in nod, uint offset, const uint64&in v)

void Dev::SetOffset(const ?&in nod, uint offset, const float&in v)

void Dev::SetOffset(const ?&in nod, uint offset, const double&in v)

void Dev::SetOffset(const ?&in nod, uint offset, const vec2&in v)

void Dev::SetOffset(const ?&in nod, uint offset, const vec3&in v)

void Dev::SetOffset(const ?&in nod, uint offset, const vec4&in v)

void Dev::SetOffset(const ?&in nod, uint offset, const iso3&in v)

void Dev::SetOffset(const ?&in nod, uint offset, const iso4&in v)

void Dev::SetOffset(const ?&in nod, uint offset, CMwNod@ newNod)

void Dev::SetOffset(const ?&in nod, uint offset, const string&in str)