Difference between revisions of "Lua"

From Cheat Engine
Jump to navigation Jump to search
Line 6: Line 6:
  
 
== Globals ==
 
== Globals ==
* [[TrainerOrigin]]: A variable that contains the path of the trainer that launched cheat engine (Only set when launched as a trainer)
+
* [[Lua:TrainerOrigin|TrainerOrigin]]: A variable that contains the path of the trainer that launched cheat engine (Only set when launched as a trainer)
* [[process]]: A variable that contains the main modulename of the currently opened process
+
* [[Lua:process|process]]: A variable that contains the main modulename of the currently opened process
* [[MainForm]]: The main ce gui
+
* [[Lua:MainForm|MainForm]]: The main ce gui
* [[AddressList]]: The address list of the main ce gui
+
* [[Lua:AddressList|AddressList]]: The address list of the main ce gui
  
 
== Variables ==
 
== Variables ==
* [[Debug Variables]]
+
* [[Lua:Debug|Debug Variables]]
 
** EFLAGS
 
** EFLAGS
 
** '''32/64-bit''': EAX, EBX, ECX, EDX, EDI, ESI, EBP, ESP, EIP
 
** '''32/64-bit''': EAX, EBX, ECX, EDX, EDI, ESI, EBP, ESP, EIP
Line 23: Line 23:
 
These functions help manage the cheat table.
 
These functions help manage the cheat table.
  
* [[getAddressList]]: Returns the cheat table [[Addresslist]] object
+
* [[Lua:getAddressList|getAddressList]]: Returns the cheat table [[Lua:Class:Addresslist|Addresslist]] object
* [[findTableFile]]: Returns a [[TableFile]] stored in the cheat table
+
* [[Lua:findTableFile|findTableFile]]: Returns a [[Lua:Class:TableFile|TableFile]] stored in the cheat table
* [[loadTable]]: Loads a ".ct" or ".cetrainer" file or stream
+
* [[Lua:loadTable|loadTable]]: Loads a ".ct" or ".cetrainer" file or stream
* [[saveTable]]: Saves the current table
+
* [[Lua:saveTable|saveTable]]: Saves the current table
  
  
 
== Trainers ==
 
== Trainers ==
* [[registerEXETrainerFeature]]: Adds a new feature to the exe trainer generator window, and calls your function when the user builds an .exe trainer
+
* [[Lua:registerEXETrainerFeature|registerEXETrainerFeature]]: Adds a new feature to the exe trainer generator window, and calls your function when the user builds an .exe trainer
* [[unregisterEXETrainerFeature]]: Unregisters the trainer feature
+
* [[Lua:unregisterEXETrainerFeature|unregisterEXETrainerFeature]]: Unregisters the trainer feature
  
  
 
== Protection ==
 
== Protection ==
* [[activateProtection]]: Prevents basic memory scanners from opening the cheat engine process
+
* [[Lua:activateProtection|activateProtection]]: Prevents basic memory scanners from opening the cheat engine process
* [[enableDRM]]: Prevents normal memory scanners from reading the Cheat Engine process (kernelmode)
+
* [[Lua:enableDRM|enableDRM]]: Prevents normal memory scanners from reading the Cheat Engine process (kernelmode)
* [[encodeFunction]]: Converts a given function into an encoded string that you can pass on to [[decodeFunction]]
+
* [[Lua:encodeFunction|encodeFunction]]: Converts a given function into an encoded string that you can pass on to [[Lua:decodeFunction|decodeFunction]]
* [[decodeFunction]]: Converts an encoded string back into a function
+
* [[Lua:decodeFunction|decodeFunction]]: Converts an encoded string back into a function
  
  
Line 44: Line 44:
 
These functions control Cheat Engine's scanning.
 
These functions control Cheat Engine's scanning.
  
* [[AOBScan]]: Scans the currently opened process and returns a [[StringList]] object containing all the results
+
* [[Lua:AOBScan|AOBScan]]: Scans the currently opened process and returns a [[Lua:Class:StringList|StringList]] object containing all the results
* [[getCurrentMemscan]]: Returns the currently active scan session as a [[MemScan]] object
+
* [[Lua:getCurrentMemscan|getCurrentMemscan]]: Returns the currently active scan session as a [[Lua:Class:MemScan|MemScan]] object
  
  
 
== Process ==
 
== Process ==
* [[createProcess]]: Creates a process with or without debugging
+
* [[Lua:createProcess|createProcess]]: Creates a process with or without debugging
* [[openProcess]]: Causes cheat engine to open the given processname or id
+
* [[Lua:openProcess|openProcess]]: Causes cheat engine to open the given processname or id
* [[onOpenProcess]]: Called by CE when it opens a process (userdefined)
+
* [[Lua:onOpenProcess|onOpenProcess]]: Called by CE when it opens a process (userdefined)
* [[getForegroundProcess]]: Returns the process ID of the process that is currently on top
+
* [[Lua:getForegroundProcess|getForegroundProcess]]: Returns the process ID of the process that is currently on top
* [[getOpenedProcessID]]: Returns the currently opened process
+
* [[Lua:getOpenedProcessID|getOpenedProcessID]]: Returns the currently opened process
* [[getProcessIDFromProcessName]]: Returns a processid
+
* [[Lua:getProcessIDFromProcessName|getProcessIDFromProcessName]]: Returns a processid
* [[openFileAsProcess]]: Causes cheat engine to open the file with memory access as if it's a process
+
* [[Lua:openFileAsProcess|openFileAsProcess]]: Causes cheat engine to open the file with memory access as if it's a process
* [[saveOpenedFile]]: Saves the changes of the opened file
+
* [[Lua:saveOpenedFile|saveOpenedFile]]: Saves the changes of the opened file
* [[setPointerSize]]: Sets the size cheat engine will deal with pointers in bytes. (Some 64-bit processes can only use 32-bit addresses)
+
* [[Lua:setPointerSize|setPointerSize]]: Sets the size cheat engine will deal with pointers in bytes. (Some 64-bit processes can only use 32-bit addresses)
* [[setAssemblerMode]]: Sets the assembler's bit size mode (0=32-bit, 1=64-bit)
+
* [[Lua:setAssemblerMode|setAssemblerMode]]: Sets the assembler's bit size mode (0=32-bit, 1=64-bit)
* [[getProcesslist]]: Returns a processlist of the system
+
* [[Lua:getProcesslist|getProcesslist]]: Returns a processlist of the system
* [[getWindowlist]]: Returns the top-window list of the system
+
* [[Lua:getWindowlist|getWindowlist]]: Returns the top-window list of the system
* [[pause]]: Pauses the current opened process
+
* [[Lua:pause|pause]]: Pauses the current opened process
* [[unpause]]: Resumes the current opened process
+
* [[Lua:unpause|unpause]]: Resumes the current opened process
* [[targetIs64Bit]]: Returns true if the target process is 64-bit, false if 32-bit
+
* [[Lua:targetIs64Bit|targetIs64Bit]]: Returns true if the target process is 64-bit, false if 32-bit
* [[enumModules]]: Returns a table containing information about each module in the current process, or the specified process ID
+
* [[Lua:enumModules|enumModules]]: Returns a table containing information about each module in the current process, or the specified process ID
* [[closeRemoteHandle]]: Closes the handle of a process
+
* [[Lua:closeRemoteHandle|closeRemoteHandle]]: Closes the handle of a process
  
  
 
== Threads ==
 
== Threads ==
* [[getCPUCount]]: Returns the number of CPU's
+
* [[Lua:getCPUCount|getCPUCount]]: Returns the number of CPU's
* [[getThreadlist]]: Fills a List object with the threadlist of the currently opened process
+
* [[Lua:getThreadlist|getThreadlist]]: Fills a List object with the threadlist of the currently opened process
* [[inMainThread]]: Returns true if the current code is running inside the main thread (6.4+)
+
* [[Lua:inMainThread|inMainThread]]: Returns true if the current code is running inside the main thread (6.4+)
* [[synchronize]]: Calls the given function from the main thread. Returns the return value of the given function
+
* [[Lua:synchronize|synchronize]]: Calls the given function from the main thread. Returns the return value of the given function
* [[queue]]: Calls the given function from the main thread. Does not wait for the result
+
* [[Lua:queue|queue]]: Calls the given function from the main thread. Does not wait for the result
* [[checkSynchronize]]: Call this from an infinite loop in the main thread when using threading and synchronize calls
+
* [[Lua:checkSynchronize|checkSynchronize]]: Call this from an infinite loop in the main thread when using threading and synchronize calls
  
  
 
== Handles ==
 
== Handles ==
* [[getHandleList]]: Returns a table with all the handles in the system
+
* [[Lua:getHandleList|getHandleList]]: Returns a table with all the handles in the system
  
  
Line 84: Line 84:
 
These functions help convert between memory addresses and [[symbol]]s/[[CEAddressString]]s.
 
These functions help convert between memory addresses and [[symbol]]s/[[CEAddressString]]s.
  
* [[getAddress]]: Returns the address of a symbol. Can be a modulename or an export
+
* [[Lua:getAddress|getAddress]]: Returns the address of a symbol. Can be a modulename or an export
* [[getAddressSafe]]: Returns the address of a symbol, or nil if not found. Similar to getAddress when errorOnLookup is false, but returns nil instead
+
* [[Lua:getAddressSafe|getAddressSafe]]: Returns the address of a symbol, or nil if not found. Similar to getAddress when errorOnLookup is false, but returns nil instead
* [[getNameFromAddress]]: Returns the given address in string form, returning the symbol representation if possible
+
* [[Lua:getNameFromAddress|getNameFromAddress]]: Returns the given address in string form, returning the symbol representation if possible
* [[registerSymbol]]: Assign the specified symbolname to an address
+
* [[Lua:registerSymbol|registerSymbol]]: Assign the specified symbolname to an address
* [[unregisterSymbol]]: Remove the name from the address
+
* [[Lua:unregisterSymbol|unregisterSymbol]]: Remove the name from the address
* [[getSymbolInfo]]: Returns a table as defined by the [[SymbolList]] class object (module name, search key, address, size)
+
* [[Lua:getSymbolInfo|getSymbolInfo]]: Returns a table as defined by the [[Lua:Class:SymbolList|SymbolList]] class object (module name, search key, address, size)
* [[reinitializeSymbolhandler]]: Reinitializes the symbolhandler. E.g when new modules have been loaded
+
* [[Lua:reinitializeSymbolhandler|reinitializeSymbolhandler]]: Reinitializes the symbolhandler. E.g when new modules have been loaded
* [[inModule]]: Returns true if the given address is inside a module
+
* [[Lua:inModule|inModule]]: Returns true if the given address is inside a module
* [[inSystemModule]]: Returns true if the given address is inside a system module
+
* [[Lua:inSystemModule|inSystemModule]]: Returns true if the given address is inside a system module
* [[getModuleSize]]: Returns the size of a given module (Use getAddress to get the base address)
+
* [[Lua:getModuleSize|getModuleSize]]: Returns the size of a given module (Use getAddress to get the base address)
* [[errorOnLookupFailure]]: Set whether address lookups will throw errors, or just return 0.
+
* [[Lua:errorOnLookupFailure|errorOnLookupFailure]]: Set whether address lookups will throw errors, or just return 0.
* [[registerSymbolLookupCallback]]: Registers a function to be called when a a symbol is parsed
+
* [[Lua:registerSymbolLookupCallback|registerSymbolLookupCallback]]: Registers a function to be called when a a symbol is parsed
* [[unregisterSymbolLookupCallback]]: Removes the callback
+
* [[Lua:unregisterSymbolLookupCallback|unregisterSymbolLookupCallback]]: Removes the callback
* [[registerAddressLookupCallback]]: Registers a function to be called when the name of an address is requested
+
* [[Lua:registerAddressLookupCallback|registerAddressLookupCallback]]: Registers a function to be called when the name of an address is requested
* [[unregisterAddressLookupCallback]]: Removes the callback
+
* [[Lua:unregisterAddressLookupCallback|unregisterAddressLookupCallback]]: Removes the callback
* [[reinitializeDotNetSymbolhandler]]: Reinitializes only the DotNet part of the symbol list
+
* [[Lua:reinitializeDotNetSymbolhandler|reinitializeDotNetSymbolhandler]]: Reinitializes only the DotNet part of the symbol list
  
  
 
== Memory ==
 
