===== Memory Namespace =====
The memory namespace contains functions that interact with the game clients memory.
You can access these functions via:
ashita.memory.
----
==== ashita.memory.get_baseaddr ====
==== ashita.memory.get_base ====
Obtains the base address of a module.
number ashita.memory.get_base(name);
* **Parameters**
* name - (string) The name of the module to obtain the base address of.
* **Returns**
* number - The base address if valid, 0 otherwise.
----
==== ashita.memory.get_modulesize ====
==== ashita.memory.get_size ====
Obtains the size of a module.
number ashita.memory.get_size(name);
* **Parameters**
* name - (string) The name of the module to obtain the size of.
* **Returns**
* number - The size if valid, 0 otherwise.
----
==== ashita.memory.unprotect_memory ====
==== ashita.memory.unprotect ====
Unprotects an area of memory, setting its page access to 'PAGE_EXECUTE_READWRITE'.
bool ashita.memory.unprotect(addr, size);
* **Parameters**
* addr - (number) The starting address to unprotect.
* size - (number) The size of data to unprotect.
* **Returns**
* bool - True on success, false otherwise.
----
==== ashita.memory.allocate_memory ====
==== ashita.memory.allocate ====
==== ashita.memory.alloc ====
Allocates an area of memory.
number ashita.memory.alloc(size);
* **Parameters**
* size - (number) The size of data to allocate.
* **Returns**
* number - The base address of the new allocation on success, nil otherwise.
----
==== ashita.memory.deallocate_memory ====
==== ashita.memory.deallocate ====
==== ashita.memory.dealloc ====
Deallocates an area of memory.
bool ashita.memory.dealloc(addr, size);
* **Parameters**
* addr - (number) The base address of the memory to deallocate.
* size - (number) The size of data to deallocate.
* **Returns**
* bool - True on success, false otherwise.
----
==== ashita.memory.findpattern ====
==== ashita.memory.find ====
Scans memory for a given pattern.
number ashita.memory.find(baseAddress, size, pattern, offset, usage);
* **Parameters**
* baseAddress - (number) The base address of the memory to scan within.
* size - (number) The size of data to scan within.
* pattern - (string) The pattern to scan for.
* offset - (number) The offset to add to the result, if found.
* usage - (number) The usage count to use if the pattern is expected to be found more than once.
* **Returns**
* number - The address where the pattern was found on success, 0 otherwise.
number ashita.memory.find(moduleName, size, pattern, offset, usage);
* **Parameters**
* moduleName - (string) The name of the module to scan within. (Using this method of this function will use the base and size of the module automatically.)
* size - (number) Unused, this can be left 0 when using this style of the method.
* pattern - (string) The pattern to scan for.
* offset - (number) The offset to add to the result, if found.
* usage - (number) The usage count to use if the pattern is expected to be found more than once.
* **Returns**
* number - The address where the pattern was found on success, 0 otherwise.
----
==== ashita.memory.read_uint8 ====
Reads a value from memory at the given address.
number ashita.memory.read_uint8(addr);
* **Parameters**
* addr - (number) The address to read the value of.
* **Returns**
* number - The value of the address, 0 on error.
----
==== ashita.memory.read_uint16 ====
Reads a value from memory at the given address.
number ashita.memory.read_uint16(addr);
* **Parameters**
* addr - (number) The address to read the value of.
* **Returns**
* number - The value of the address, 0 on error.
----
==== ashita.memory.read_uint32 ====
Reads a value from memory at the given address.
number ashita.memory.read_uint32(addr);
* **Parameters**
* addr - (number) The address to read the value of.
* **Returns**
* number - The value of the address, 0 on error.
----
==== ashita.memory.read_uint64 ====
Reads a value from memory at the given address.
number ashita.memory.read_uint64(addr);
* **Parameters**
* addr - (number) The address to read the value of.
* **Returns**
* number - The value of the address, 0 on error.
----
==== ashita.memory.read_int8 ====
Reads a value from memory at the given address.
number ashita.memory.read_int8(addr);
* **Parameters**
* addr - (number) The address to read the value of.
* **Returns**
* number - The value of the address, 0 on error.
----
==== ashita.memory.read_int16 ====
Reads a value from memory at the given address.
number ashita.memory.read_int16(addr);
* **Parameters**
* addr - (number) The address to read the value of.
* **Returns**
* number - The value of the address, 0 on error.
----
==== ashita.memory.read_int32 ====
Reads a value from memory at the given address.
number ashita.memory.read_int32(addr);
* **Parameters**
* addr - (number) The address to read the value of.
* **Returns**
* number - The value of the address, 0 on error.
----
==== ashita.memory.read_int64 ====
Reads a value from memory at the given address.
number ashita.memory.read_int64(addr);
* **Parameters**
* addr - (number) The address to read the value of.
* **Returns**
* number - The value of the address, 0 on error.
----
==== ashita.memory.read_float ====
Reads a value from memory at the given address.
number ashita.memory.read_float(addr);
* **Parameters**
* addr - (number) The address to read the value of.
* **Returns**
* number - The value of the address, 0 on error.
----
==== ashita.memory.read_double ====
Reads a value from memory at the given address.
number ashita.memory.read_double(addr);
* **Parameters**
* addr - (number) The address to read the value of.
* **Returns**
* number - The value of the address, 0 on error.
----
==== ashita.memory.read_array ====
Reads a value from memory at the given address.
number ashita.memory.read_array(addr, size);
* **Parameters**
* addr - (number) The address to read the value of.
* size - (number) The size of data to read.
* **Returns**
* table - The values read from the given address, nil on error.
----
==== ashita.memory.read_string ====
Reads a value from memory at the given address.
number ashita.memory.read_string(addr, size);
* **Parameters**
* addr - (number) The address to read the value of.
* size - (number) The size of the string to read.
* **Returns**
* string - The string read from the given address, nil on error.
----
==== ashita.memory.write_uint8 ====
Writes a value to memory at the given address.
void ashita.memory.write_uint8(addr, value);
* **Parameters**
* addr - (number) The address to write the value to.
* value - (number) The value to write to memory.
* **Returns**
* //Function does not return a value.//
----
==== ashita.memory.write_uint16 ====
Writes a value to memory at the given address.
void ashita.memory.write_uint16(addr, value);
* **Parameters**
* addr - (number) The address to write the value to.
* value - (number) The value to write to memory.
* **Returns**
* //Function does not return a value.//
----
==== ashita.memory.write_uint32 ====
Writes a value to memory at the given address.
void ashita.memory.write_uint32(addr, value);
* **Parameters**
* addr - (number) The address to write the value to.
* value - (number) The value to write to memory.
* **Returns**
* //Function does not return a value.//
----
==== ashita.memory.write_uint64 ====
Writes a value to memory at the given address.
void ashita.memory.write_uint64(addr, value);
* **Parameters**
* addr - (number) The address to write the value to.
* value - (number) The value to write to memory.
* **Returns**
* //Function does not return a value.//
----
==== ashita.memory.write_int8 ====
Writes a value to memory at the given address.
void ashita.memory.write_int8(addr, value);
* **Parameters**
* addr - (number) The address to write the value to.
* value - (number) The value to write to memory.
* **Returns**
* //Function does not return a value.//
----
==== ashita.memory.write_int16 ====
Writes a value to memory at the given address.
void ashita.memory.write_int16(addr, value);
* **Parameters**
* addr - (number) The address to write the value to.
* value - (number) The value to write to memory.
* **Returns**
* //Function does not return a value.//
----
==== ashita.memory.write_int32 ====
Writes a value to memory at the given address.
void ashita.memory.write_int32(addr, value);
* **Parameters**
* addr - (number) The address to write the value to.
* value - (number) The value to write to memory.
* **Returns**
* //Function does not return a value.//
----
==== ashita.memory.write_int64 ====
Writes a value to memory at the given address.
void ashita.memory.write_int64(addr, value);
* **Parameters**
* addr - (number) The address to write the value to.
* value - (number) The value to write to memory.
* **Returns**
* //Function does not return a value.//
----
==== ashita.memory.write_float ====
Writes a value to memory at the given address.
void ashita.memory.write_float(addr, value);
* **Parameters**
* addr - (number) The address to write the value to.
* value - (number) The value to write to memory.
* **Returns**
* //Function does not return a value.//
----
==== ashita.memory.write_double ====
Writes a value to memory at the given address.
void ashita.memory.write_double(addr, value);
* **Parameters**
* addr - (number) The address to write the value to.
* value - (number) The value to write to memory.
* **Returns**
* //Function does not return a value.//
----
==== ashita.memory.write_array ====
Writes a value to memory at the given address.
void ashita.memory.write_array(addr, value);
* **Parameters**
* addr - (number) The address to write the value to.
* value - (table) The array of data to write to memory.
* **Returns**
* //Function does not return a value.//
----
==== ashita.memory.write_string ====
Writes a value to memory at the given address.
void ashita.memory.write_string(addr, value);
* **Parameters**
* addr - (number) The address to write the value to.
* value - (string) The value to write to memory.
* **Returns**
* //Function does not return a value.//