Cheat Engine

how do i report abuse on facebook

Juli 20 2015: French tutorial Update

Redouane has made some corrections to the french tutorial translation files. The translation files can be found in the download section

April 26 2015: French tutorial

KeKeCoRe has translated the tutorial to french. The translation files can be found in the download section

March 19 2015: Joining the Twitter fad:

Since I'm surprised the Twitter fad still hasn't died out, I decided to join it. Someone already took cheatengine and cheat_engine, so you can go to @_cheatengine instead.

No idea if I'll update it often, but I'll probably use it for new version releases and site updates when needed, and probably some experimental build notifications

August 19 2014: MonoDataCollector update:

The mono data collector has been updated with added support for 64-bit targets, and better support for targets that have renamed mono.dll to something else (You'll have to call LaunchMonoDataCollector() or mono_dissect() lua commands manually in those cases)

You can get the updated files here. Just extract to the base of the cheat engine folder overwriting the existing files

July 6 2014: DotNetDataCollector update:

The dotnet data collector tool has been updated to also gather fields of base classes of the object you're currently investigating.

You can get the updated files here. Just overwrite the ones in the cheat engine installation folder with the ones in this archive

June 19 2014: Cheat Engine 6.4 Released:

I'd like to announce the release of Cheat Engine 6.4

If you encounter bugs or have suggestions, please do not hesitate to report them in the forum. bugtracker. irc or by e-mail .

And if you have questions, don't hesitate to ask them in the forum or irc


  • Network: Network server can now handle multiple incoming connections at the same time
  • Gui: Fixed a crash when using multiple scan tabs
  • Assembler/Disassembler: Fixed several assembler/disassembler bugs
  • Debug: Fixed issues where deleting a breakpoint wouldn't actually remove it, causing a crash
  • Debug: Fixed a problem where deleting a breakpoint that was marked for deletion would never happen if the game was constantly triggering the debugger
  • Lua: Fixed the 6.2 and earlier version of opendialog_execute
  • Lua: Fixed memscan.waitTillDone() when using it on the gui memscan
  • Lua: Fixed speedhack_setSpeed() not taking more than 3 digits
  • D3D Hook: Direct3D9 objects now support transparency
  • D3D Hook: Fix detection of which directx version is actually used for rendering
  • Dissect Data: Fixed the column click detection when scrolled
  • Auto Assembler: Fixed some commands not highlighting properly
  • Ultimap: Fixed ultimap so it now works in windows 8
  • Ultimap: Fixed the hotkeys
  • Ultimap: Fixed the hint popup for pre-emptive flushing
  • Symbols: Fixed a problem where 32-bit modules where detected as 64-bit
  • Memory Scan: Fixed next scan causing a buffer overflow in some rare situations
  • Form Designer: Fixed a problem where deleting a non visible object failed (press the delete key in the object inspector tree)
  • Trainer Designer: Fixed the go back to generated form from functioning and related issues
  • PE-Info: Fixed a possibility where a bad PE header could cause an read error
  • Memory view: Hexview: Fix 8-byte value editing
  • Syntax Highlighters LUA/AA: Fixed UTF8 encoded text
  • Syntax Highlighters AA: Added xmm registers Additions and changes:
  • Address List: Added a group option that shows a +/- sign in front of group entries
  • Address List: Pressing enter on a single entry now goes into value edit mode
  • Address List: Added an option so certain entries in the address list show a groupbox the user can pick from
  • Auto Assembler: New auto assembler templates that focus on Array of Byte scans(thanks to jgoemat)
  • Auto Assembler: The auto assembler can now handle <$LUA> and <$ASM> preprocessors for multiline lua scripts
  • Break And Trace: Added a donottrace.txt file in the base directory which holds a list of modules that should not be traced but stepped over instead
  • Pointerscan: Improved performance of the pointer scanner
  • Pointerscan: The pointerscan now has the option to generate a lot smaller .PTR files
  • Pointerscan: Added the ability to do a distributed pointerscan and pointer rescan
  • ProcessList: You can now type in the processlist to filter for the specific process
  • Network: Added a basic ARM assembler/disasembler
  • Network: The linux/android network version can now use basic debugging (find what access/writes)
  • Network: Added speedhack to the network version
  • Network: The network version now compresses read/write process memory before sending to the client. The compression level can be changed at runtime
  • Network: Added module injection for linux/android
  • Symbols: Added better support for .PDB debug files so parameters and local variable references show when that data is available
  • Symbols: Added support for .Net
  • Symbols: Added support for Java (proof-of-concept showing off the extendabilty of CE)
  • Symbols: Added support for Mono (^)
  • Memory view: Hexview: Added decimal display modes for the other types
  • Memory View: Added shift-scrollng to the hexview and disassembler so you can scroll by 1 byte changes instead of the default calculated sizes
  • Stack View: Added a search option
  • D3D Hook: you can now reattach the D3D hook to a process that previously had been hooked
  • Lua engine window: Added a search and replace option to the editor
  • Lua engine window: Added the ability to set breakpoints, inspect variables and step over lines
  • Lua engine window: Enabled tab indentation of blocks
  • Lua engine window: Some extra customization options
  • Trainer Generator: Replaced the beepOnAction with playSoundOnAction and added 2 build in activate/deativate sounds. (You can override them)
  • Trainer Generator: The XM file field now has a play button
  • Lua/Trainer Generator/Designer: Added several new components. propertes and methods.
  • Lua: Added a dll search path to cedir\clibs32 or cedir\clibs64 depending on which cheat engine version is used. Use it for lua extentions
  • Lua: Made it more forgiving about method and property names
  • Lua: Added some threading helper functions
  • Lua: You can now override the disassembler/assembler
  • Lua: Lots of other new features. Check out main.lua

    again, big thanks to SER[G]ANT for providing us with the latest translation files for the Russian language

    Post release fixes (max 7 days after initial release *or 30 if a HUGE bug):

  • 20-06-2014: Fixed an issue with the driver not responding to Cheat Engine even if it has a proper signature
  • 26-06-2014: Fixed custom types in data dissect, fixed the Visible property of forms, and changed the way unreadable addresses are handled

    April 26 2014: Polish translation

    February 2 2014: Russian translation

    December 17 2013: Brazilian Portuguese translation

    July 24 2013: Polish translation update for 6.3

    dawio966 has updated the polish translation files. You can get them here

    July 13 2013: Cheat Engine 6.3 Traditional Chinese translation:

    Todobug has updated his language file to 6.3. You can get it here (Just extract to your languages folder in the Cheat engine install folder overwriting language.ini)

    June 13 2013: Cheat Engine 6.3 Released:

    A bit later than expected (way later) but here's Cheat Engine 6.3

    If you encounter bugs or have suggestions, please do not hesitate to report them in the forum. bugtracker. irc or by e-mail .

    And if you have questions, don't hesitate to ask them in the forum or irc


  • Fixed dll injection for 64-bit targets (also fixes speedhack for 64-bit and windows 8)
  • Fixed speedhack thread safety so changing speed in a program that constantly checks speed won't cause a crash/weird behaviour
  • Fixed Lua speedhack_setSpeed being limited to 2 digit accuracy
  • Customtypes can now deal with huge size types (4096 bytes and bigger)
  • Some table merging bugs
  • Fixed negative values in groupscans
  • Fixed a lot of assembler and disassembler instructions
  • Fixed GenericHotkey in lua
  • Fixed the table version of writeBytes in lua
  • Fixed the bug where if you opened the settings window and click ok you wouldn't be able to debug anymore
  • Fixed unlabed labels
  • Fixed crash when clicking stop when using the debugger to find something
  • Fixed where CE would select invisible entries when multiselecting and press space
  • Loading a table now deletes tables you might have previously defined
  • The autoassembler can now handle $luavar when it's an integer instead of string
  • Fixed break on entry when creating a process
  • Fixed the stackview in 64-bit ce when targeting a 32-bit program
  • Fixed unloading the driver when global debug was used before
  • Fixed the symbolpath not changing to what you wish, and add the game's exe to the symbol path search by default
  • Fixed dbvm stability
  • Fixed global debug not handling 64-bit mov dr* instructions properly

    Additions and changes:

  • Redesigned the lua class system (read main.lua)
  • Added mouse4 and mouse5 to the lua defines
  • Added the THREADSTACK# symbol which points to the stack start of the specific thread number (pointerscan can use it)
  • The pointerscan has several new features to decrease time and increase useful results
  • Added sorting the pointerscan by column (Tip: After a sort close the pointerscan and delete .ptr files you do not wish)
  • Changed hotkey handling internally
  • The different display types in the hexadecimal view of memoryview now support direct editing as well
  • The foundlist can now display using a different display type, on the condition that the type has a compatibly bytesize
  • The foundlist now shows a "previous value" column and marks differences red
  • The symbolhandler now has a better distinction between 32 and 64-bit modules. Non-compatible modules (64-bit in 32-bit programs) will get an underscore in front of their symbolnames
  • Groupscans can now let you choose which elements to add to the addresslist when doubleclicked
  • Added a graphical memory view
  • Added a new breakpoint type :Exceptions (not dependant on size and no debug registers, but extremely slow to unplayable)
  • The "Find out what *** this address" function now has the ability to show if the given opcode is used for other data as well
  • Added a luaserver to ce that you can use to let a different/target process execute lua commands and pass data
  • The userdefined comments can now show handle multiple lines
  • Dissect code now lets you jump to a referal if you click the line
  • Added a few new lua methods to the disassembler so you can render your own data in front and after a disassembler line
  • Assembler: Added override support to relative jumps
  • Auto Assembler: AA command ReadMem can now work on large sets of data without being too slow
  • Auto Assembler: Scripts with multiple AOBScan commands will go faster now (grouped into one)
  • Auto Assembler: Added a

    new "AOBSCANMODULE" auto assemble command. Usage: AOBSCANMODULE(modulename, aob)

  • Auto Assembler: GlobalAlloc now doesn't allocate 4KB (64KB in reality) for each symbol but now groups them
  • Auto Assembler: Registersymbol now works with aobscan results
  • Auto Assembler: Add support for inscript structure definitions
  • Tracer: You can now save and load a trace
  • Addresslist: Changing a records' value (lua setValue) now supports lua statements if the new value is enclosed by brackets [ ] (Example: [12-2] becomes 10, and [readInteger(0x00400500)+10] returns the value at 00400500 with 10 added to it)
  • D3D: Added the ability to dissect a whole d3d scene and get the stack at the moment a specific object is being rendered
  • D3D: Also works on 64-bit targets now
  • Symbolhandler: It now interprets "structurename.variablename" and returns the offset of variablename in the structure. This includes auto assembler
  • Binary files inside cheat tables are now stored using ascii85 instead of hexadecimal
  • Added a more complex disassembler class that gives more information about what it disassembled
  • Dissect data now also shows the effect of a locked column on childnodes
  • Dissect data can now have custom name under each address besides a groupname
  • Dissect data elements can now have a custom background color
  • The structure spider can now also work with locked memory (shadow memory)
  • Changed the way the vertical scrollbars of the disassembler and hexview panels work
  • The "find what acceses this address" window no longr prints out ALL results in the info box when multiselecting.
  • Changed the stackview panel so when it's visible and you resize the window it's on, it resizes instead of the hexview
  • The assembly scan can now have a custom range
  • Added an option to the trainerscript generator to generate a D3DTrainer (if the game supports it)
  • DBVM now works on AMD systems. Some features like Ultimap are still Intel only, but int hooks work

    Post release fixes (max 7 days after initial release *or 30 if a HUGE bug):

  • 14/06/2013: Fixed getItems() for menu and add the default array indexer for Menu
  • 14/06/2013: Fixed select and scroll in the editor. Fixed import and export in 64-bit range memory. Fixed overriding the hide/show hotkey when using genericHotkey objects
  • 15/06/2013: Fixed the parameters of the stacktrace not showing the correct parameters. Fixed deleting the first entry of a foundlist
  • 16/06/2013: Fixed hex unchecking when changing the scantype. Fixed an assembler instruction. Added some hotkey timing functions to lua. Fixed Write*Localcommands
  • 18/06/2013: Fixed AA Define(xxx, previousdefine+xxx)
  • 30/06/2013*: Fixed int3 breakpoints not getting deleted when single stepping and threaded target
  • 30/06/2013*: Fixed case insensitive text scans

    Update: Big thanks to SER[G]ANT for providing us with the latest translation files for the Russian language

    March 22 2013: Polish translation update

    dawio966 has updated the polish translation files. You can get them here

    February 25 2013: Spanish/Castilian traslation files:

    Manuel I. has updated his translation files and also attached a tutorial in spanish on how to use cheat engine.

    Again, just extract to your languages\ subfolder in the Cheat Engine folder, and adjust the .ini file if your windows language is not spanish

    January 30 2013: Polish translation

    dawio966 has provided us with the polish translation files for Cheat Engine. You can get them here

    September 13 2012: forcedinjection plugin

    Some people have been asking me why they can't use the speedhack in Chrome. That is because the chrome child process has no disk access (Limited user and untrusted mandatory level). It's pretty easy to make it usable again by changing a flag in the config, or just getting a different browser.

    But for those that couldn't get it to work, or those that wish to know more about plugins, I've made a plugin for Cheat Engine showing off how to make a hybrid plugin that uses both the lua framework and the exposed plugin api to rewire the injectDLL routine (more specifically, the functions it uses) so that it can force load a dll into the target process without the process having disk access.

    How to use:

    Extract the files anywhere.

    In cheat engine go to settings->plugins

    Click add new

    Find the plugin .dll for the Cheat Engine version you use. (32 bit: -i386, 64-bit: -x86_64)

    Once it is in the list check the checkbox left of it and click ok.

    And if everything went right it's now functional and you should be able to do a speedhack on the target process. One thing to note about this plugin is that when it gets loaded, it will target itself. Even when restarting cheat engine. This is because it needs to rewrite itself. I could have done it without, but it shouldn't be an issue.

    For those interested, the sourcecode of this plugin can be found in the SVN

    June 3 2012: Cheat Engine 6.2 Simplified Chinese translation:

    linwuliao has updated the Simplified Chinese language file to 6.2. You can get it here

    June 3 2012: Cheat Engine 6.2 Traditional Chinese translation:

    Todobug has updated his language file to 6.2. You can get it here (Just extract to your languages folder in the Cheat engine install folder overwriting language.ini)

    May 21 2012: Cheat Engine 6.2 Russion translation:

    SER[G]ANT has already finished updating the translation files for this new update to russian. You can get them here

    May 20 2012: Cheat Engine 6.2 Released (And mac stuff):

    And again almost a year passed without any update. But here is the new and improved Cheat Engine 6.2

    If you encounter bugs or have suggestions, please do not hesitate to report them in the forum, bugtracker, or by mail.

    And if you have questions, don't hesitate to ask them in the forum


  • Fixed the first plugin from not getting activated at restart

  • Custom types can now do an unknown initial value scan
  • Fixed the auto assembler highlighter from hiding some text while typing
  • Fixed the auto assembler highlighter from not showing hexadecimal values as hex starting with A to F
  • Fixed global debug from crashing in 64-bit (with dbvm)
  • Fixed dbvm from not working on several systems (freeze)
  • Fixed notification when closing and you had some changes
  • Fixed the rescan of the structure spider not working at all
  • Fixed several disassembler and assembler instructions
  • Fixed several plugin-system related bugs
  • Fixed aobscan for 64-bit
  • Fixed displaying the registers in 64-bit when using "find what xxx this address"
  • Fixed the stackview when single stepping through the code
  • Fixed several lua function, including createhotkey
  • Fixed the assembler not dealing well with names with a - in it. (like the tutorial)

    Additions and changes:

  • Auto assembler scripts can now use the LuaCall(luafunction()) method to call a lua function before the script gets executed
  • Added a profiler so you can find function entry points and see how often they are called (Ultimap. Requires dbvm. Even in 32-bit)

  • Deleting a plugin now calls FreeLibrary on it
  • Ctrl+enter in the luaengine form now automatically executes the command
  • Added direct 3d hook functions (can be used to show trainers and menu's inside games)
  • d3dhook related: Cheat Engine can now bind the mouse inside the gamewindow for those games that do not support multiple displays, so no more losing focus when moving the mouse
  • Plugins settings between the 32 and 64-bit executable are now seperated
  • Recalculate addresses with only one selection now only updates the siblings and children. Doesn't touch the parent node
  • Addresslist entries can have the notation +xxx and -xxx, which will calculate the address based on the parent address (If the parent address changes, these change automatically
  • The structure dissect has been rewritten from scratch, and the functions have been exposed to lua as well
  • Added a new step to the tutorial (step9) showing how to deal with shared code
  • Made the tutorial translatable as well
  • Added a new trainer type which generates trainer that are a lot smaller in size (tiny)
  • Added a groupscan type which you can use to scan for different things in the same block
  • If you boot up with dbvm you do not need to sign the driver in 64-bit to load it
  • Custom types now support handling as a floating point value
  • Added debug register states to the threadview and made the threadview window capable of changing registers
  • Added remote scanning with ce for different systems. The server just needs to be running, and a 1GBPs network connection or faster is recommended
  • Also added an android server as a proof of concept, but getting a fast enough connection on those connections can be a challange
  • Changed the add/change address window to be more compact and make dealing with offsets easier
  • Lots of new lua functions

    Post release fixes (max 7 days after initial release):

    21 May 2012: Handle the "Invalid Instruction" exception better, fix the memoryview window from disapearing, and fix the BSOD when loading the driver on Pentium 4 and earlier

    22 May 2012: Fix a deadlock when clicking stop in the pointerscanner. (And a minor assembler fix)

    23 May 2012: Fix form_showModal from not returning a result. Made the installer create the autorun folder. Minor gui fix for groups

    25 May 2012: Fixed the android server being replaced by the x64 linux server

    26 May 2012: Fixed api hooking in 64-bit (speedhack in java fix for win64 users)

    30 May 2012: Removed the linux server binaries from the installer, they are separate downloads now

    Also, there has been a Mac version under development and it's semi usable. Memory scanning works most of the time and the debugger also kinda works: Cheat Engine for Mac Version April 2012

    You can talk about it in this topic: or if the mac version becomes more popular I might create a new forum section for it.

    November 21 2011: Chinese Traditional translation files:

    todobug has provided us with the translation files for "Chinese Traditional (ch_tw)"

    November 13 2011: Back:

    The server is back up and your dns has been updated to this ip again.

    Most stuff will be working, but some stuff is missing and/or gone. (User attachments)

    Please note that you may occasionally see error messages while some adjustments are made


    Category: Bank

    Similar articles: