List of CE specific functions and variables: Global Variables: 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 Global Functions: 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 getOperatingSystem(): Returns 0 if CE is running in Windows, 1 for Mac darkMode(): Returns true if CE is running in windows Dark Mode. Has no effect on mac activateProtection(): Prevents basic memory scanners from opening the cheat engine process (Not that useful) enableDRM(altitude OPTIONAL, secondaryprocessid OPTIONAL ) : Prevents normal memory scanners from reading the Cheat Engine process (kernelmode) The secondaryprocessid lets you protect another process. E.g the game itself, so they can't easily see what you change fullAccess(address,size): Changes the protection of a block of memory to writable and executable setMemoryProtection(address, size, {R:boolean; W: Boolean; X: Boolean}): Sets the given protection on the address range. Note, some systems do not support X and W to be true at the same time loadTable(filename, merge OPTIONAL): Loads a .ct or .cetrainer. If merge is provided and set to true it will not clear the old table loadTable(stream ,merge OPTIONAL, ignoreluascriptdialog BOOLEAN): Loads a table from a stream object saveTable(filename, protect OPTIONAL, dontDeactivateDesignerForms OPTIONAL): Saves the current table. If protect is provided and set to true and the filename has the .CETRAINER extension, it will protect it from reading normally saveTable(stream, dontDeactivateDesignerForms OPTIONAL): Saves the current table to a stream object signTable(filename) : If the current CE install has a valid cheta engine signature, this will sign the specific table with that signature (will pop up the password request) note: addresses can be strings, they will get interpreted by ce's symbolhandler copyMemory(sourceAddress: integer, size: integer, destinationAddress:integer SEMIOPTIONAL, Method:integer OPTIONAL): Copies memory from the given address to the destination address If no destinationAddress is given(or nil), CE will allocate a random address for you Method can be: nil/0: Copy from target process to target process 1: Copy from target process to CE Memory 2: Copy from CE Memory to target process 3: Copy from CE Memory to CE Memory Returns the address of the copy on success, nil on failure compareMemory(address1: integer; address2: integer; size: integer; method: integer) Compares the memory and returns true if the same or false and and index where the first disparity is Method can be: 0: Target to Target 1: Address1=Target Address2=CE 2: Address1=CE Address2=CE readBytes(address,bytecount, ReturnAsTable ) : returns the bytes at the given address. If ReturnAsTable is true it will return a table instead of multiple bytes Reads the bytes at the given address and returns a table containing the read out bytes writeBytes(address, x,x,x,x,...) : Write the given bytes to the given address from a table writeBytes(address, table) : Write the given bytes to the given address from a table readShortInteger(address) / readByte(address) : Reads a 8-bit integer from the specified address readSmallInteger(address) : Reads a 16-bit integer from the specified address readInteger(address) : Reads a 32-bit integer from the specified address readQword(address): Reads a 64-bit integer from the specified address readPointer(address): In a 64-bit target this equals readQword, in a 32-bit target readInteger() readFloat(address) : Reads a single precision floating point value from the specified address readDouble(address) : Reads a double precision floating point value from the specified address readString(address, maxlength, widechar OPTIONAL) : Reads a string till it encounters a 0-terminator. Maxlength is just so you won't freeze for too long, set to 6000 if you don't care too much. Set WideChar to true if it is encoded using a widechar formatting writeShortInteger(address,value) / writeByte(address,value) : Writes a 8-bit integer to the specified address. Returns true on success writeSmallInteger(address,value) : Writes a 16-bit integer to the specified address. Returns true on success writeInteger(address,value) : Writes a 32-bit integer to the specified address. Returns true on success writeQword(address, value): Write a 64-bit integer to the specified address. Returns true on success writePointer(address,value) writeFloat(address,value) : Writes a single precision floating point to the specified address. Returns true on success writeDouble(address,value) : Writes a double precision floating point to the specified address. Returns true on success writeString(address,text, widechar OPTIONAL) : Write a string to the specified address. Returns true on success readBytesLocal(address,bytecount, ReturnAsTable) : See readBytes but then it's for Cheat engine's memory readSmallIntegerLocal(address) : Reads a 16-bit integer from the specified address in CE's memory readIntegerLocal(address) : Reads a 32-bit integer from the specified address in CE's memory readQwordLocal(address) : Reads a 64-bit integer from the specified address in CE's memory readPointerLocal(address) : ReadQwordLocal/ReadIntegerLocal depending on the cheat engine build readFloatLocal(address) : Reads a single precision floating point value from the specified address in CE's memory readDoubleLocal(address) : Reads a double precision floating point value from the specified address in CE's memory readStringLocal(address, maxlength, widechar OPTIONAL) writeSmallIntegerLocal(address,value) : Writes a 16-bit integer to the specified address in CE's memory. Returns true on success writeIntegerLocal(address,value) : Writes a 32-bit integer to the specified address in CE's memory. Returns true on success writeQwordLocal(address,value) : Writes a 64-bit integer to the specified address in CE's memory. Returns true on success writePointerLocal(address,value) writeFloatLocal(address,value) : Writes a single precision floating point to the specified address in CE's memory. Returns true on success writeDoubleLocal(address,value) : Writes a double precision floating point to the specified address in CE's memory. Returns true on success writeStringLocal(address,string, widechar OPTIONAL) writeBytesLocal(address, x,x,x,x,...) : See writeBytes but then it's for Cheat Engine's memory writeBytesLocal(address, table, , count) : 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. signExtend(value,mostSignificantBit): integer - Extends the bits so that if it's MSB bit is set, it will be negative wordToByteTable(number): {} - Converts a word to a bytetable dwordToByteTable(number): {} - Converts a dword to a bytetable qwordToByteTable(number): {} - Converts a qword to a bytetable floatToByteTable(number): {} - Converts a float to a bytetable doubleToByteTable(number): {} - Converts a double to a bytetable extendedToByteTable(number): {} - Converts an extended to a bytetable stringToByteTable(string): {} - Converts a string to a bytetable wideStringToByteTable(string): {} - Converts a string to a widestring and converts that to a bytetable byteTableToWord(table, OPTIONAL signed:boolean): number - Converts a bytetable to a word byteTableToDword(table, OPTIONAL signed:boolean): number - Converts a bytetable to a dword byteTableToQword(table): number - Converts a bytetable to a qword byteTableToFloat(table): number - Converts a bytetable to a float byteTableToDouble(table): number - Converts a bytetable to a double byteTableToExtended(table): number - Converts a bytetable to an extended and converts that to a double byteTableToString(table): string - Converts a bytetable to a string byteTableToWideString(table): string - Converts a bytetable to a widestring and converts that to a string bOr(int1, int2) : Binary Or bXor(int1, int2) : Binary Xor bAnd(int1, int2) : Binary And bShl(int, int2) : Binary shift left bShr(int, int2) : Binary shift right bNot(int) : Binary not enumMemoryRegions() : Returns an indexed table containing the memorylayout. Each entry consists out of: BaseAddress, AllocationBase, AllocationProtect, RegionSize, State, Protect, Type writeRegionToFile(filename, sourceaddress,size) : Writes the given region to a file. Returns the number of bytes written readRegionFromFile(filename, destinationaddress) resetLuaState(): This will create a new lua state that will be used. (Does not destroy the old one, so memory leak) getGlobalVariable(string): Returns the given variable from the main lua state. Only basic types are supported. (Handy for new lua state threads) setGlobalVariable(string, something): Sets the global variable names string in the main lua state. Only basic types are supported createRef(...): integer - Returns an integer reference that you can use with getRef. Useful for objects that can only store integers and need to reference lua objects. (Component.Tag...) getRef(integer): ... - Returns whatever the reference points out destroyRef(integer) - Removes the re...
DoubleMan