== Memory ==
* [[allocateMemory]]: Allocates some memory into the target process
+
* [[Lua:allocateMemory|allocateMemory]]: Allocates some memory into the target process
* [[deAlloc]]: Frees allocated memory
+
* [[Lua:deAlloc|deAlloc]]: Frees allocated memory
* [[allocateSharedMemory]]: Creates a shared memory object of the given size if it doesn't exist yet
+
* [[Lua:allocateSharedMemory|allocateSharedMemory]]: Creates a shared memory object of the given size if it doesn't exist yet
* [[createSection]]: Creates a 'section' in memory
+
* [[Lua:createSection|createSection]]: Creates a 'section' in memory
* [[mapViewOfSection]]: Maps the section to memory
+
* [[Lua:mapViewOfSection|mapViewOfSection]]: Maps the section to memory
* [[unMapViewOfSection]]: Unmaps a section from memory
+
* [[Lua:unMapViewOfSection|unMapViewOfSection]]: Unmaps a section from memory
* [[copyMemory]]: Copies memory from the given address to the destination address
+
* [[Lua:copyMemory|copyMemory]]: Copies memory from the given address to the destination address
* [[allocateKernelMemory]]: Allocates a block of nonpaged memory and returns the address
+
* [[Lua:allocateKernelMemory|allocateKernelMemory]]: Allocates a block of nonpaged memory and returns the address
* [[freeKernelMemory]]: Frees the given memory region
+
* [[Lua:freeKernelMemory|freeKernelMemory]]: Frees the given memory region
* [[mapMemory]]: Maps a specific address to the usermode context from the given PID to the given PID
+
* [[Lua:mapMemory|mapMemory]]: Maps a specific address to the usermode context from the given PID to the given PID
* [[unmapMemory]]:  
+
* [[Lua:unmapMemory|unmapMemory]]:  
  
  
Line 119: Line 119:
  
 
=== Reading ===
 
=== Reading ===
* [[readBytes]]: Returns the bytes at the given address. If ReturnAsTable is true it will return a table instead of multiple bytes
+
* [[Lua:readBytes|readBytes]]: Returns the bytes at the given address. If ReturnAsTable is true it will return a table instead of multiple bytes
* [[readSmallInteger]]: Reads a 16-bit integer from the specified address.
+
* [[Lua:readSmallInteger|readSmallInteger]]: Reads a 16-bit integer from the specified address.
* [[readInteger]]: Reads a 32-bit integer from the specified address.
+
* [[Lua:readInteger|readInteger]]: Reads a 32-bit integer from the specified address.
* [[readQword]]: Reads a 64-bit integer from the specified address.
+
* [[Lua:readQword|readQword]]: Reads a 64-bit integer from the specified address.
* [[readPointer]]: In a 64-bit target this equals readQword, in a 32-bit target readInteger().
+
* [[Lua:readPointer|readPointer]]: In a 64-bit target this equals readQword, in a 32-bit target readInteger().
* [[readFloat]]: Reads a single precision floating point value from the specified address
+
* [[Lua:readFloat|readFloat]]: Reads a single precision floating point value from the specified address
* [[readDouble]]: Reads a double precision floating point value from the specified address
+
* [[Lua:readDouble|readDouble]]: Reads a double precision floating point value from the specified address
* [[readString]]: Reads a string from memory until it hits a 0-terminator. maxlength is just so you won't freeze for too long
+
* [[Lua:readString|readString]]: Reads a string from memory until it hits a 0-terminator. maxlength is just so you won't freeze for too long
* [[readRegionFromFile]]: Writes the given file to a specific address
+
* [[Lua:readRegionFromFile|readRegionFromFile]]: Writes the given file to a specific address
  
* [[readBytesLocal]]: See readBytes but then it's for Cheat engine's memory
+
* [[Lua:readBytesLocal|readBytesLocal]]: See readBytes but then it's for Cheat engine's memory
* [[readSmallIntegerLocal]]: Reads a 16-bit integer from the specified address in CE's memory
+
* [[Lua:readSmallIntegerLocal|readSmallIntegerLocal]]: Reads a 16-bit integer from the specified address in CE's memory
* [[readIntegerLocal]]: Reads a 32-bit integer from the specified address in CE's memory
+
* [[Lua:readIntegerLocal|readIntegerLocal]]: Reads a 32-bit integer from the specified address in CE's memory
* [[readQwordLocal]]: Reads a 64-bit integer from the specified address in CE's memory
+
* [[Lua:readQwordLocal|readQwordLocal]]: Reads a 64-bit integer from the specified address in CE's memory
* [[readPointerLocal]]: [[ReadQwordLocal]]/[[ReadIntegerLocal]] depending on the cheat engine build
+
* [[Lua:readPointerLocal|readPointerLocal]]: [[Lua:ReadQwordLocal|ReadQwordLocal]]/[[Lua:ReadIntegerLocal|ReadIntegerLocal]] depending on the cheat engine build
* [[readFloatLocal]]: Reads a single precision floating point value from the specified address in CE's memory
+
* [[Lua:readFloatLocal|readFloatLocal]]: Reads a single precision floating point value from the specified address in CE's memory
* [[readDoubleLocal]]: Reads a double precision floating point value from the specified address in CE's memory
+
* [[Lua:readDoubleLocal|readDoubleLocal]]: Reads a double precision floating point value from the specified address in CE's memory
* [[readStringLocal]]: Reads a string from CE's memory until it hits a 0-terminator
+
* [[Lua:readStringLocal|readStringLocal]]: Reads a string from CE's memory until it hits a 0-terminator
  
  
 
=== Writing ===
 
=== Writing ===
* [[writeBytes]]: Write the given bytes to the given address from a table
+
* [[Lua:writeBytes|writeBytes]]: Write the given bytes to the given address from a table
* [[writeSmallInteger]]: Writes a 16-bit integer to the specified address. Returns true on success.
+
* [[Lua:writeSmallInteger|writeSmallInteger]]: Writes a 16-bit integer to the specified address. Returns true on success.
* [[writeInteger]]: Writes a 32-bit integer to the specified address. Returns true on success.
+
* [[Lua:writeInteger|writeInteger]]: Writes a 32-bit integer to the specified address. Returns true on success.
* [[writeQword]]: Write a 64-bit integer to the specified address. Returns true on success.
+
* [[Lua:writeQword|writeQword]]: Write a 64-bit integer to the specified address. Returns true on success.
* [[writeFloat]]: Writes a single precision floating point to the specified address. Returns true on success.
+
* [[Lua:writeFloat|writeFloat]]: Writes a single precision floating point to the specified address. Returns true on success.
* [[writeDouble]]: Writes a double precision floating point to the specified address. Returns true on success.
+
* [[Lua:writeDouble|writeDouble]]: Writes a double precision floating point to the specified address. Returns true on success.
* [[writeString]]: Write a string to the specified address. Returns true on success.
+
* [[Lua:writeString|writeString]]: Write a string to the specified address. Returns true on success.
* [[writeRegionToFile]]: Writes the given region to a file. Returns the number of bytes written.
+
* [[Lua:writeRegionToFile|writeRegionToFile]]: Writes the given region to a file. Returns the number of bytes written.
  
* [[writeSmallIntegerLocal]]: Writes a 16-bit integer to the specified address in CE's memory. Returns true on success
+
* [[Lua:writeSmallIntegerLocal|writeSmallIntegerLocal]]: Writes a 16-bit integer to the specified address in CE's memory. Returns true on success
* [[writeIntegerLocal]]: Writes a 32-bit integer to the specified address in CE's memory. Returns true on success
+
* [[Lua:writeIntegerLocal|writeIntegerLocal]]: Writes a 32-bit integer to the specified address in CE's memory. Returns true on success
* [[writeQwordLocal]]: Writes a 64-bit integer to the specified address in CE's memory. Returns true on success
+
* [[Lua:writeQwordLocal|writeQwordLocal]]: Writes a 64-bit integer to the specified address in CE's memory. Returns true on success
* [[writeFloatLocal]]: Writes a single precision floating point to the specified address in CE's memory. Returns true on success
+
* [[Lua:writeFloatLocal|writeFloatLocal]]: Writes a single precision floating point to the specified address in CE's memory. Returns true on success
* [[writeDoubleLocal]]: Writes a double precision floating point to the specified address in CE's memory. Returns true on success
+
* [[Lua:writeDoubleLocal|writeDoubleLocal]]: Writes a double precision floating point to the specified address in CE's memory. Returns true on success
* [[writeStringLocal]]: Write a string to the specified address. Returns true on success.
+
* [[Lua:writeStringLocal|writeStringLocal]]: Write a string to the specified address. Returns true on success.
* [[writeBytesLocal]]: See writeBytes but then it's for Cheat Engine's memory
+
* [[Lua:writeBytesLocal|writeBytesLocal]]: See writeBytes but then it's for Cheat Engine's memory
  
** [[readSmallInteger]], [[readInteger]], [[readSmallIntegerLocal]], [[readIntegerLocal]] can also have second boolean parameter. If true, value will be signed.
+
** [[Lua:readSmallInteger|readSmallInteger]], [[Lua:readInteger|readInteger]], [[Lua:readSmallIntegerLocal|readSmallIntegerLocal]], [[Lua:readIntegerLocal|readIntegerLocal]] can also have second boolean parameter. If true, value will be signed.
  
 
== Convertions ==
 
== Convertions ==
* [[ansiToUtf8]]: Converts a string in Ansi encoding to UTF8
+
* [[Lua:ansiToUtf8|ansiToUtf8]]: Converts a string in Ansi encoding to UTF8
* [[utf8ToAnsi]]: Converts a string in UTF8 encoding to Ansi
+
* [[Lua:utf8ToAnsi|utf8ToAnsi]]: Converts a string in UTF8 encoding to Ansi
* [[stringToMD5String]]: Returns an md5 hash string from the provided string
+
* [[Lua:stringToMD5String|stringToMD5String]]: Returns an md5 hash string from the provided string
* [[integerToUserData]]: Converts a given integer to a userdata variable
+
* [[Lua:integerToUserData|integerToUserData]]: Converts a given integer to a userdata variable
* [[userDataToInteger]]: Converts a given userdata variable to an integer
+
* [[Lua:userDataToInteger|userDataToInteger]]: Converts a given userdata variable to an integer
  
 
=== To Byte Table ===
 
=== To Byte Table ===
* [[wordToByteTable]]: Converts a word to a bytetable
+
* [[Lua:wordToByteTable|wordToByteTable]]: Converts a word to a bytetable
* [[dwordToByteTable]]: Converts a dword to a bytetable
+
* [[Lua:dwordToByteTable|dwordToByteTable]]: Converts a dword to a bytetable
* [[qwordToByteTable]]: Converts a qword to a bytetable
+
* [[Lua:qwordToByteTable|qwordToByteTable]]: Converts a qword to a bytetable
* [[floatToByteTable]]: Converts a float to a bytetable
+
* [[Lua:floatToByteTable|floatToByteTable]]: Converts a float to a bytetable
* [[doubleToByteTable]]: Converts a double to a bytetable
+
* [[Lua:doubleToByteTable|doubleToByteTable]]: Converts a double to a bytetable
* [[stringToByteTable]]: Converts a string to a bytetable
+
* [[Lua:stringToByteTable|stringToByteTable]]: Converts a string to a bytetable
* [[wideStringToByteTable]]: Converts a string to a widestring and converts that to a bytetable
+
* [[Lua:wideStringToByteTable|wideStringToByteTable]]: Converts a string to a widestring and converts that to a bytetable
  
 
=== From Byte Table ===
 
=== From Byte Table ===
* [[byteTableToWord]]: Converts a bytetable to a word
+
* [[Lua:byteTableToWord|byteTableToWord]]: Converts a bytetable to a word
* [[byteTableToDword]]: Converts a bytetable to a dword
+
* [[Lua:byteTableToDword|byteTableToDword]]: Converts a bytetable to a dword
* [[byteTableToQword]]: Converts a bytetable to a qword
+
* [[Lua:byteTableToQword|byteTableToQword]]: Converts a bytetable to a qword
* [[byteTableToFloat]]: Converts a bytetable to a float
+
* [[Lua:byteTableToFloat|byteTableToFloat]]: Converts a bytetable to a float
* [[byteTableToDouble]]: Converts a bytetable to a double
+
* [[Lua:byteTableToDouble|byteTableToDouble]]: Converts a bytetable to a double
* [[byteTableToString]]: Converts a bytetable to a string
+
* [[Lua:byteTableToString|byteTableToString]]: Converts a bytetable to a string
* [[byteTableToWideString]]: Converts a bytetable to a widestring and convets that to a string
+
* [[Lua:byteTableToWideString|byteTableToWideString]]: Converts a bytetable to a widestring and convets that to a string
  
  
 
