From Cheat Engine

Revision as of 11:51, 19 March 2017 by TheyCallMeTim13 (Talk | contribs)
(diff) ← Older revision | Current revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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


[edit] Functions

[edit] Cheat table

These functions help manage the cheat table.

[edit] Scanning

These functions control Cheat Engine's scanning.

  • AOBScan: Scans the currently opened process and returns a StringList object containing all the results
  • getCurrentMemscan: Returns the currently active scan session as a MemScan object

[edit] Process

[edit] Addresses

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

  • getAddress: Returns the address of a symbol. Can be a modulename or an export
  • getNameFromAddress: Returns the given address in string form, returning the symbol representation if possible
  • registerSymbol: Assign the specified symbolname to an address
  • unregisterSymbol: Remove the name from the address
  • reinitializeSymbolhandler: Reinitializes the symbolhandler. E.g when new modules have been loaded
  • inModule: Returns true if the given address is inside a module
  • inSystemModule: Returns true if the given address is inside a system module
  • errorOnLookupFailure: Set whether address lookups will throw errors, or just return 0.

[edit] Memory

These functions read/write memory from the opened process.

  • readBytes: Returns the bytes at the given address. If ReturnAsTable is true it will return a table instead of multiple bytes
  • readInteger: Reads a integer from the specified address
  • 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
  • writeBytes: Write the given bytes to the given address from a table
  • writeInteger: Writes an integer to the specified address
  • writeFloat: Writes a single precision floating point to the specified address
  • writeDouble: Writes a double precision floating point to the specified address
  • writeString: Write a string to the specified address
  • writeRegionToFile: Writes the given region to a file. Returns the number of bytes written

[edit] Input devices

These functions get/set keyboard/mouse input.

[edit] Cheat Engine

These functions help manage Cheat Engine itself.


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

[edit] Types

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

[edit] Object-oriented

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

[edit] Assembly

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

[edit] Debugger

These functions manage the debugger. See Lua Debugging.

[edit] DBK

[edit] Miscellaneous

Other various Cheat Engine internal objects.

  • getFormCount: Returns the total number of forms assigned to the main CE application
  • getForm: Returns the form at the specific index
  • getMemoryViewForm: Returns the first Memoryview form class object
  • getMainForm: Returns the first Mainform class object
  • getFreezeTimer: Returns the Timer object responsible for freezing values
  • getUpdateTimer: Returns the Timer object responsible for updating the value list
  • getCommonModuleList: Returns the commonModuleList StringList object

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

[edit] Classes

  • Addresslist: The addresslist class is a container for memory records
  • 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
  • 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
  • CustomControl: Base class for windowed controls which paint themselves
  • Disassemblerview: The visual disassembler used in the memory view window
  • Edit: The Edit class is a visual component that lets the user type in data (Use control_getCaption to get the user input)
  • FileStream: The FileStream class is a Stream class that is linked to an open file on disk
  • 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
  • Hexadecimalview: The visual hexadecimal object used on the memory view window
  • Image: The Image class is a visual component that lets you show an image
  • Label: The Label class is a visual component that lets you display text
  • 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
  • Object : Most basic class. All classes inherit from this class
  • 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
  • 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)
  • 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
  • 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
  • TableFile: Tablefiles are files stored into a Cheat Table. You can access the data of such a file using this class
  • 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
  • Wincontrol: Base class for controls which can contain other controls.

[edit] 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)
Personal tools