Trouble installing/running Cheat Engine? Try Cheat Engine Lite. A stripped down version with less/different warnings. Or check out the known github issue here on how to solve it, or join the cheat engine patreon
Read before download: You must be 18 years or older, or deemed an adult, to install Cheat Engine. Cheat engine is for private and educational purposes only. Before you attach Cheat Engine to a process, please make sure that you are not violating the EULA/TOS of the specific game/application. cheatengine.org does not condone the illegal use of Cheat Engine
January 18 2022:Cheat Engine 7.4 Released for Windows and Mac for everyone:
January 2 2022:Cheat
Engine 7.4 Released for Windows and Mac for Patreons (public will be here soon):
Happy 2022. To start of this year good here's the official release of Cheat Engine 7.4
My patreon members can get it here
(The public release will be here any day now. Waiting for the advertisers / network owners to accept it)
Please reports bugs and give suggestions to improve Cheat Engine.
Additions and changes:
AA templates now generate 14 byte jmp scripts when holding down ctrlFoundcode dialog: Replace now toggles between nop and original. Also prevents duplicatesimproved keyboard control to the hexview in memoryview. You can now hold shift while using the cursors to movelaststate isn't saved in tables anymore (unless ctrl is down)added some space for dbvm functions so it's less likely to click them you can now manually
delete saved resultsdebugger attach timeout window will now show the status on some debugger interfacesmodules for 64-bit in 32-bit targets are more clearly marked as suchmono will not try to re-attach after a disconnectlua: fixed copyMemory mode 2 from 7.3.1-7.3.2:
structure dissect watch for changes now also shows you when something has changed inbetweenadded hints to how the pointer wildcard works the replace button in
foundcode dialog now supports multiselectYou can now also change values of groupscan scan results directly in the foundlistlua's openProcess command now won't deactivate all entries when previously no process was selectedyou can now edit instructions with a breakpoint on themadded linux ABI c-compiler dll'sby default mono now releases the .net thread from 7.3.2-7.4:
added shortcut to add this address to addresslist in hexview
(ctrl+numPlus)goto address popup now centers on the memview window, instead of screen centeryou can now change the font of the tracer treeadded isRep to the lua LastDisassemblerData field. And stepover now steps over rep instructionsbreak and trace: Added 'stay within module' optionadded custom alignment option to the hexviewer section of the memoryviewerFixes:
fixed loading back highligter config for auto assembler windows
.netinfo: fix field searchingfixed disassembler issues/memory corruption when closing a secondary memoryview windowfixed brake and trace killing the debugger when skipping certain modules an failing in figuring out the return addressfixed auto attach not stopping the process flashmono is less likely to disconnect when dissecting an invalid memory addressfixed checkbox and radiobutton not sizing properly in dark modefoundlist: display type
override also afffects the saved columnsfoundlist: new scan now alsdo clears the saved resultsprocesslist: Fixed the highlighted color process entries in light modefixed compare to first scan hotkeyfixed handling of broken/empty language foldersfixed network modulesize lookup. (needs a new ceserver build as well)fixed position saving for the foundcode dialogfixed lua errors not giving a proper errormessagefixed {$c} and
{$ccode} for the 32-bit CE buildfixed logging of writes to ignore the addresslist freezing(Skyrimfus)fixed dealing with -0.0f in c/ccode blocksfixed memscan on the last block of readable memoryfixed dealing with the proper way of namespace.classname:modulename formatting. (Supports both formats)fixed error when using freeze by thread with a very small intervalfixed {$ccode} and {$luacode} when not giving any parametersfixed some
include files erroring out when used from 7.3.1-7.3.2:
network ceserver/linux: Fixed wpm corrupting the memoryfixed the elf symbol parserfixed speedhack on linuxil2cpp now has a progressbarfixed handling some newer il2cpp gamesfixed vmin assembling fixed freezing when entering the wrong ceserver detailsfixed deleting groupscan entries from the scanfixed pointerscan not loading results when in a path with
non-ascii charactersfixed the standalone trainer maker giving an error about duplicate entries from 7.3.2-7.4:
lua: fixed readByte signextending when it shouldn'tfix changeregonbp where it only changed xmm0window position saving of "find what addresses this code accesses" should be more predictablefixed saving of some color preferences in hexview, and added the fadecolorfix AA createThreadAndWait not working in a standalone script
improved stability of monofixed break and trace ignore flag causing an stop instead of ignore on 64 bit targets
August 26 2021:Cheat Engine 7.3 Released for Windows and Mac for everyone:
August 14 2021:Cheat Engine 7.3 Released for Windows and Mac for Patreons (public will be here soon):
I'm happy to announce the official release of Cheat Engine 7.3 for all my patreon members (The public release will be here any day now. Waiting for
the advertisers / network owners to sign of on it) Edit:Done
My patreon members can get it here
Please report bugs and give feature requests for next version so I can make it even better.
Additions and changes:
Added dark mode support (restart CE when you change the setting)All saved results are now shown in the foundlist (can be turned off)Groupscan now
supports pointer wildcards. (only valid if the field is a proper pointer)Hotkeys can be repeated by releasing the key and repressing if the repeat timer hasn't finished yetStructure dissect add to addresslist uses the addressstring instead of number, so symbols will be preservedStructure dissect now has a option to save the previous state of a column and show changes easierMiddle-mouse clicking now copies the value of a structure element to your clipboard
Added {$LUACODE} blocks for inline Lua codingAdded a c-compiler to CEAdded {$C} blocks to the auto assembler. all {$C} blocks get combined into one script before executionAdded {$CCODE} blocks for inline C coding (Check the forum, wiki, CE patreon discord or CE's youtube)Added a C# compiler (compilecs)Added routines to do .NET(and mono) method detouring. .NET info has a new contextmenu where you can create a detour template for the autoassembler
Added invoke method to the .NET Info window as well[Disable] sections can now reference labels, defines, AOBScan results, and allocs created in the [ENABLE] sectionUserdefined symbollist has a secondary list for CCode symbolsThe change address window now also supports relative offsetsDBVM speed improvementsDBVM has an extra security level, and added dbvm_setKeys to easily change the access codesDBVM has now some basic support for nested
VM's (only so you can run them, not yet modify)New debugger interface: DBVM-level debuggerImproved performance of "Find what access/writes this address"Dissect code now lets you specify custom rangesAddresslist value sort now sorts values by alphabet if the record is a string typeThe dropdown list of multiple entries can now be changed at the same timeStandalone register window now shows flags values as wellValue Between scans now
autoswap the order if the first value is bigger than the 2ndFixes:
fixed some games freezing CE when symbols where accessesLua debug now shows for loop variablesseveral windows now save their position, and won't get corrupted if you don't show them the first time running CEfixed createthreadandwait when using a timeoutfixed disassembling vcvtsi2ssfixed compare to first scan if it's a large block, and made it more efficient
ceshare: logout fixedfixed assembling movsqfixed ultimap ret filterfixed luapipe never calling OnErrorfixed vehdebug in 64-bit CE zeroing out the FPU registers in 32-bit targetsfixed DBVM find what access/writes sometimes skipping entries on AMDfixed undo not working on memory records when using the single line editorfixed hide children group option when loading a tablefixed some font issues in the break and trace
windowfixed pasting the other types in hexadecimal viewfixed the symbolloader fully crashing on unknown pdb symboldatalua:
saveTable won't ask to sign the table anymoremessageDialog will work if you omit the buttonlist. (Defaults to mbOK then)added more customizabe buttonregisterSymbol no longer errors out the whole script on failure. It now overwrites existing symbolsand many other things... New functions:
form.saveToStream compile() compilecs() signExtend signTable symbollist.getModuleList symbollist.getSymbolList memscan.getSavedResultHandler memscan.getSavedResultList SavedResultHandler class
November 1 2020:Cheat Engine 7.2 Released for Windows and Mac:
I'm proud to announce that Cheat Engine 7.2 has been released. Many new features and fixes so check it out.
Please report bugs and suggest new features for an even better version next time.
Also,
check out my Patreon for progress updates ,prerelease binaries, discord, etc...
Additions and changes:
Big Endian custom types. You can enable them in settings if you likeCommonality scanner now also compares the base address. (handy in case it's more than one register)translation support for cesharesmartedit now also deals with isPointer and isOffset memrecs
referencedfunctions filter improvementPE section display/parsing for addressesD3D hook now asks if you're sure you wish to use it (in case of accidental click)Memoryview hexadecimal view: can now show custom types and changing memory protection depends on the selected byte(range)Break and trace window now supports searching the referencedAddress, referencedBytes and InstructionWhen changing a memoryrecord value, you can reference 'value' and apply
math to itAdded a "File->Load Recent..." menulistAdded an option to autosave (in settings)Added .netcore support to the dotnet data collectorAdded a syntaxcheck menuoption to the CE lua script windowAdded tabs to the autoassembler and CE Lua script window. In case of the Lua script, the tabs get loaded from left to right whenn the table loadsWhen syntax checking an AOBScan script in 64-bit that does an Alloc without prefered base, ask if
the user understands that the jmp instruction will be 14 bytes longSome extra foundlist preferencesFind out what access/writes now resolved the address to string (when it has time)CEShare now has a list of games that have tablesAA: dealloc(*) - Now deallocated all memory a script allocatedAA: unregistersymbol(*) - Now unregisters all symbols a script registeredAdded a more userfriendly .net inspectorAutoattach won't open itself
anymoreCEShare now has a list of all available tablesCode Dissect now deals with relocated memory modules when loading a state backLua Formula scan has an alternate scan option which allows for more than 1 threadChange Value of memory records can now deal with mathFixes
Auto Assembler: Fixed getting weird numbers for newmem when using the templates to add new scriptsUnknown initial value scan for 2GB+ regions failedResolved
issue where typecasts where replaced by addresses. (having a memoryrecord named float, would break AA scripts that'd use (float) )AMD support for DBVMMemoryrecord hotkeys showing up in the settings window as bring to front. Where clicking OK would then set it to thatCopy paste bug in the form designerHotkeys swapped comma and period on displayResolved some issues with the forced module loader, and if it fails, don't freeze CE foreverAutoAssemble
local would fail after opening a processPointermap based rescanAssembler: (v)insertps , (v)comiss, (v)blendvp(s/d)Kerneldebug is more stable on newer windows builds Lua/Mono: Better support for utf8 stringsLua/Mono: Support targets that use mono, but not unityLua/Mono: UWP targets work betterLuaEngine: Autocomplete won't lowercase functions anymore if they are lua functionsLua
Fixed executeMethod for widestrings
(type4)Fixed AOBScanUnique truncating addressesAddressList['description'] works now as wellsome scripts variables that used to be global are now localinjectDLL has a new parameter to specify if CE should reload the symbolsgetNameFromAddress has a new parameter to specify if you wish section names (default=false)TfrmLuaEngine: document the mOutput and mScript propertiesloadModule now has an optional timeout valueadded an
interface for the DotNetDataCollectorimplemented RemoteExecutor , which is a class which can execute remote memory fastyer than ExecuteCodeEx while keeping the same capabilitiescreateClass and createComponentClass won't access violation anymore for giving an unsupported nameAnd a bunch of new functions and classes/methods/properties. Check out celua.txt Post patch releases:
11/05/2020: Fix some of the obsolete object_method functions that broke. (Only
affects old (6.2) tables)
April 22 2020:Cheat Engine 7.1 Released for Windows and Mac:
Hereby the new release of CE 7.1. Just click the big download button above
Also, check out my patreon for progress updates and prerelease binaries (which you can also get if you where to compile ce yourself)
and to add, from now on, the Mac version and Windows version will have
equal release dates and features(Excluding mac/windows only stuff) as the sourcecode of the both have been merged into one
Additions and changes:
Added support for il2cpp (mono)Added support for .NET dll pluginsChange register on breakpoint now also affects FP and XMM registersAdded CEShare, a way to share your tables with other peopleImproved disassemblingcopy bytes+addresses now only does bytes+addressescall filter can
now use the unwind data for functions to get a decent list of instructionsstructure dissect shows the pointerpath at the bottomFollow register while stepping (rightclick the register to show the option)registersymbol and label now support multiple definitions in one lineimproved the speed of the structure list when getting data from a pdbhexview: doubleclicking a non-byte value now shows in the type you setadded sorting to the found code
dialogadded filtering to the changed addresses windowthe debugger settings won't lock from changing anymore, still needs you to reopen a process to have an affectadded always hide children groupoptiongroup headers can act as address nowAA command createthreadandwait now has a timeout parameterAssembler scanning improvementAdded an AVX2 version of CE, which will speed up all those floating point operations CE does so much...Improved
structure lookup for PDB filesSymbolhandler can now have the following types in front of pointers : (BYTE), (WORD), (DWORD), (QWORD), (CHAR), (SHORT), (INT), (INT64) to typecast the pointer to a value of that typeStructure dissect can detect vc++ and object pascal classnames nowDissect code now also detects references to stringsSorting the addresslist now sorts faster and more properly with regards to groups (depends on the level your current selection is)
Rightclick the addresslist header to bring up a menu which allows you to disable sortingImproved the processlist responsivenessThe chosen floating point rounding type is now saved in the registryYou can now use (addresslist description) as an addressImproved autocompleteChanges:
DBVM doesn't activate the TSC hook by default. You can still activate it by using dbvm_enableTSCHook() Fixes:
Fixed memoryleak when
opening a file for hexediting againFixed utf8 display of the dissect windows windowClear the taskbar progress when using a custom scanHexview: Fixed changing the address when pressing a non char keyHexview: Fixed changing the address when doubleclicking and then cancelingalloc with a prefered base is now more aggressive in getting the range you wantfixed mono symbol lookup while dlls are still being loadedfixed the structure compare
not giving a proper errormessagefixed improper error messages in structure dissectfixed opening process in XPfixed potential deadlock with the symbolhanderfixed issue with using the process var as symbolfixed default form size for some windows when using high DPIfixed DBVM on systems that have the default MTRR set as 6 (e.g Asus systems)fixed DBVM find what accesses with large datasetsLua
New functions:
function onTableLoad(before) sendMessageTimeout createTimer(delay,function()) createStructureFromName() createSynEdit() changes:
fixed executeCodeLocalEx with certain parameter definitions fixed openFileAsProcess checkSynchronize has a timeout now OnGetDisplayValue now also works on AA records(<script>) Please report bugs and give suggestions for an even better version next time
Post patch
releases (This is the reason why your 7.1 version says there is a newer version):
04/26/2020: Fixed slow loading and deleting huge tables
Can Cheat Engine be detected?
A reliable method of detecting CE is by detecting its Debugger, Try to detect when CE Attaches its Debugger to the process and also scanning for unknown libraries that CE Injects and uses.
Is Cheat Engine harmful for PC?
Cheat Engine itself is not a virus. A few antivirus marks it as malware or PUP because it can attach itself to processes and modify memory. The installer you download through their official website is bundled with a bunch of adware.
Is Cheat Engine still free?
Cheat Engine can also create standalone trainers that can operate independently of Cheat Engine, often found on user forums or at the request of another user. While it is source-available, it is not free and open source software, as its license contains restrictions on redistribution.
Why Cheat Engine is detected as virus?
Cheat Engine is not a virus, its detected as a virus because it can attach itself to processes and modify memory. this is needed to be able to change the value in game to get infinite health, ammo etc.