=== Binary ===
 
=== Binary ===
* [[bOr]]: Binary Or
+
* [[Lua:bOr|bOr]]: Binary Or
* [[bXor]]: Binary Xor
+
* [[Lua:bXor|bXor]]: Binary Xor
* [[bAnd]]: Binary And
+
* [[Lua:bAnd|bAnd]]: Binary And
* [[bShl]]: Binary shift left
+
* [[Lua:bShl|bShl]]: Binary shift left
* [[bShr]]: Binary shift right
+
* [[Lua:bShr|bShr]]: Binary shift right
* [[bNot]]: Binary not
+
* [[Lua:bNot|bNot]]: Binary not
  
  
Line 197: Line 197:
 
These functions get/set keyboard/mouse input.
 
These functions get/set keyboard/mouse input.
  
* [[getMousePos]]: Returns the ''X'' and ''Y'' coordinates of the mouse
+
* [[Lua:getMousePos|getMousePos]]: Returns the ''X'' and ''Y'' coordinates of the mouse
* [[setMousePos]]: Sets the mouse position
+
* [[Lua:setMousePos|setMousePos]]: Sets the mouse position
* [[isKeyPressed]]: Returns true if the specified key is currently pressed
+
* [[Lua:isKeyPressed|isKeyPressed]]: Returns true if the specified key is currently pressed
* [[keyDown]]: Causes the key to go into down state
+
* [[Lua:keyDown|keyDown]]: Causes the key to go into down state
* [[keyUp]]: Causes the key to go up
+
* [[Lua:keyUp|keyUp]]: Causes the key to go up
* [[doKeyPress]]: Simulates a key press
+
* [[Lua:doKeyPress|doKeyPress]]: Simulates a key press
* [[mouse_event]]: The Windows' API ''"mouse_event"''. [https://msdn.microsoft.com/en-us/library/windows/desktop/ms646260(v=vs.85).aspx msdn.microsoft.com/en-us/library/windows/desktop/ms646260(v=vs.85).aspx]
+
* [[Lua:mouse_event|mouse_event]]: The Windows' API ''"mouse_event"''. [https://msdn.microsoft.com/en-us/library/windows/desktop/ms646260(v=vs.85).aspx msdn.microsoft.com/en-us/library/windows/desktop/ms646260(v=vs.85).aspx]
* [[setGlobalKeyPollInterval]]: Sets the global keypoll interval
+
* [[Lua:setGlobalKeyPollInterval|setGlobalKeyPollInterval]]: Sets the global keypoll interval
* [[setGlobalDelayBetweenHotkeyActivation]]: Sets the minimum delay between the activation of the same hotey in milliseconds
+
* [[Lua:setGlobalDelayBetweenHotkeyActivation|setGlobalDelayBetweenHotkeyActivation]]: Sets the minimum delay between the activation of the same hotey in milliseconds
  
 
=== Game Controller ===
 
=== Game Controller ===
* [[getXBox360ControllerState]]: Fetches the state of the connected XBox controller
+
* [[Lua:getXBox360ControllerState|getXBox360ControllerState]]: Fetches the state of the connected XBox controller
* [[setXBox360ControllerVibration]]: Sets the speed of the left and right vibrating motor inside the controller
+
* [[Lua:setXBox360ControllerVibration|setXBox360ControllerVibration]]: Sets the speed of the left and right vibrating motor inside the controller
  
 
=== Clipboard ===
 
=== Clipboard ===
* [[writeToClipboard]]: Writes the given text to the clipboard
+
* [[Lua:writeToClipboard|writeToClipboard]]: Writes the given text to the clipboard
* [[readFromClipboard]]: Reads the text from the clipboard
+
* [[Lua:readFromClipboard|readFromClipboard]]: Reads the text from the clipboard
  
  
 
== Screen ==
 
== Screen ==
* [[getScreenHeight]]: Returns the screen height
+
* [[Lua:getScreenHeight|getScreenHeight]]: Returns the screen height
* [[getScreenWidth]]: Returns the screen  width
+
* [[Lua:getScreenWidth|getScreenWidth]]: Returns the screen  width
* [[getWorkAreaHeight]]: Returns the work area height
+
* [[Lua:getWorkAreaHeight|getWorkAreaHeight]]: Returns the work area height
* [[getWorkAreaWidth]]: Returns the work area width
+
* [[Lua:getWorkAreaWidth|getWorkAreaWidth]]: Returns the work area width
* [[getScreenCanvas]]: Returns a Canvas object you can use to write to the screen (Note: Not as useful as you may think)
+
* [[Lua:getScreenCanvas|getScreenCanvas]]: Returns a Canvas object you can use to write to the screen (Note: Not as useful as you may think)
* [[getPixel]]: Returns the RGB value of the pixel at the specific screen coordinate
+
* [[Lua:getPixel|getPixel]]: Returns the RGB value of the pixel at the specific screen coordinate
  
  
 
== Sounds ==
 
