Difference between revisions of "Lua"

From Cheat Engine
Jump to navigation Jump to search
(Screen)
 
(14 intermediate revisions by 7 users not shown)
Line 9: 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 26: 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 115: 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 160: 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 183: 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 193: 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 220: 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 ==
Line 423: 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 452: 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 463: 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 536: 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 569: 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