Difference between revisions of "Lua"

From Cheat Engine
Jump to navigation Jump to search
(Screen)
 
(16 intermediate revisions by 7 users not shown)
Line 1: Line 1:
 +
<!-- Updated to 6.7 celua.text TheyCallMeTim13 -->
 
[[Category:Lua]]
 
[[Category:Lua]]
 
Cheat Engine comes with an extensive set of Lua functions you can use inside cheat tables, trainers and standalone scripts.
 
Cheat Engine comes with an extensive set of Lua functions you can use inside cheat tables, trainers and standalone scripts.
Line 8: Line 9:
 
* [[Lua:TrainerOrigin|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)
 
* [[Lua:process|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
* [[Lua:MainForm|MainForm]]: The main ce gui
+
* [[Lua:MainForm|MainForm]]: The main Cheat Engine gui
* [[Lua:AddressList|AddressList]]: The address list of the main ce gui
+
* [[Lua:AddressList|AddressList]]: The address list of the main Cheat Engine gui
  
 
== Variables ==
 
== Variables ==
* [[Lua:Debug|Debug Variables]]
+
* [[Lua:Debug_Variables|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
 
** '''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
 
** '''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 =
 
= Functions =
Line 25: Line 25:
 
* [[Lua:getAddressList|getAddressList]]: Returns the cheat table [[Lua:Class:Addresslist|Addresslist]] object
 
* [[Lua:getAddressList|getAddressList]]: Returns the cheat table [[Lua:Class:Addresslist|Addresslist]] object
 
* [[Lua:findTableFile|findTableFile]]: Returns a [[Lua:Class:TableFile|TableFile]] stored in the cheat table
 
* [[Lua:findTableFile|findTableFile]]: Returns a [[Lua:Class:TableFile|TableFile]] stored in the cheat table
 +
* [[Lua:createTableFile|createTableFile]]: Add a new file to a cheat table
 
* [[Lua:loadTable|loadTable]]: Loads a ".ct" or ".cetrainer" file or stream
 
* [[Lua:loadTable|loadTable]]: Loads a ".ct" or ".cetrainer" file or stream
 
* [[Lua:saveTable|saveTable]]: Saves the current table
 
* [[Lua:saveTable|saveTable]]: Saves the current table
 
  
 
== Trainers ==
 
== Trainers ==
Line 114: Line 114:
 
* [[Lua:mapMemory|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
 
* [[Lua:unmapMemory|unmapMemory]]:  
 
* [[Lua:unmapMemory|unmapMemory]]:  
 
+
* [[Lua:createMemoryStream|createMemoryStream]]:
  
 
These functions read/write memory from the opened process.
 
These functions read/write memory from the opened process.
Line 159: Line 159:
 
** [[Lua:readSmallInteger|readSmallInteger]], [[Lua:readInteger|readInteger]], [[Lua:readSmallIntegerLocal|readSmallIntegerLocal]], [[Lua:readIntegerLocal|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 ==
+
== Conversions ==
* [[Lua:ansiToUtf8|ansiToUtf8]]: Converts a string in Ansi encoding to UTF8
+
* [[Lua:ansiToUtf8|ansiToUtf8]]: Converts a string in ANSI encoding to UTF8
* [[Lua:utf8ToAnsi|utf8ToAnsi]]: Converts a string in UTF8 encoding to Ansi
+
* [[Lua:utf8ToAnsi|utf8ToAnsi]]: Converts a string in UTF8 encoding to ANSI
* [[Lua:stringToMD5String|stringToMD5String]]: Returns an md5 hash string from the provided string
+
* [[Lua:stringToMD5String|stringToMD5String]]: Returns an MD5 hash string from the provided string
 
* [[Lua:integerToUserData|integerToUserData]]: Converts a given integer to a userdata variable
 
* [[Lua:integerToUserData|integerToUserData]]: Converts a given integer to a userdata variable
 
* [[Lua:userDataToInteger|userDataToInteger]]: Converts a given userdata variable to an integer
 
* [[Lua:userDataToInteger|userDataToInteger]]: Converts a given userdata variable to an integer
Line 182: Line 182:
 
* [[Lua:byteTableToDouble|byteTableToDouble]]: Converts a bytetable to a double
 
* [[Lua:byteTableToDouble|byteTableToDouble]]: Converts a bytetable to a double
 
* [[Lua:byteTableToString|byteTableToString]]: Converts a bytetable to a string
 
* [[Lua:byteTableToString|byteTableToString]]: Converts a bytetable to a string
* [[Lua:byteTableToWideString|byteTableToWideString]]: Converts a bytetable to a widestring and convets that to a string
+
* [[Lua:byteTableToWideString|byteTableToWideString]]: Converts a bytetable to a widestring and converts that to a string
  
  
Line 192: Line 192:
 
* [[Lua:bShr|bShr]]: Binary shift right
 
* [[Lua:bShr|bShr]]: Binary shift right
 
* [[Lua:bNot|bNot]]: Binary not
 
* [[Lua:bNot|bNot]]: Binary not
 
  
 
== Input devices ==
 
== Input devices ==
Line 219: Line 218:
 
* [[Lua:getScreenHeight|getScreenHeight]]: Returns the screen height
 
* [[Lua:getScreenHeight|getScreenHeight]]: Returns the screen height
 
* [[Lua:getScreenWidth|getScreenWidth]]: Returns the screen  width
 
* [[Lua:getScreenWidth|getScreenWidth]]: Returns the screen  width
 +
* [[Lua:getScreenDPI|getScreenDPI]]: Returns the screen DPI
 
* [[Lua:getWorkAreaHeight|getWorkAreaHeight]]: Returns the work area height
 
* [[Lua:getWorkAreaHeight|getWorkAreaHeight]]: Returns the work area height
 
* [[Lua:getWorkAreaWidth|getWorkAreaWidth]]: Returns the work area width
 
* [[Lua:getWorkAreaWidth|getWorkAreaWidth]]: Returns the work area width
 
* [[Lua:getScreenCanvas|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)
 
* [[Lua:getPixel|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 ==
 
* [[Lua:playSound|playSound]]: Plays a sound file
 
* [[Lua:playSound|playSound]]: Plays a sound file
 
* [[Lua:beep|beep]]: Plays the fabulous beep/ping sound!
 
* [[Lua:beep|beep]]: Plays the fabulous beep/ping sound!
* [[Lua:speak|speak]]: Speaks a given text
 
 
* [[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]
 
* [[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]
 
* [[Lua:speakEnglish|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
Line 238: Line 236:
 
* [[Lua:xmplayer_stop|xmplayer_stop]]: Stops the current xm audio file
 
* [[Lua:xmplayer_stop|xmplayer_stop]]: Stops the current xm audio file
 
* [[Lua:xmplayer_isPlaying|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 ==
Line 424: Line 421:
 
== DBVM ==
 
== DBVM ==
 
* [[Lua:dbvm_initialize|dbvm_initialize]]: Initializes the dbvm functions
 
* [[Lua:dbvm_initialize|dbvm_initialize]]: Initializes the dbvm functions
 +
* [[Lua:dbvm_addMemory|dbvm_addMemory]]: Adds memory to DBVM
 
* [[Lua:dbvm_readMSR|dbvm_readMSR]]: Reads the msr using dbvm (bypasses the driver)
 
* [[Lua:dbvm_readMSR|dbvm_readMSR]]: Reads the msr using dbvm (bypasses the driver)
 
* [[Lua:dbvm_writeMSR|dbvm_writeMSR]]: Writes the msr using dbvm (bypasses the driver)
 
* [[Lua:dbvm_writeMSR|dbvm_writeMSR]]: Writes the msr using dbvm (bypasses the driver)
 
* [[Lua:dbvm_getCR4|dbvm_getCR4]]: Returns the real Control Register 4 state
 
* [[Lua:dbvm_getCR4|dbvm_getCR4]]: Returns the real Control Register 4 state
 
+
* [[Lua:dbvm_readPhysicalMemory|dbvm_readPhysicalMemory]]: Reads physical memory using DBVM
 +
* [[Lua:dbvm_writePhysicalMemory|dbvm_writePhysicalMemory]]: Writes physical memory using DBVM
 +
* [[Lua:dbvm_watch_writes|dbvm_watch_writes]]: Starts memory region write monitoring
 +
* [[Lua:dbvm_watch_reads|dbvm_watch_reads]]: Starts memory region read monitoring
 +
* [[Lua:dbvm_watch_retrievelog|dbvm_watch_retrievelog]]: Receives the result of memory region monitoring
 +
* [[Lua:dbvm_watch_disable|dbvm_watch_disable]]: Disables memory region monitoring
 +
* [[Lua:dbvm_cloak_activate|dbvm_cloak_activate]]: Cloak a page so changes to it will become invisible
 +
* [[Lua:dbvm_cloak_deactivate|dbvm_cloak_deactivate]]: Undo the cloak. Also undoes changes
 +
* [[Lua:dbvm_cloak_readOriginal|dbvm_cloak_readOriginal]]: Read the memory that gets executed in a cloaked region
 +
* [[Lua:dbvm_cloak_writeOriginal|dbvm_cloak_writeOriginal]]: Writes the memory that gets executed in a cloaked region
 +
* [[Lua:dbvm_changeregonbp|dbvm_changeregonbp]] : Cloaks and sets a breakpoint at the given address and change registers when executed
 +
* [[Lua:dbvm_removechangeregonbp|dbvm_removechangeregonbp]]: Removes a change reg on bp breakpoint
 +
* [[Lua:dbvm_log_cr3_start|dbvm_log_cr3_start]] : Start logging CR3 values
 +
* [[Lua:dbvm_log_cr3_stop|dbvm_log_cr3_stop]] : Stop logging CR3 values
 +
* [[Lua:dbvm_speedhack_setSpeed|dbvm_speedhack_setSpeed]] : sets the systemwide speedhack
 +
* [[Lua:dbvm_setTSCAdjust|dbvm_setTSCAdjust]] : Lets you specify what happens when a program tries to detect a virtual machine by calling rdtsc
  
 
== Translation ==
 
== Translation ==
Line 453: Line 466:
 
* [[Lua:shellExecute|shellExecute]]: Executes a given command
 
* [[Lua:shellExecute|shellExecute]]: Executes a given command
 
* [[Lua:executeCode|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
 +
* [[Lua:executeCodeEx|executeCodeEx]]:
 
* [[Lua:executeCodeLocal|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
 +
* [[Lua:executeCodeLocalEx|executeCodeLocalEx]]:
 
* [[Lua:onAPIPointerChange|onAPIPointerChange]]: Registers a callback when an api pointer is changed
 
* [[Lua:onAPIPointerChange|onAPIPointerChange]]: Registers a callback when an api pointer is changed
 
* [[Lua:setAPIPointer|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
Line 464: Line 479:
 
* [[Lua:broadcastEnvironmentUpdate|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
 
* [[Lua:getApplication|getApplication]]: Returns the application object (the titlebar)
 
* [[Lua:getApplication|getApplication]]: Returns the application object (the titlebar)
 
+
* [[Lua:getInternet|getInternet]]: Returns an internet class object.  The string provided will be the name of the client provided
  
 
= Classes =
 
= Classes =
Line 537: Line 552:
 
* [[Lua:Class:Object|Object]]: Most basic class. All classes inherit from this class
 
* [[Lua:Class:Object|Object]]: Most basic class. All classes inherit from this class
 
* [[Lua:Class:PaintBox|PaintBox]]:  
 
* [[Lua:Class:PaintBox|PaintBox]]:  
* [[Lua:Class:Pagecontrol|Pagecontrol]]: This is an object that can hold multiple pages
+
* [[Lua:Class:PageControl|PageControl]]: This is an object that can hold multiple pages
 
* [[Lua:Class:Panel|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.
 
* [[Lua:Class:Pen|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
Line 570: Line 585:
 
* [[Lua:Class:TreeNodes|TreeNodes]]:  
 
* [[Lua:Class:TreeNodes|TreeNodes]]:  
 
* [[Lua:Class:Treeview|Treeview]]:  
 
* [[Lua:Class:Treeview|Treeview]]:  
* [[Lua:Class:Wincontrol|Wincontrol]]: Base class for controls which can contain other controls.
+
* [[Lua:Class:WinControl|WinControl]]: Base class for controls which can contain other controls.
 
* [[Lua:Class:xmplayer|xmplayer]]:  
 
* [[Lua:Class:xmplayer|xmplayer]]:  
  

Latest revision as of 13:51, 30 September 2023

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


Variables[edit]

Globals[edit]

  • 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 Cheat Engine gui
  • AddressList: The address list of the main Cheat Engine gui

Variables[edit]

  • 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[edit]

Cheat table[edit]

These functions help manage the cheat table.

Trainers[edit]


Protection[edit]

  • 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[edit]

These functions control Cheat Engine's scanning.


Process[edit]


Threads[edit]

  • 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[edit]

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


Addresses[edit]

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


Memory[edit]

These functions read/write memory from the opened process.

Reading[edit]

  • 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[edit]

  • 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

Conversions[edit]

To Byte Table[edit]

From Byte Table[edit]


Binary[edit]

Input devices[edit]

These functions get/set keyboard/mouse input.

Game Controller[edit]

Clipboard[edit]


Screen[edit]

Sounds[edit]

xmplayer[edit]

Text to Speech[edit]


Fonts[edit]


Forms and Windows[edit]


Cheat Engine[edit]

These functions help manage Cheat Engine itself.

Forms[edit]

Messages[edit]

Input[edit]

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

Shortcuts[edit]

  • 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[edit]


Lua[edit]

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[edit]

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


Object-oriented[edit]

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


Assembly[edit]

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[edit]


Scripts[edit]


Debugger[edit]

These functions manage the debugger. See Lua Debugging.


DBK[edit]


DBVM[edit]

Translation[edit]

  • 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[edit]

  • 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[edit]


Miscellaneous[edit]

Classes[edit]

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[edit]


Class Helper Functions[edit]

Undefined Class Property Functions[edit]

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