== Sounds ==
* [[playSound]]: Plays a sound file
+
* [[Lua:playSound|playSound]]: Plays a sound file
* [[beep]]: Plays the fabulous beep/ping sound!
+
* [[Lua:beep|beep]]: Plays the fabulous beep/ping sound!
* [[speak]]: Speaks a given text
+
* [[Lua:speak|speak]]: Speaks a given text
* [[speak]]: Speaks a given text using the given flags [https://msdn.microsoft.com/en-us/library/speechplatform_speakflags.aspx msdn.microsoft.com/en-us/library/speechplatform_speakflags.aspx]
+
* [[Lua:speak|speak]]: Speaks a given text using the given flags [https://msdn.microsoft.com/en-us/library/speechplatform_speakflags.aspx msdn.microsoft.com/en-us/library/speechplatform_speakflags.aspx]
* [[speakEnglish]]: Will try the English voice by wrapping the given text into an XML statement specifying the English voice
+
* [[Lua:speakEnglish|speakEnglish]]: Will try the English voice by wrapping the given text into an XML statement specifying the English voice
  
 
=== xmplayer ===
 
=== xmplayer ===
* [[xmplayer_playXM]]: Plays the given filename using the xmplayer
+
* [[Lua:xmplayer_playXM|xmplayer_playXM]]: Plays the given filename using the xmplayer
* [[xmplayer_pause]]: Pauses the current xm audio file
+
* [[Lua:xmplayer_pause|xmplayer_pause]]: Pauses the current xm audio file
* [[xmplayer_resume]]: Resumes the current xm audio file
+
* [[Lua:xmplayer_resume|xmplayer_resume]]: Resumes the current xm audio file
* [[xmplayer_stop]]: Stops the current xm audio file
+
* [[Lua:xmplayer_stop|xmplayer_stop]]: Stops the current xm audio file
* [[xmplayer_isPlaying]]: Returns true if there is currently an xm audio file being played
+
* [[Lua:xmplayer_isPlaying|xmplayer_isPlaying]]: Returns true if there is currently an xm audio file being played
  
  
 
== Text to Speech ==
 
== Text to Speech ==
* [[speak]]: Speaks a given text.
+
* [[Lua:speak|speak]]: Speaks a given text.
* [[speakEnglish]]: Speaks a given text with English voice.
+
* [[Lua:speakEnglish|speakEnglish]]: Speaks a given text with English voice.
  
  
 
== Fonts ==
 
== Fonts ==
  
* [[loadFontFromStream]]: Loads a font from a memory stream and returns an id (handle) to the font for use with [[unloadLoadedFont]]
+
* [[Lua:loadFontFromStream|loadFontFromStream]]: Loads a font from a memory stream and returns an id (handle) to the font for use with [[unloadLoadedFont]]
* [[unloadLoadedFont]]: Unloads a font from a memory stream
+
* [[Lua:unloadLoadedFont|unloadLoadedFont]]: Unloads a font from a memory stream
  
  
 
== Forms and Windows ==
 
== Forms and Windows ==
  
* [[findWindow]]: Finds a window with the given classname and/or windowname
+
* [[Lua:findWindow|findWindow]]: Finds a window with the given classname and/or windowname
* [[getWindow]]: Gets a specific window based on the given window (Check MSDN getWindow for the command description)
+
* [[Lua:getWindow|getWindow]]: Gets a specific window based on the given window (Check MSDN getWindow for the command description)
* [[getWindowCaption]]: Returns the caption of the window
+
* [[Lua:getWindowCaption|getWindowCaption]]: Returns the caption of the window
* [[getWindowClassName]]: Returns the classname of the window
+
* [[Lua:getWindowClassName|getWindowClassName]]: Returns the classname of the window
* [[getWindowProcessID]]: Returns the processid of the process this window belongs to
+
* [[Lua:getWindowProcessID|getWindowProcessID]]: Returns the processid of the process this window belongs to
* [[getForegroundWindow]]: Returns the windowhandle of the topmost window
+
* [[Lua:getForegroundWindow|getForegroundWindow]]: Returns the windowhandle of the topmost window
* [[sendMessage]]: Sends a message to a window
+
* [[Lua:sendMessage|sendMessage]]: Sends a message to a window
* [[hookWndProc]]: Hooks a window's wndproc procedure
+
* [[Lua:hookWndProc|hookWndProc]]: Hooks a window's wndproc procedure
* [[unhookWndProc]]: Called when done with the hook from [[hookWndProc]]
+
* [[Lua:unhookWndProc|unhookWndProc]]: Called when done with the hook from [[Lua:hookWndProc|hookWndProc]]
  
  
Line 267: Line 267:
 
These functions help manage Cheat Engine itself.
 
These functions help manage Cheat Engine itself.
  
* [[getCEVersion]]: Returns a floating point value specifying the version of cheat engine
+
* [[Lua:getCEVersion|getCEVersion]]: Returns a floating point value specifying the version of cheat engine
* [[getCheatEngineFileVersion]]: Returns the full version data of the cheat engine version. A raw integer, and a table containing major, minor, release and build
+
* [[Lua:getCheatEngineFileVersion|getCheatEngineFileVersion]]: Returns the full version data of the cheat engine version. A raw integer, and a table containing major, minor, release and build
* [[getFreezeTimer]]: Returns the Timer object responsible for freezing values
+
* [[Lua:getFreezeTimer|getFreezeTimer]]: Returns the Timer object responsible for freezing values
* [[getUpdateTimer]]: Returns the Timer object responsible for updating the value list
+
* [[Lua:getUpdateTimer|getUpdateTimer]]: Returns the Timer object responsible for updating the value list
* [[getCommonModuleList]]: Returns the commonModuleList [[StringList]] object
+
* [[Lua:getCommonModuleList|getCommonModuleList]]: Returns the commonModuleList [[Lua:Class:StringList|StringList]] object
* [[getCheatEngineProcessID]]: Returns the processid of cheat engine
+
* [[Lua:getCheatEngineProcessID|getCheatEngineProcessID]]: Returns the processid of cheat engine
* [[cheatEngineIs64Bit]]: Returns true if Cheat Engine is 64-bit, false if 32-bit
+
* [[Lua:cheatEngineIs64Bit|cheatEngineIs64Bit]]: Returns true if Cheat Engine is 64-bit, false if 32-bit
* [[closeCE]]: Closes Cheat Engine
+
* [[Lua:closeCE|closeCE]]: Closes Cheat Engine
* [[getAutoAttachList]]: Returns the AutoAttach [[StringList]] object
+
* [[Lua:getAutoAttachList|getAutoAttachList]]: Returns the AutoAttach [[Lua:Class:StringList|StringList]] object
* [[connectToCEServer]]: Connects to the given host and port. On success, most commands subsequent will be handled by the server
+
* [[Lua:connectToCEServer|connectToCEServer]]: Connects to the given host and port. On success, most commands subsequent will be handled by the server
* [[supportCheatEngine]]: Will show an advertising window which will help keep the development of Cheat Engine going.
+
* [[Lua:supportCheatEngine|supportCheatEngine]]: Will show an advertising window which will help keep the development of Cheat Engine going.
* [[fuckCheatEngine]]: Removes the ad window if it was showing
+
* [[Lua:fuckCheatEngine|fuckCheatEngine]]: Removes the ad window if it was showing
* [[getCheatEngineDir]]: Returns the folder Cheat Engine (or the trainer) is located at.
+
* [[Lua:getCheatEngineDir|getCheatEngineDir]]: Returns the folder Cheat Engine (or the trainer) is located at.
* [[getComment]]: Gets the userdefined comment at the specified address
+
* [[Lua:getComment|getComment]]: Gets the userdefined comment at the specified address
* [[setComment]]: Sets a userdefined comment at the specifried address
+
* [[Lua:setComment|setComment]]: Sets a userdefined comment at the specifried address
* [[getHeader]]: Gets the userdefined header at the specified address
+
* [[Lua:getHeader|getHeader]]: Gets the userdefined header at the specified address
* [[setHeader]]: Sets the userdefined header at the specified address
+
* [[Lua:setHeader|setHeader]]: Sets the userdefined header at the specified address
* [[registerBinUtil]]: Registers a binutils toolset with Cheat Engine
+
* [[Lua:registerBinUtil|registerBinUtil]]: Registers a binutils toolset with Cheat Engine
* [[reloadSettingsFromRegistry]]: This will cause cheat engine to reload the settings from the registry and apply them
+
* [[Lua:reloadSettingsFromRegistry|reloadSettingsFromRegistry]]: This will cause cheat engine to reload the settings from the registry and apply them
* [[loadPlugin]]: Loads the given plugin
+
* [[Lua:loadPlugin|loadPlugin]]: Loads the given plugin
* [[getSettings]]: Returns a settings object
+
* [[Lua:getSettings|getSettings]]: Returns a settings object
  
 
=== Forms ===
 
=== Forms ===
* [[getFormCount]]: Returns the total number of forms assigned to the main CE application
+
* [[Lua:getFormCount|getFormCount]]: Returns the total number of forms assigned to the main CE application
* [[getForm]]: Returns the form at the specific index
+
* [[Lua:getForm|getForm]]: Returns the form at the specific index
* [[getMemoryViewForm]]: Returns the first Memoryview form class object
+
* [[Lua:getMemoryViewForm|getMemoryViewForm]]: Returns the first Memoryview form class object
* [[getMainForm]]: Returns the first Mainform class object
+
* [[Lua:getMainForm|getMainForm]]: Returns the first Mainform class object
* [[getSettingsForm]]: Returns the main settings form
+
* [[Lua:getSettingsForm|getSettingsForm]]: Returns the main settings form
* [[getLuaEngine]]: Returns the lua engine form object (Creates it if needed)* [[unhideMainCEwindow]]: Shows the main Cheat Engine window
+
* [[Lua:getLuaEngine|getLuaEngine]]: Returns the lua engine form object (Creates it if needed)
* [[hideAllCEWindows]]: Makes all normal Cheat Engine windows invisible (e.g trainer table)
+
* [[Lua:unhideMainCEwindow|unhideMainCEwindow]]: Shows the main Cheat Engine window
* [[registerFormAddNotification]]: Registers a function to be called when a form is attached to Cheat Engine's form list
+
* [[Lua:hideAllCEWindows|hideAllCEWindows]]: Makes all normal Cheat Engine windows invisible (e.g trainer table)
* [[unregisterFormAddNotification]]: unregister the FormAddNotification call back
+
* [[Lua:registerFormAddNotification|registerFormAddNotification]]: Registers a function to be called when a form is attached to Cheat Engine's form list
 +
* [[Lua:unregisterFormAddNotification|unregisterFormAddNotification]]: unregister the FormAddNotification call back
  
 
=== Messages ===
 
=== Messages ===
* [[showMessage]]: Shows a message box with the given text
+
* [[Lua:showMessage|showMessage]]: Shows a message box with the given text
* [[messageDialog]]: Pops up a message box
+
* [[Lua:messageDialog|messageDialog]]: Pops up a message box
* [[outputDebugString]]: Outputs a message using the windows OutputDebugString message
+
* [[Lua:outputDebugString|outputDebugString]]: Outputs a message using the windows OutputDebugString message
* [[processMessages]]: Lets the main eventhandler process the new messages (allows for new button clicks)
+
* [[Lua:processMessages|processMessages]]: Lets the main eventhandler process the new messages (allows for new button clicks)
  
 
=== Input ===
 
=== Input ===
* [[inputQuery]]: Shows a dialog where the user can input a string. This function returns the given string, or nil on cancel  (CE6.4+)
+
* [[Lua:inputQuery|inputQuery]]: Shows a dialog where the user can input a string. This function returns the given string, or nil on cancel  (CE6.4+)
  
 
=== Shortcuts ===
 
=== Shortcuts ===
* [[shortCutToText]]: Returns the textual representation of the given shortcut value (integer) (6.4+)
+
* [[Lua:shortCutToText|shortCutToText]]: Returns the textual representation of the given shortcut value (integer) (6.4+)
* [[textToShortCut]]: Returns an shortcut integer that the given string represents.  (6.4+)
+
* [[Lua:textToShortCut|textToShortCut]]: Returns an shortcut integer that the given string represents.  (6.4+)
* [[convertKeyComboToString]]: Returns a string representation of the given keys like the hot-key handler does
+
* [[Lua:convertKeyComboToString|convertKeyComboToString]]: Returns a string representation of the given keys like the hot-key handler does
  
 
=== Speed Hack ===
 
=== Speed Hack ===
* [[speedhack_setSpeed]]: Enables the speed hack if it was not active yet and sets the given speed
+
* [[Lua:speedhack_setSpeed|speedhack_setSpeed]]: Enables the speed hack if it was not active yet and sets the given speed
* [[speedhack_getSpeed]]: Returns the last set speed
+
* [[Lua:speedhack_getSpeed|speedhack_getSpeed]]: Returns the last set speed
  
  
Line 322: Line 323:
 
These functions help manage Lua itself.
 
These functions help manage Lua itself.
  
* [[resetLuaState]]: This will create a new Lua state that will be used.
+
* [[Lua:resetLuaState|resetLuaState]]: This will create a new Lua state that will be used.
* [[sleep]]: Pauses for the number of specified milliseconds
+
* [[Lua:sleep|sleep]]: Pauses for the number of specified milliseconds
* [[createRef]]: Integer - Returns an integer reference that you can use with getRef
+
* [[Lua:createRef|createRef]]: Integer - Returns an integer reference that you can use with getRef
* [[getRef]]: Returns whatever the reference points out
+
* [[Lua:getRef|getRef]]: Returns whatever the reference points out
* [[destroyRef]]: Removes the reference
+
* [[Lua:destroyRef|destroyRef]]: Removes the reference
  
  
Line 332: Line 333:
 
These functions help structure a process's memory into datatypes.
 
These functions help structure a process's memory into datatypes.
  
* [[onAutoGuess]]: Registers an function to be called whenever autoguess is used to predict a variable type.
+
* [[Lua:onAutoGuess|onAutoGuess]]: Registers an function to be called whenever autoguess is used to predict a variable type.
* [[registerCustomTypeLua]]: Registers a [[custom type]] based on Lua functions.
+
* [[Lua:registerCustomTypeLua|registerCustomTypeLua]]: Registers a [[custom type]] based on Lua functions.
* [[registerCustomTypeAutoAssembler]]: Registers a custom type based on an auto assembler script.
+
* [[Lua:registerCustomTypeAutoAssembler|registerCustomTypeAutoAssembler]]: Registers a custom type based on an auto assembler script.
  
  
Line 340: Line 341:
 
These functions determine how a Lua object fits in the class hierarchy.
 
These functions determine how a Lua object fits in the class hierarchy.
  
* [[inheritsFromObject]]: Returns true if given any class
+
* [[Lua:inheritsFromObject|inheritsFromObject]]: Returns true if given any class
* [[inheritsFromComponent]]: Returns true if the given object inherits from the Component class
+
* [[Lua:inheritsFromComponent|inheritsFromComponent]]: Returns true if the given object inherits from the Component class
* [[inheritsFromControl]]: Returns true if the given object inherits from the Control class
+
* [[Lua:inheritsFromControl|inheritsFromControl]]: Returns true if the given object inherits from the Control class
* [[inheritsFromWinControl]]: Returns true if the given object inherits from the WinControl class
+
* [[Lua:inheritsFromWinControl|inheritsFromWinControl]]: Returns true if the given object inherits from the WinControl class
  
  
Line 350: Line 351:
 
These functions help work with the x86 machine code as assembly.
 
These functions help work with the x86 machine code as assembly.
  
* [[autoAssemble]]: Runs the auto assembler with the given text
+
* [[Lua:autoAssemble|autoAssemble]]: Runs the auto assembler with the given text
* [[autoAssembleCheck]]: Checks the script for syntax errors. Returns true on succes, false with an error message on failure
+
* [[Lua:autoAssembleCheck|autoAssembleCheck]]: Checks the script for syntax errors. Returns true on succes, false with an error message on failure
* [[disassemble]]: Disassembles the given address and returns a string in the format of "address - bytes - opcode  extra"
+
* [[Lua:disassemble|disassemble]]: Disassembles the given address and returns a string in the format of "address - bytes - opcode  extra"
* [[splitDisassembledString]]: Returns 4 strings. The address, bytes, opcode and extra field
+
* [[Lua:splitDisassembledString|splitDisassembledString]]: Returns 4 strings. The address, bytes, opcode and extra field
* [[getInstructionSize]]: Returns the size of an instruction
+
* [[Lua:getInstructionSize|getInstructionSize]]: Returns the size of an instruction
* [[getPreviousOpcode]]: Returns the address of the previous opcode (guess)
+
* [[Lua:getPreviousOpcode|getPreviousOpcode]]: Returns the address of the previous opcode (guess)
* [[registerAssembler]]: Registers a function to be called when the single line assembler is invoked to convert an instruction to a list of bytes
+
* [[Lua:registerAssembler|registerAssembler]]: Registers a function to be called when the single line assembler is invoked to convert an instruction to a list of bytes
* [[unregisterAssembler]]: Unregisters the registered assembler
+
* [[Lua:unregisterAssembler|unregisterAssembler]]: Unregisters the registered assembler
  
  
 
== Auto Assembler ==
 
== Auto Assembler ==
* [[registerAutoAssemblerCommand]]: Registers an auto assembler command to call the specified function
+
* [[Lua:registerAutoAssemblerCommand|registerAutoAssemblerCommand]]: Registers an auto assembler command to call the specified function
* [[unregisterAutoAssemblerCommand]]: Unregisters an auto assembler command
+
* [[Lua:unregisterAutoAssemblerCommand|unregisterAutoAssemblerCommand]]: Unregisters an auto assembler command
* [[registerAutoAssemblerPrologue]]: Registers a function to be called when the auto assembler is about to parse an auto assembler script
+
* [[Lua:registerAutoAssemblerPrologue|registerAutoAssemblerPrologue]]: Registers a function to be called when the auto assembler is about to parse an auto assembler script
* [[unregisterAutoAssemblerPrologue]]: Unregisters an auto assembler prologue
+
* [[Lua:unregisterAutoAssemblerPrologue|unregisterAutoAssemblerPrologue]]: Unregisters an auto assembler prologue
* [[fullAccess]]: Changes the protection of a block of memory to writable and executable
+
* [[Lua:fullAccess|fullAccess]]: Changes the protection of a block of memory to writable and executable
  
  
 
=== Scripts ===
 
=== Scripts ===
* [[registerAutoAssemblerTemplate]]: Registers a template for the auto assembler
+
* [[Lua:registerAutoAssemblerTemplate|registerAutoAssemblerTemplate]]: Registers a template for the auto assembler
* [[unregisterAutoAssemblerTemplate]]: Unregisters a template for the auto assembler
+
* [[Lua:unregisterAutoAssemblerTemplate|unregisterAutoAssemblerTemplate]]: Unregisters a template for the auto assembler
* [[generateCodeInjectionScript]]: Adds a default code injection script to the given script
+
* [[Lua:generateCodeInjectionScript|generateCodeInjectionScript]]: Adds a default code injection script to the given script
* [[generateAOBInjectionScript]]: Adds an AOB injection script to the given script
+
* [[Lua:generateAOBInjectionScript|generateAOBInjectionScript]]: Adds an AOB injection script to the given script
* [[generateFullInjectionScript]]: Adds a Full Injection script to the given script
+
* [[Lua:generateFullInjectionScript|generateFullInjectionScript]]: Adds a Full Injection script to the given script
* [[generateAPIHookScript]]: Generates an auto assembler script which will hook the given address when executed
+
* [[Lua:generateAPIHookScript|generateAPIHookScript]]: Generates an auto assembler script which will hook the given address when executed
  
  
Line 380: Line 381:
 
These functions manage the debugger. See ''[[Lua Debugging]]''.
 
These functions manage the debugger. See ''[[Lua Debugging]]''.
  
* [[debug_isDebugging]]: Returns true if the debugger has been started
+
* [[Lua:debug_isDebugging|debug_isDebugging]]: Returns true if the debugger has been started
* [[debug_getCurrentDebuggerInterface]]: Returns the current debuggerinterface used (1=windows, 2=VEH 3=Kernel, nil=no debugging active)
+
* [[Lua:debug_getCurrentDebuggerInterface|debug_getCurrentDebuggerInterface]]: Returns the current debuggerinterface used (1=windows, 2=VEH 3=Kernel, nil=no debugging active)
* [[debug_canBreak]]: Returns true if there is a possibility the target can stop on a breakpoint. 6.4+
+
* [[Lua:debug_canBreak|debug_canBreak]]: Returns true if there is a possibility the target can stop on a breakpoint. 6.4+
* [[debug_isBroken]]: Returns true if the debugger is currently halted on a thread
+
* [[Lua:debug_isBroken|debug_isBroken]]: Returns true if the debugger is currently halted on a thread
* [[debug_getBreakpointList]]: Returns a lua table containing all the breakpoint addresses
+
* [[Lua:debug_getBreakpointList|debug_getBreakpointList]]: Returns a lua table containing all the breakpoint addresses
* [[debugProcess]]: Debugs the currently attached process
+
* [[Lua:debugProcess|debugProcess]]: Debugs the currently attached process
* [[debug_setBreakpoint]]: Sets a breakpoint of a specific size at the given address
+
* [[Lua:debug_setBreakpoint|debug_setBreakpoint]]: Sets a breakpoint of a specific size at the given address
* [[debugger_onBreakpoint]]: Called by CE when a breakpoint hits (userdefined)
+
* [[Lua:debugger_onBreakpoint|debugger_onBreakpoint]]: Called by CE when a breakpoint hits (userdefined)
* [[debug_removeBreakpoint]]: Removes a breakpoint
+
* [[Lua:debug_removeBreakpoint|debug_removeBreakpoint]]: Removes a breakpoint
* [[debug_continueFromBreakpoint]]: Continues the debugger when it's halted on a breakpoint
+
* [[Lua:debug_continueFromBreakpoint|debug_continueFromBreakpoint]]: Continues the debugger when it's halted on a breakpoint
* [[debug_setLastBranchRecording]]: Tells the kernelmode debugger to record the last few branches before the breakpoint got hit
+
* [[Lua:debug_setLastBranchRecording|debug_setLastBranchRecording]]: Tells the kernelmode debugger to record the last few branches before the breakpoint got hit
* [[debug_getMaxLastBranchRecord]]: Returns the maximum number of branch records this cpu supports
+
* [[Lua:debug_getMaxLastBranchRecord|debug_getMaxLastBranchRecord]]: Returns the maximum number of branch records this cpu supports
* [[debug_getLastBranchRecord]]: Returns the value of the Last Branch Record at the given index (when handling a breakpoint)
+
* [[Lua:debug_getLastBranchRecord|debug_getLastBranchRecord]]: Returns the value of the Last Branch Record at the given index (when handling a breakpoint)
* [[debugger_onModuleLoad]]: Called by CE when the windows debugger interface loads a module (userdefined)
+
* [[Lua:debugger_onModuleLoad|debugger_onModuleLoad]]: Called by CE when the windows debugger interface loads a module (userdefined)
* [[debug_getContext]] (since 6.5): Force-update the Lua variables representing the registers?
+
* [[Lua:debug_getContext|debug_getContext]] (since 6.5): Force-update the Lua variables representing the registers?
* [[debug_setContext]] (since 6.5[http://www.cheatengine.org/forum/viewtopic.php?p=5639331&sid=755d2d512f48af1f29382048087761b9#5639331]): Force-update the registers to the Lua variables which represent them?
+
* [[Lua:debug_setContext|debug_setContext]] (since 6.5[http://www.cheatengine.org/forum/viewtopic.php?p=5639331&sid=755d2d512f48af1f29382048087761b9#5639331]): Force-update the registers to the Lua variables which represent them?
* [[debug_updateGUI]]: Will refresh the userinterface to reflect the new context if the debugger was broken
+
* [[Lua:debug_updateGUI|debug_updateGUI]]: Will refresh the userinterface to reflect the new context if the debugger was broken
* [[detachIfPossible]]: Detaches the debugger from the target process (if it was attached)
+
* [[Lua:detachIfPossible|detachIfPossible]]: Detaches the debugger from the target process (if it was attached)
* [[debug_addThreadToNoBreakList]]: This will cause breakpoints on the provided thread to be ignored
+
* [[Lua:debug_addThreadToNoBreakList|debug_addThreadToNoBreakList]]: This will cause breakpoints on the provided thread to be ignored
* [[debug_removeThreadFromNoBreakList]]: removed the threadid from the list
+
* [[Lua:debug_removeThreadFromNoBreakList|debug_removeThreadFromNoBreakList]]: removed the threadid from the list
* [[debug_getXMMPointer]]: Returns the address of the specified xmm register of the thread that is currently broken
+
* [[Lua:debug_getXMMPointer|debug_getXMMPointer]]: Returns the address of the specified xmm register of the thread that is currently broken
* [[debugger_onModuleLoad]]: This routine is called when a module is loaded. Only works for the windows debugger
+
* [[Lua:debugger_onModuleLoad|debugger_onModuleLoad]]: This routine is called when a module is loaded. Only works for the windows debugger
  
  
 
== DBK ==
 
== DBK ==
* [[dbk_initialize]]: Loads the DBK driver into memory if possible
+
* [[Lua:dbk_initialize|dbk_initialize]]: Loads the DBK driver into memory if possible
* [[dbk_useKernelmodeOpenProcess]]: Switches the internal pointer of the OpenProcess api to dbk_OpenProcess
+
* [[Lua:dbk_useKernelmodeOpenProcess|dbk_useKernelmodeOpenProcess]]: Switches the internal pointer of the OpenProcess api to dbk_OpenProcess
* [[dbk_useKernelmodeProcessMemoryAccess]]: Switches the internal pointer to the ReadProcessMemory and WriteProcessMemory apis to dbk_ReadProcessMemory and dbk_WriteProcessMemory
+
* [[Lua:dbk_useKernelmodeProcessMemoryAccess|dbk_useKernelmodeProcessMemoryAccess]]: Switches the internal pointer to the ReadProcessMemory and WriteProcessMemory apis to dbk_ReadProcessMemory and dbk_WriteProcessMemory
* [[dbk_useKernelmodeQueryMemoryRegions]]: Switches the internal pointer to the QueryVirtualMemory api to dbk_QueryVirtualMemory
+
* [[Lua:dbk_useKernelmodeQueryMemoryRegions|dbk_useKernelmodeQueryMemoryRegions]]: Switches the internal pointer to the QueryVirtualMemory api to dbk_QueryVirtualMemory
* [[dbk_getPEProcess]]: Returns the pointer of the EProcess structure of the selected processid
+
* [[Lua:dbk_getPEProcess|dbk_getPEProcess]]: Returns the pointer of the EProcess structure of the selected processid
* [[dbk_getPEThread]]: Gets the pointer to the EThread structure of a threadid
+
* [[Lua:dbk_getPEThread|dbk_getPEThread]]: Gets the pointer to the EThread structure of a threadid
* [[dbk_readMSR]]: Reads the msr using the dbk driver
+
* [[Lua:dbk_readMSR|dbk_readMSR]]: Reads the msr using the dbk driver
* [[dbk_writeMSR]]: Writes the msr using the dbk driver
+
* [[Lua:dbk_writeMSR|dbk_writeMSR]]: Writes the msr using the dbk driver
* [[dbk_executeKernelMemory]]: Executes a routine from kernelmode (e.g a routine written there with auto assembler)
+
* [[Lua:dbk_executeKernelMemory|dbk_executeKernelMemory]]: Executes a routine from kernelmode (e.g a routine written there with auto assembler)
* [[dbk_getCR0]]: Returns Control Register 0
+
* [[Lua:dbk_getCR0|dbk_getCR0]]: Returns Control Register 0
* [[dbk_getCR3]]: Returns Control Register 3 of the currently opened process
+
* [[Lua:dbk_getCR3|dbk_getCR3]]: Returns Control Register 3 of the currently opened process
* [[dbk_getCR4]]: Returns Control Register 4
+
* [[Lua:dbk_getCR4|dbk_getCR4]]: Returns Control Register 4
* [[dbk_getPhysicalAddress]]: Returns the physical address of the given address
+
* [[Lua:dbk_getPhysicalAddress|dbk_getPhysicalAddress]]: Returns the physical address of the given address
* [[dbk_writesIgnoreWriteProtection]]: Set to true if you do not wish to initiate copy-on-write behaviour
+
* [[Lua:dbk_writesIgnoreWriteProtection|dbk_writesIgnoreWriteProtection]]: Set to true if you do not wish to initiate copy-on-write behaviour
  
  
 
== DBVM ==
 
== DBVM ==
* [[dbvm_initialize]]: Initializes the dbvm functions
+
* [[Lua:dbvm_initialize|dbvm_initialize]]: Initializes the dbvm functions
* [[dbvm_readMSR]]: Reads the msr using dbvm (bypasses the driver)
+
* [[Lua:dbvm_readMSR|dbvm_readMSR]]: Reads the msr using dbvm (bypasses the driver)
* [[dbvm_writeMSR]]: Writes the msr using dbvm (bypasses the driver)
+
* [[Lua:dbvm_writeMSR|dbvm_writeMSR]]: Writes the msr using dbvm (bypasses the driver)
* [[dbvm_getCR4]]: Returns the real Control Register 4 state
+
* [[Lua:dbvm_getCR4|dbvm_getCR4]]: Returns the real Control Register 4 state
  
  
 
== Translation ==
 
== Translation ==
* [[getTranslationFolder]]: Returns the path of the current translation files, empty if there is no translation going on
+
* [[Lua:getTranslationFolder|getTranslationFolder]]: Returns the path of the current translation files, empty if there is no translation going on
* [[loadPOFile]]: Loads a ''".PO"'' file used for translation
+
* [[Lua:loadPOFile|loadPOFile]]: Loads a ''".PO"'' file used for translation
* [[translate]]: Returns a translation of the string, returns the same string if it can't be found
+
* [[Lua:translate|translate]]: Returns a translation of the string, returns the same string if it can't be found
* [[translateID]]: Returns a translation of the string ID
+
* [[Lua:translateID|translateID]]: Returns a translation of the string ID
  
  
 
== Files ==
 
== Files ==
* [[getFileVersion]]: Returns the 64-bit file version, and a table that has split up the file version into major, minor, release and build
+
* [[Lua:getFileVersion|getFileVersion]]: Returns the 64-bit file version, and a table that has split up the file version into major, minor, release and build
* [[getFileList]]: Returns an indexed table with filenames
+
* [[Lua:getFileList|getFileList]]: Returns an indexed table with filenames
* [[getDirectoryList]]: Returns an indexed table with directory names
+
* [[Lua:getDirectoryList|getDirectoryList]]: Returns an indexed table with directory names
  
  
 
== Structures ==
 
== Structures ==
* [[registerStructureDissectOverride]]: same as [[onAutoGuess]], but is called by the structure dissect window when the user chooses to let cheat engine guess the structure for them
+
* [[Lua:registerStructureDissectOverride|registerStructureDissectOverride]]: same as [[Lua:onAutoGuess|onAutoGuess]], but is called by the structure dissect window when the user chooses to let cheat engine guess the structure for them
* [[unregisterStructureDissectOverride]]: unregisters the structure dissect auto guess override
+
* [[Lua:unregisterStructureDissectOverride|unregisterStructureDissectOverride]]: unregisters the structure dissect auto guess override
* [[registerStructureNameLookup]]: Registers a function to be called when dissect data asks the user for the name of a new structure define
+
* [[Lua:registerStructureNameLookup|registerStructureNameLookup]]: Registers a function to be called when dissect data asks the user for the name of a new structure define
* [[unregisterStructureNameLookup]]:  
+
* [[Lua:unregisterStructureNameLookup|unregisterStructureNameLookup]]:  
  
  
 
== Miscellaneous ==
 
== Miscellaneous ==
* [[injectDll]]: Injects a dll
+
* [[Lua:injectDll|injectDll]]: Injects a dll
* [[shellExecute]]: Executes a given command
+
* [[Lua:shellExecute|shellExecute]]: Executes a given command
* [[executeCode]]: Executes a stdcall function with 1 parameter at the given address in the target process and wait for it to return
+
* [[Lua:executeCode|executeCode]]: Executes a stdcall function with 1 parameter at the given address in the target process and wait for it to return
* [[executeCodeLocal]]: Executes a stdcall function with 1 parameter at the given address in the target process
+
* [[Lua:executeCodeLocal|executeCodeLocal]]: Executes a stdcall function with 1 parameter at the given address in the target process
* [[onAPIPointerChange]]: Registers a callback when an api pointer is changed
+
* [[Lua:onAPIPointerChange|onAPIPointerChange]]: Registers a callback when an api pointer is changed
* [[setAPIPointer]]: Sets the pointer of the given api to the given address
+
* [[Lua:setAPIPointer|setAPIPointer]]: Sets the pointer of the given api to the given address
* [[md5memory]]: Returns a md5 sum calculated from the provided memory
+
* [[Lua:md5memory|md5memory]]: Returns a md5 sum calculated from the provided memory
* [[md5file]]: Returns a md5 sum calculated from the file
+
* [[Lua:md5file|md5file]]: Returns a md5 sum calculated from the file
* [[getSystemMetrics]]: Retrieves the specified system metric or system configuration setting [https://msdn.microsoft.com/en-us/library/windows/desktop/ms724385.aspx msdn.microsoft.com/en-us/library/windows/desktop/ms724385.aspx]
+
* [[Lua:getSystemMetrics|getSystemMetrics]]: Retrieves the specified system metric or system configuration setting [https://msdn.microsoft.com/en-us/library/windows/desktop/ms724385.aspx msdn.microsoft.com/en-us/library/windows/desktop/ms724385.aspx]
* [[getTickCount]]: Returns the current tickcount since windows was started. Each tick is one millisecond
+
* [[Lua:getTickCount|getTickCount]]: Returns the current tickcount since windows was started. Each tick is one millisecond
* [[getUserRegistryEnvironmentVariable]]: Returns the environment variable stored in the user registry environment
+
* [[Lua:getUserRegistryEnvironmentVariable|getUserRegistryEnvironmentVariable]]: Returns the environment variable stored in the user registry environment
* [[setUserRegistryEnvironmentVariable]]: Sets the environment variable stored in the user registry environment
+
* [[Lua:setUserRegistryEnvironmentVariable|setUserRegistryEnvironmentVariable]]: Sets the environment variable stored in the user registry environment
* [[broadcastEnvironmentUpdate]]: Call this when you've changed the environment variables in the registry
+
* [[Lua:broadcastEnvironmentUpdate|broadcastEnvironmentUpdate]]: Call this when you've changed the environment variables in the registry
* [[getApplication]]: Returns the application object (the titlebar)
+
* [[Lua:getApplication|getApplication]]: Returns the application object (the titlebar)
  
  
<!-- Left off at SQL Classes: line 2742 -->
 
 
= Classes =
 
= Classes =
 
Besides the above functions, Cheat Engine also implements some classes.
 
Besides the above functions, Cheat Engine also implements some classes.
  
* [[Addresslist]]: The addresslist class is a container for memory records
+
* [[Lua:Class:Addresslist|Addresslist]]: The addresslist class is a container for memory records
* [[Bitmap]]: Bitmap based Graphic object
+
* [[Lua:Class:Bitmap|Bitmap]]: Bitmap based Graphic object
* [[Brush]]: The brush class is part of the Canvas object. It's used to fill surfaces
+
* [[Lua:Class:Brush|Brush]]: The brush class is part of the Canvas object. It's used to fill surfaces
* [[Button]]: The button class is a visual component in the shape of a button.
+
* [[Lua:Class:Button|Button]]: The button class is a visual component in the shape of a button.
* [[ButtonControl]]: Common ancestor of several button like objects.
+
* [[Lua:Class:ButtonControl|ButtonControl]]: Common ancestor of several button like objects.
* [[Canvas]]: The canvas class is a graphical class. It allows you do draw lines, pictures, and text on top of other object. Usually used in onPaint events and other graphical events
+
* [[Lua:Class:Canvas|Canvas]]: The canvas class is a graphical class. It allows you do draw lines, pictures, and text on top of other object. Usually used in onPaint events and other graphical events
* [[Calendar]]:  
+
* [[Lua:Class:Calendar|Calendar]]:  
* [[CEForm]]:  
+
* [[Lua:Class:CEForm|CEForm]]:  
* [[CheatComponent]]: The cheatcomponent class is the component used in Cheat Engine 5.x trainers
+
* [[Lua:Class:CheatComponent|CheatComponent]]: The cheatcomponent class is the component used in Cheat Engine 5.x trainers
* [[CheckBox]]: The Checkbox is a visual component that lets the user click it and change state between checked, unchecked, and if possible, grayed
+
* [[Lua:Class:CheckBox|CheckBox]]: The Checkbox is a visual component that lets the user click it and change state between checked, unchecked, and if possible, grayed
* [[Component]] : Base class for all components that need owner-owned functionality.
+
* [[Lua:Class:Component|Component]] : Base class for all components that need owner-owned functionality.
* [[Control]] : Base class for visible controls.
+
* [[Lua:Class:Control|Control]] : Base class for visible controls.
* [[Collection]]: The Collection class is an abstract class that the ListColumns class implements (And perhaps other classes as well)
+
* [[Lua:Class:Collection|Collection]]: The Collection class is an abstract class that the ListColumns class implements (And perhaps other classes as well)
* [[CollectionItem]]:  Basic object that is managed by a Collection class
+
* [[Lua:Class:CollectionItem|CollectionItem]]:  Basic object that is managed by a Collection class
* [[ComboBox]]: The Combobox is like an edit field with a ListBox attached to it
+
* [[Lua:Class:ComboBox|ComboBox]]: The Combobox is like an edit field with a ListBox attached to it
* [[CriticalSection]]:  
+
* [[Lua:Class:CriticalSection|CriticalSection]]:  
* [[CustomControl]]: Base class for windowed controls which paint themselves
+
* [[Lua:Class:CustomControl|CustomControl]]: Base class for windowed controls which paint themselves
* [[CustomType]]: The custom type is an convertor of raw data, to a human readable interpretation.
+
* [[Lua:Class:CustomType|CustomType]]: The custom type is an convertor of raw data, to a human readable interpretation.
* [[D3DHOOK]]: The d3dhook functions provide a method to render graphics and text inside the game, as long as it is running in directx9, 10 or 11
+
* [[Lua:Class:D3DHOOK|D3DHOOK]]: The d3dhook functions provide a method to render graphics and text inside the game, as long as it is running in directx9, 10 or 11
* [[D3DHook_FontMap]]: A fontmap is a texture that contains extra data regarding the characters
+
* [[Lua:Class:D3DHook_FontMap|D3DHook_FontMap]]: A fontmap is a texture that contains extra data regarding the characters
* [[D3DHook_Texture]]: This class controls the texture in memory. Without a sprite to use it, it won't show
+
* [[Lua:Class:D3DHook_Texture|D3DHook_Texture]]: This class controls the texture in memory. Without a sprite to use it, it won't show
* [[D3Dhook_TextContainer]]: A d3dhook_sprite class draws a piece of text on the screen based on the used fontmap
+
* [[Lua:Class:D3Dhook_TextContainer|D3Dhook_TextContainer]]: A d3dhook_sprite class draws a piece of text on the screen based on the used fontmap
* [[D3DHook_RenderObject]]: The renderobject is the abstract class used to control in what manner objects are rendered.
+
* [[Lua:Class:D3DHook_RenderObject|D3DHook_RenderObject]]: The renderobject is the abstract class used to control in what manner objects are rendered.
* [[D3DHook_Sprite]]: A d3dhook_sprite class is a visible texture on the screen
+
* [[Lua:Class:D3DHook_Sprite|D3DHook_Sprite]]: A d3dhook_sprite class is a visible texture on the screen
* [[Disassembler]]:  
+
* [[Lua:Class:Disassembler|Disassembler]]:  
* [[Disassemblerview]]: The visual disassembler used in the memory view window
+
* [[Lua:Class:Disassemblerview|Disassemblerview]]: The visual disassembler used in the memory view window
* [[DisassemblerviewLine]]:  
+
* [[Lua:Class:DisassemblerviewLine|DisassemblerviewLine]]:  
* [[DissectCode]]:  
+
* [[Lua:Class:DissectCode|DissectCode]]:  
* [[Edit]]: The Edit class is a visual component that lets the user type in data (Use control_getCaption to get the user input)
+
* [[Lua:Class:Edit|Edit]]: The Edit class is a visual component that lets the user type in data (Use control_getCaption to get the user input)
* [[Event]]:  
+
* [[Lua:Class:Event|Event]]:  
* [[FileStream]]: The FileStream class is a Stream class that is linked to an open file on disk
+
* [[Lua:Class:FileStream|FileStream]]: The FileStream class is a Stream class that is linked to an open file on disk
* [[FileDialog]]:  
+
* [[Lua:Class:FileDialog|FileDialog]]:  
* [[FindDialog]]:  
+
* [[Lua:Class:FindDialog|FindDialog]]:  
* [[Font]]: Class that defines a font
+
* [[Lua:Class:Font|Font]]: Class that defines a font
* [[Form]]: Class that defines a window
+
* [[Lua:Class:Form|Form]]: Class that defines a window
* [[FoundList]]: The foundlist is an companion class to MemScan. It opens the current memscan's result file and provides an interface for reading out the addresses
+
* [[Lua:Class:FoundList|FoundList]]: The foundlist is an companion class to MemScan. It opens the current memscan's result file and provides an interface for reading out the addresses
* [[GenericHotkey]]: Lets you register hotkeys to Cheat Engine's internal hotkey handler
+
* [[Lua:Class:GenericHotkey|GenericHotkey]]: Lets you register hotkeys to Cheat Engine's internal hotkey handler
* [[Graphic]]: Base class for dealing with Graphic images (Abstract)
+
* [[Lua:Class:Graphic|Graphic]]: Base class for dealing with Graphic images (Abstract)
* [[GraphicControl]]: Class that supports simple lightweight controls that do not need the ability to accept keyboard input or contain other controls.  
+
* [[Lua:Class:GraphicControl|GraphicControl]]: Class that supports simple lightweight controls that do not need the ability to accept keyboard input or contain other controls.  
* [[GroupBox]]: The groupbox class is like a Panel, but then has a header on top
+
* [[Lua:Class:GroupBox|GroupBox]]: The groupbox class is like a Panel, but then has a header on top
* [[Hexadecimal]]: The visual hexadecimal object used on the memory view window
+
* [[Lua:Class:Hexadecimal|Hexadecimal]]: The visual hexadecimal object used on the memory view window
* [[Hexadecimalview]]: The visual hexadecimal object used on the memory view window
+
* [[Lua:Class:Hexadecimalview|Hexadecimalview]]: The visual hexadecimal object used on the memory view window
* [[Icon]]:  
+
* [[Lua:Class:Icon|Icon]]:  
* [[Image]]: The Image class is a visual component that lets you show an image
+
* [[Lua:Class:Image|Image]]: The Image class is a visual component that lets you show an image
* [[Internet]]:  
+
* [[Lua:Class:Internet|Internet]]:  
* [[JpegImage]]:  
+
* [[Lua:Class:JpegImage|JpegImage]]:  
* [[Label]]: The Label class is a visual component that lets you display text
+
* [[Lua:Class:Label|Label]]: The Label class is a visual component that lets you display text
* [[LuaPipe]]: Abstract class that [[LuaPipeServer]] and [[LuaPipeclient]] inherit from
+
* [[Lua:Class:LuaPipe|LuaPipe]]: Abstract class that [[Lua:Class:LuaPipeServer|LuaPipeServer]] and [[Lua:Class:LuaPipeclient|LuaPipeclient]] inherit from
* [[LuaPipeClient]]: Class implementing a client that connects to a pipe
+
* [[Lua:Class:LuaPipeClient|LuaPipeClient]]: Class implementing a client that connects to a pipe
* [[LuaPipeServer]]: Class launching the server side of a pipe
+
* [[Lua:Class:LuaPipeServer|LuaPipeServer]]: Class launching the server side of a pipe
* [[ListBox]]: The listbox class is a visual component with a list of selectable strings
+
* [[Lua:Class:ListBox|ListBox]]: The listbox class is a visual component with a list of selectable strings
* [[ListColumn]]: The listcolumn class is an implemented CollectionItem class which is used by the ListColumns class of the listview class
+
* [[Lua:Class:ListColumn|ListColumn]]: The listcolumn class is an implemented CollectionItem class which is used by the ListColumns class of the listview class
* [[ListColumns]]: The ListColumns class contains the Column class objects of a ListView object
+
* [[Lua:Class:ListColumns|ListColumns]]: The ListColumns class contains the Column class objects of a ListView object
* [[ListItem]]: The ListItem class object is an entry in a ListView
+
* [[Lua:Class:ListItem|ListItem]]: The ListItem class object is an entry in a ListView
* [[ListItems]]: The listItems class is a container for the ListItem class objects of a Listview
+
* [[Lua:Class:ListItems|ListItems]]: The listItems class is a container for the ListItem class objects of a Listview
* [[Listview]]: The listview class lets you have a listbox like component with resizable columns
+
* [[Lua:Class:Listview|Listview]]: The listview class lets you have a listbox like component with resizable columns
* [[MainMenu]]: The menu at the top of a form
+
* [[Lua:Class:MainMenu|MainMenu]]: The menu at the top of a form
* [[Memo]]: The Memo class is a multiline edit field
+
* [[Lua:Class:Memo|Memo]]: The Memo class is a multiline edit field
* [[MemScan]]: The memscan class is the memory scanner of Cheat engine
+
* [[Lua:Class:MemScan|MemScan]]: The memscan class is the memory scanner of Cheat engine
* [[Menu]]: Common Class ancestor for the MainMenu and PopupMenu classes
+
* [[Lua:Class:Menu|Menu]]: Common Class ancestor for the MainMenu and PopupMenu classes
* [[MenuItem]]: Holds the menuitems of a Menu, PopupMenu or even another MenuItem
+
* [[Lua:Class:MenuItem|MenuItem]]: Holds the menuitems of a Menu, PopupMenu or even another MenuItem
* [[MemoryRecord]]: The Memoryrecord class object describes a Cheat Table's Cheat Entry.
+
* [[Lua:Class:MemoryRecord|MemoryRecord]]: The Memoryrecord class object describes a Cheat Table's Cheat Entry.
* [[MemoryRecordHotkey]]: The memoryRecordHotkey class object is part of a MemoryRecord class. It's used as an interface to each individual hotkey inside a Cheat Table
+
* [[Lua:Class:MemoryRecordHotkey|MemoryRecordHotkey]]: The memoryRecordHotkey class object is part of a MemoryRecord class. It's used as an interface to each individual hotkey inside a Cheat Table
* [[MemoryStream]]: The memorystream class is a Stream class that is stored completely in memory. Because it's a stream there are multiple functions that can work with it
+
* [[Lua:Class:MemoryStream|MemoryStream]]: The memorystream class is a Stream class that is stored completely in memory. Because it's a stream there are multiple functions that can work with it
* [[Memoryview]]: The memoryview class is the Memory view window of Cheat Engine. Use this as a basis to access the objects inside this window
+
* [[Lua:Class:Memoryview|Memoryview]]: The memoryview class is the Memory view window of Cheat Engine. Use this as a basis to access the objects inside this window
* [[MultiReadExclusiveWriteSynchronizer]]:  
+
* [[Lua:Class:MultiReadExclusiveWriteSynchronizer|MultiReadExclusiveWriteSynchronizer]]:  
* [[Object]]: Most basic class. All classes inherit from this class
+
* [[Lua:Class:Object|Object]]: Most basic class. All classes inherit from this class
* [[PaintBox]]:  
+
* [[Lua:Class:PaintBox|PaintBox]]:  
* [[Pagecontrol]]: This is an object that can hold multiple pages
+
* [[Lua:Class:Pagecontrol|Pagecontrol]]: This is an object that can hold multiple pages
* [[Panel]]: The Panel class is like a form which can contain visual components.
+
* [[Lua:Class:Panel|Panel]]: The Panel class is like a form which can contain visual components.
* [[Pen]]: The Pen class is part of the Canvas object. It's used to draw lines
+
* [[Lua:Class:Pen|Pen]]: The Pen class is part of the Canvas object. It's used to draw lines
* [[Picture]]: Container for the Graphic class
+
* [[Lua:Class:Picture|Picture]]: Container for the Graphic class
* [[PopupMenu]]: The menu that shows when rightclicking on an object
+
* [[Lua:Class:PopupMenu|PopupMenu]]: The menu that shows when rightclicking on an object
* [[PortableNetworkGraphic]]:  
+
* [[Lua:Class:PortableNetworkGraphic|PortableNetworkGraphic]]:  
* [[ProgressBar]]: The progressbar class is a visual representation for a bar that can show the current progress on something
+
* [[Lua:Class:ProgressBar|ProgressBar]]: The progressbar class is a visual representation for a bar that can show the current progress on something
* [[RadioGroup]]: The radiogroup is like a GroupBox but autopopulated using the Items(Strings object)
+
* [[Lua:Class:RadioGroup|RadioGroup]]: The radiogroup is like a GroupBox but autopopulated using the Items(Strings object)
* [[RasterImage]]: Base class for some graphical controls
+
* [[Lua:Class:RasterImage|RasterImage]]: Base class for some graphical controls
* [[RIPRelativeScanner]]:  
+
* [[Lua:Class:RIPRelativeScanner|RIPRelativeScanner]]:  
* [[OpenDialog]]: The OpenDialog class is used for selecting files to open.
+
* [[Lua:Class:OpenDialog|OpenDialog]]: The OpenDialog class is used for selecting files to open.
* [[SaveDialog]]: The SaveDialog class is based on the OpenDialog class but is used to select a file for saving
+
* [[Lua:Class:SaveDialog|SaveDialog]]: The SaveDialog class is based on the OpenDialog class but is used to select a file for saving
* [[SelectDirectoryDialog]]:  
+
* [[Lua:Class:SelectDirectoryDialog|SelectDirectoryDialog]]:  
* [[Semaphore]]:  
+
* [[Lua:Class:Semaphore|Semaphore]]:  
* [[Settings]]: This class can be used to read out and set settings of cheat engine and of plugins, and store your own data
+
* [[Lua:Class:Settings|Settings]]: This class can be used to read out and set settings of cheat engine and of plugins, and store your own data
* [[Splitter]]: The Splitter class is a visual component that lets the user re-size neighboring components)
+
* [[Lua:Class:Splitter|Splitter]]: The Splitter class is a visual component that lets the user re-size neighboring components)
* [[Stringlist]]: Class that holds a list of strings
+
* [[Lua:Class:Stringlist|Stringlist]]: Class that holds a list of strings
* [[Strings]]: Abstract class that some text based classes make use of
+
* [[Lua:Class:Strings|Strings]]: Abstract class that some text based classes make use of
* [[StringStream]]:
+
* [[Lua:Class:StringStream|StringStream]]:
* [[Structure]]:  
+
* [[Lua:Class:Structure|Structure]]:  
* [[StructureElement]]:  
+
* [[Lua:Class:StructureElement|StructureElement]]:  
* [[StructureFrm]]:  
+
* [[Lua:Class:StructureFrm|StructureFrm]]:  
* [[structGroup]]:  
+
* [[Lua:Class:structGroup|structGroup]]:  
* [[SymbolList]]: This class can be used to look up an address to a symbolname, and a symbolname to an address
+
* [[Lua:Class:SymbolList|SymbolList]]: This class can be used to look up an address to a symbolname, and a symbolname to an address
* [[TabSheet]]: Part of a page control
+
* [[Lua:Class:TabSheet|TabSheet]]: Part of a page control
* [[TableFile]]: Tablefiles are files stored into a Cheat Table. You can access the data of such a file using this class
+
* [[Lua:Class:TableFile|TableFile]]: Tablefiles are files stored into a Cheat Table. You can access the data of such a file using this class
* [[Thread]]:  
+
* [[Lua:Class:Thread|Thread]]:  
* [[Timer]]: The timer class is an non visual component that when active triggers an onTimer event every few milliseconds, based on the given interval
+
* [[Lua:Class:Timer|Timer]]: The timer class is an non visual component that when active triggers an onTimer event every few milliseconds, based on the given interval
* [[ToggleBox]]: The togglebox is like a button, but can stay down. Use with the checkbox methods
+
* [[Lua:Class:ToggleBox|ToggleBox]]: The togglebox is like a button, but can stay down. Use with the checkbox methods
* [[TrackBar]]: The trackbar class is a slider you can drag arround and read/set the state
+
* [[Lua:Class:TrackBar|TrackBar]]: The trackbar class is a slider you can drag arround and read/set the state
* [[TreeNode]]:  
+
* [[Lua:Class:TreeNode|TreeNode]]:  
* [[TreeNodes]]:  
+
* [[Lua:Class:TreeNodes|TreeNodes]]:  
* [[Treeview]]:  
+
* [[Lua:Class:Treeview|Treeview]]:  
* [[Wincontrol]]: Base class for controls which can contain other controls.
+
* [[Lua:Class:Wincontrol|Wincontrol]]: Base class for controls which can contain other controls.
* [[xmplayer]]:  
+
* [[Lua:Class:xmplayer|xmplayer]]:  
  
  
Line 593: Line 593:
  
 
== Class Helper Functions ==
 
== Class Helper Functions ==
* [[inheritsFromObject]]: Returns true if given any class
+
* [[Lua:inheritsFromObject|inheritsFromObject]]: Returns true if given any class
* [[inheritsFromComponent]]: Returns true if the given object inherits from the Component class
+
* [[Lua:inheritsFromComponent|inheritsFromComponent]]: Returns true if the given object inherits from the Component class
* [[inheritsFromControl]]: Returns true if the given object inherits from the Control class
+
* [[Lua:inheritsFromControl|inheritsFromControl]]: Returns true if the given object inherits from the Control class
* [[inheritsFromWinControl]]: Returns true if the given object inherits from the WinControl class
+
* [[Lua:inheritsFromWinControl|inheritsFromWinControl]]: Returns true if the given object inherits from the WinControl class
* [[createClass]]: Creates an object of the specified class (Assuming it's a registered class and has a default constructor)
+
* [[Lua:createClass|createClass]]: Creates an object of the specified class (Assuming it's a registered class and has a default constructor)
* [[createComponentClass]]: Creates an object of the specified component inherited class  
+
* [[Lua:createComponentClass|createComponentClass]]: Creates an object of the specified component inherited class  
  
 
== Undefined Class Property Functions ==
 
== Undefined Class Property Functions ==
 
Not all properties of all classes have been explicitly exposed to lua, but if you know the name of a property of a specific class you can still access them (assuming they are declared as published in the pascal class declaration)
 
Not all properties of all classes have been explicitly exposed to lua, but if you know the name of a property of a specific class you can still access them (assuming they are declared as published in the pascal class declaration)
  
* [[getPropertyList]] : Returns a [[StringList]] object containing all the published properties of the specified class
+
* [[Lua:getPropertyList|getPropertyList]]: Returns a [[Lua:Class:StringList|StringList]] object containing all the published properties of the specified class
* [[setProperty]] : Sets the value of a published property of a class (Won't work for method properties)
+
* [[Lua:setProperty|setProperty]]: Sets the value of a published property of a class (Won't work for method properties)
* [[getProperty]] : Gets the value of a published property of a class (Won't work for method properties)
+
* [[Lua:getProperty|getProperty]]: Gets the value of a published property of a class (Won't work for method properties)
* [[setMethodProperty]]: Sets the method property to the specific function
+
* [[Lua:setMethodProperty|setMethodProperty]]: Sets the method property to the specific function
* [[getMethodProperty]]: Returns a function you can use to call the original function
+
* [[Lua:getMethodProperty|getMethodProperty]]: Returns a function you can use to call the original function

Revision as of 00:29, 25 January 2018

Cheat Engine comes with an extensive set of Lua functions you can use inside cheat tables, trainers and standalone scripts.


Variables

Globals

  • TrainerOrigin: A variable that contains the path of the trainer that launched cheat engine (Only set when launched as a trainer)
  • process: A variable that contains the main modulename of the currently opened process
  • MainForm: The main ce gui
  • AddressList: The address list of the main ce gui

Variables

  • Debug Variables
    • EFLAGS
    • 32/64-bit: EAX, EBX, ECX, EDX, EDI, ESI, EBP, ESP, EIP
    • 64-bit only: RAX, RBX, RCX, RDX, RDI, RSI, RBP, RSP, RIP, R8, R9, R10, R11, R12, R13, R14, R15 : The value of the register


Functions

Cheat table

These functions help manage the cheat table.


Trainers


Protection

  • activateProtection: Prevents basic memory scanners from opening the cheat engine process
  • enableDRM: Prevents normal memory scanners from reading the Cheat Engine process (kernelmode)
  • encodeFunction: Converts a given function into an encoded string that you can pass on to decodeFunction
  • decodeFunction: Converts an encoded string back into a function


Scanning

These functions control Cheat Engine's scanning.


Process


Threads

  • getCPUCount: Returns the number of CPU's
  • getThreadlist: Fills a List object with the threadlist of the currently opened process
  • inMainThread: Returns true if the current code is running inside the main thread (6.4+)
  • synchronize: Calls the given function from the main thread. Returns the return value of the given function
  • queue: Calls the given function from the main thread. Does not wait for the result
  • checkSynchronize: Call this from an infinite loop in the main thread when using threading and synchronize calls


Handles

  • getHandleList: Returns a table with all the handles in the system


Addresses

These functions help convert between memory addresses and symbols/CEAddressStrings.


Memory


These functions read/write memory from the opened process.

Reading

  • readBytes: Returns the bytes at the given address. If ReturnAsTable is true it will return a table instead of multiple bytes
  • readSmallInteger: Reads a 16-bit integer from the specified address.
  • readInteger: Reads a 32-bit integer from the specified address.
  • readQword: Reads a 64-bit integer from the specified address.
  • readPointer: In a 64-bit target this equals readQword, in a 32-bit target readInteger().
  • readFloat: Reads a single precision floating point value from the specified address
  • readDouble: Reads a double precision floating point value from the specified address
  • readString: Reads a string from memory until it hits a 0-terminator. maxlength is just so you won't freeze for too long
  • readRegionFromFile: Writes the given file to a specific address


Writing

  • writeBytes: Write the given bytes to the given address from a table
  • writeSmallInteger: Writes a 16-bit integer to the specified address. Returns true on success.
  • writeInteger: Writes a 32-bit integer to the specified address. Returns true on success.
  • writeQword: Write a 64-bit integer to the specified address. Returns true on success.
  • writeFloat: Writes a single precision floating point to the specified address. Returns true on success.
  • writeDouble: Writes a double precision floating point to the specified address. Returns true on success.
  • writeString: Write a string to the specified address. Returns true on success.
  • writeRegionToFile: Writes the given region to a file. Returns the number of bytes written.
  • writeSmallIntegerLocal: Writes a 16-bit integer to the specified address in CE's memory. Returns true on success
  • writeIntegerLocal: Writes a 32-bit integer to the specified address in CE's memory. Returns true on success
  • writeQwordLocal: Writes a 64-bit integer to the specified address in CE's memory. Returns true on success
  • writeFloatLocal: Writes a single precision floating point to the specified address in CE's memory. Returns true on success
  • writeDoubleLocal: Writes a double precision floating point to the specified address in CE's memory. Returns true on success
  • writeStringLocal: Write a string to the specified address. Returns true on success.
  • writeBytesLocal: See writeBytes but then it's for Cheat Engine's memory

Convertions

To Byte Table

From Byte Table


Binary


Input devices

These functions get/set keyboard/mouse input.

Game Controller

Clipboard


Screen


Sounds

xmplayer


Text to Speech


Fonts


Forms and Windows


Cheat Engine

These functions help manage Cheat Engine itself.

Forms

Messages

Input

  • inputQuery: Shows a dialog where the user can input a string. This function returns the given string, or nil on cancel (CE6.4+)

Shortcuts

  • shortCutToText: Returns the textual representation of the given shortcut value (integer) (6.4+)
  • textToShortCut: Returns an shortcut integer that the given string represents. (6.4+)
  • convertKeyComboToString: Returns a string representation of the given keys like the hot-key handler does

Speed Hack


Lua

These functions help manage Lua itself.

  • resetLuaState: This will create a new Lua state that will be used.
  • sleep: Pauses for the number of specified milliseconds
  • createRef: Integer - Returns an integer reference that you can use with getRef
  • getRef: Returns whatever the reference points out
  • destroyRef: Removes the reference


Types

These functions help structure a process's memory into datatypes.


Object-oriented

These functions determine how a Lua object fits in the class hierarchy.


Assembly

These functions help work with the x86 machine code as assembly.

  • autoAssemble: Runs the auto assembler with the given text
  • autoAssembleCheck: Checks the script for syntax errors. Returns true on succes, false with an error message on failure
  • disassemble: Disassembles the given address and returns a string in the format of "address - bytes - opcode extra"
  • splitDisassembledString: Returns 4 strings. The address, bytes, opcode and extra field
  • getInstructionSize: Returns the size of an instruction
  • getPreviousOpcode: Returns the address of the previous opcode (guess)
  • registerAssembler: Registers a function to be called when the single line assembler is invoked to convert an instruction to a list of bytes
  • unregisterAssembler: Unregisters the registered assembler


Auto Assembler


Scripts


Debugger

These functions manage the debugger. See Lua Debugging.


DBK


DBVM


Translation

  • getTranslationFolder: Returns the path of the current translation files, empty if there is no translation going on
  • loadPOFile: Loads a ".PO" file used for translation
  • translate: Returns a translation of the string, returns the same string if it can't be found
  • translateID: Returns a translation of the string ID


Files

  • getFileVersion: Returns the 64-bit file version, and a table that has split up the file version into major, minor, release and build
  • getFileList: Returns an indexed table with filenames
  • getDirectoryList: Returns an indexed table with directory names


Structures


Miscellaneous


Classes

Besides the above functions, Cheat Engine also implements some classes.

  • Addresslist: The addresslist class is a container for memory records
  • Bitmap: Bitmap based Graphic object
  • Brush: The brush class is part of the Canvas object. It's used to fill surfaces
  • Button: The button class is a visual component in the shape of a button.
  • ButtonControl: Common ancestor of several button like objects.
  • Canvas: The canvas class is a graphical class. It allows you do draw lines, pictures, and text on top of other object. Usually used in onPaint events and other graphical events
  • Calendar:
  • CEForm:
  • CheatComponent: The cheatcomponent class is the component used in Cheat Engine 5.x trainers
  • CheckBox: The Checkbox is a visual component that lets the user click it and change state between checked, unchecked, and if possible, grayed
  • Component : Base class for all components that need owner-owned functionality.
  • Control : Base class for visible controls.
  • Collection: The Collection class is an abstract class that the ListColumns class implements (And perhaps other classes as well)
  • CollectionItem: Basic object that is managed by a Collection class
  • ComboBox: The Combobox is like an edit field with a ListBox attached to it
  • CriticalSection:
  • CustomControl: Base class for windowed controls which paint themselves
  • CustomType: The custom type is an convertor of raw data, to a human readable interpretation.
  • D3DHOOK: The d3dhook functions provide a method to render graphics and text inside the game, as long as it is running in directx9, 10 or 11
  • D3DHook_FontMap: A fontmap is a texture that contains extra data regarding the characters
  • D3DHook_Texture: This class controls the texture in memory. Without a sprite to use it, it won't show
  • D3Dhook_TextContainer: A d3dhook_sprite class draws a piece of text on the screen based on the used fontmap
  • D3DHook_RenderObject: The renderobject is the abstract class used to control in what manner objects are rendered.
  • D3DHook_Sprite: A d3dhook_sprite class is a visible texture on the screen
  • Disassembler:
  • Disassemblerview: The visual disassembler used in the memory view window
  • DisassemblerviewLine:
  • DissectCode:
  • Edit: The Edit class is a visual component that lets the user type in data (Use control_getCaption to get the user input)
  • Event:
  • FileStream: The FileStream class is a Stream class that is linked to an open file on disk
  • FileDialog:
  • FindDialog:
  • Font: Class that defines a font
  • Form: Class that defines a window
  • FoundList: The foundlist is an companion class to MemScan. It opens the current memscan's result file and provides an interface for reading out the addresses
  • GenericHotkey: Lets you register hotkeys to Cheat Engine's internal hotkey handler
  • Graphic: Base class for dealing with Graphic images (Abstract)
  • GraphicControl: Class that supports simple lightweight controls that do not need the ability to accept keyboard input or contain other controls.
  • GroupBox: The groupbox class is like a Panel, but then has a header on top
  • Hexadecimal: The visual hexadecimal object used on the memory view window
  • Hexadecimalview: The visual hexadecimal object used on the memory view window
  • Icon:
  • Image: The Image class is a visual component that lets you show an image
  • Internet:
  • JpegImage:
  • Label: The Label class is a visual component that lets you display text
  • LuaPipe: Abstract class that LuaPipeServer and LuaPipeclient inherit from
  • LuaPipeClient: Class implementing a client that connects to a pipe
  • LuaPipeServer: Class launching the server side of a pipe
  • ListBox: The listbox class is a visual component with a list of selectable strings
  • ListColumn: The listcolumn class is an implemented CollectionItem class which is used by the ListColumns class of the listview class
  • ListColumns: The ListColumns class contains the Column class objects of a ListView object
  • ListItem: The ListItem class object is an entry in a ListView
  • ListItems: The listItems class is a container for the ListItem class objects of a Listview
  • Listview: The listview class lets you have a listbox like component with resizable columns
  • MainMenu: The menu at the top of a form
  • Memo: The Memo class is a multiline edit field
  • MemScan: The memscan class is the memory scanner of Cheat engine
  • Menu: Common Class ancestor for the MainMenu and PopupMenu classes
  • MenuItem: Holds the menuitems of a Menu, PopupMenu or even another MenuItem
  • MemoryRecord: The Memoryrecord class object describes a Cheat Table's Cheat Entry.
  • MemoryRecordHotkey: The memoryRecordHotkey class object is part of a MemoryRecord class. It's used as an interface to each individual hotkey inside a Cheat Table
  • MemoryStream: The memorystream class is a Stream class that is stored completely in memory. Because it's a stream there are multiple functions that can work with it
  • Memoryview: The memoryview class is the Memory view window of Cheat Engine. Use this as a basis to access the objects inside this window
  • MultiReadExclusiveWriteSynchronizer:
  • Object: Most basic class. All classes inherit from this class
  • PaintBox:
  • Pagecontrol: This is an object that can hold multiple pages
  • Panel: The Panel class is like a form which can contain visual components.
  • Pen: The Pen class is part of the Canvas object. It's used to draw lines
  • Picture: Container for the Graphic class
  • PopupMenu: The menu that shows when rightclicking on an object
  • PortableNetworkGraphic:
  • ProgressBar: The progressbar class is a visual representation for a bar that can show the current progress on something
  • RadioGroup: The radiogroup is like a GroupBox but autopopulated using the Items(Strings object)
  • RasterImage: Base class for some graphical controls
  • RIPRelativeScanner:
  • OpenDialog: The OpenDialog class is used for selecting files to open.
  • SaveDialog: The SaveDialog class is based on the OpenDialog class but is used to select a file for saving
  • SelectDirectoryDialog:
  • Semaphore:
  • Settings: This class can be used to read out and set settings of cheat engine and of plugins, and store your own data
  • Splitter: The Splitter class is a visual component that lets the user re-size neighboring components)
  • Stringlist: Class that holds a list of strings
  • Strings: Abstract class that some text based classes make use of
  • StringStream:
  • Structure:
  • StructureElement:
  • StructureFrm:
  • structGroup:
  • SymbolList: This class can be used to look up an address to a symbolname, and a symbolname to an address
  • TabSheet: Part of a page control
  • TableFile: Tablefiles are files stored into a Cheat Table. You can access the data of such a file using this class
  • Thread:
  • Timer: The timer class is an non visual component that when active triggers an onTimer event every few milliseconds, based on the given interval
  • ToggleBox: The togglebox is like a button, but can stay down. Use with the checkbox methods
  • TrackBar: The trackbar class is a slider you can drag arround and read/set the state
  • TreeNode:
  • TreeNodes:
  • Treeview:
  • Wincontrol: Base class for controls which can contain other controls.
  • xmplayer:


SQL Classes


Class Helper Functions

Undefined Class Property Functions

Not all properties of all classes have been explicitly exposed to lua, but if you know the name of a property of a specific class you can still access them (assuming they are declared as published in the pascal class declaration)

  • getPropertyList: Returns a StringList object containing all the published properties of the specified class
  • setProperty: Sets the value of a published property of a class (Won't work for method properties)
  • getProperty: Gets the value of a published property of a class (Won't work for method properties)
  • setMethodProperty: Sets the method property to the specific function
  • getMethodProperty: Returns a function you can use to call the original function