What is Cheat Engine?
Cheat Engine is a tool that helps you figure out how a game or application works and make modifications to it. It has extensive scripting support, so you can create many kinds of modifications. See the About page for more.
Cheat Engine is a tool that helps you figure out how a game or application works and make modifications to it. It has extensive scripting support, so you can create many kinds of modifications. See the About page for more.
Click the download button on the main page and run the installer. When it finishes, you can use CE. You must stay connected to the internet during installation. If you have issues, see Troubleshooting.
Use the uninstall option in the Start Menu, or go to Windows Settings → Apps → Apps & features and remove Cheat Engine there.
There is already a Mac version. It may still be buggy; please report issues you encounter.
Most of the time, no. The server controls the real values; changing what you see locally (e.g. money) does not change what the server has. Using CE to get things you normally pay for is not allowed and violates the install agreement.
Because the server knows how much money you have. You only changed the display value on your client.
No. You may only use Cheat Engine for legal activities. If a game's license says not to disassemble it, do not use CE's disassembler for that unless you are in a jurisdiction (e.g. some European countries) where law gives you the right to reverse engineer for personal use.
No. Cheat Engine is completely free. On macOS it is trialware until you join the CE Patreon.
Yes. Get it from the downloads page. You may compile and use your own version privately, but publishing it online would violate copyright. The source is provided for education and transparency.
CE can manipulate any running program, including admin applications, and can run scripts from cheat tables. Antivirus software often flags it as a hacktool. As long as you download from the official downloads page and use .CT files from trusted sources (and check that .CT files don't contain dangerous code—they are plain text XML), you should be fine. CE is now digitally signed; it still comes from the same author.
The installer contacts an advertiser to fetch a list of optional software offers. You can decline. It then downloads Cheat Engine. No, it is not trying to hack you. Patreon supporters can get an installer without the extra offers; it still needs the internet to download CE.
Someday. It will most likely not be “undetected” for current anti-cheat systems, and it won’t make old cheats work again after game patches—you need to update the method, not CE.
A cheat table is an XML file that stores addresses, scripts, descriptions, and options. You can save your findings from CE into a .CT and reload it later or share it. .CT files can contain Lua and Auto Assembler code, so only open tables from people you trust. You can open a .CT in a text editor to inspect it.
When you freeze an address, CE repeatedly writes the current value back to that memory location. So if the game tries to decrease your health, the value is restored every time. Use it for infinite health, ammo, or other values you want to lock.
Games use dynamic memory allocation and often ASLR (Address Space Layout Randomization). So the same variable can live at a different address each run. Use a pointer scan to find a chain of pointers that leads to your value; that chain is usually stable across restarts.
For a known value (e.g. health is 100), use “Exact value.” For unknown values, use “Unknown initial value,” then “Decreased value” / “Increased value” / “Changed value” on next scans. Choose the correct value type (4 bytes, float, etc.) to match how the game stores the data. See the built-in tutorial and Tutorials page.
Speedhack changes how fast the attached process runs. You can slow time (e.g. 0.5x) or speed it up (e.g. 2x). It works by hooking time-related APIs. Intended for single-player only. Do not use on online games.
DBVM (Debugger Virtual Machine) is a hypervisor that runs below the OS. It gives CE extra debugging and memory capabilities. It is optional. Right-click the CE logo and open About to see if your system supports it and if it’s loaded. See the About page for more.
Yes. Many Unity games use Mono. CE has a Mono Dissector that lets you browse classes and fields by name (e.g. Player.health). Use “Mono” or “.NET” features in the menu to activate it after attaching. The wiki has Mono tutorials.
An AOB is a sequence of bytes that uniquely identifies a spot in the game’s code. In scripts, “??” means “any byte.” AOBs are used so that scripts still find the right place after small game updates. See the Glossary and wiki.
Right-click the address in the address list and choose “Find out what writes to this address.” CE will set a breakpoint and show you the instruction(s) that write to it when they execute. You can then replace that code with Auto Assembler or use it to understand the game.
Cheat Engine itself, when downloaded from the official source, is safe. It can modify any process you attach to, so use it only on programs you trust. Cheat tables from the internet can contain malicious code—inspect .CT files (they are text) or use only tables from trusted forum users.
Too many: use a more specific scan type or value. Try “Exact value” if you know it, or do more “Next Scan” steps. No results: check value type (4 bytes vs 8 bytes vs float) and that the value actually changed in the game between scans. Some values are stored encrypted or in structures—see the wiki for advanced techniques.
The Cheat Engine forum has a section for game-specific tables. Search for your game name. Only use tables from sources you trust and consider checking the .CT file for suspicious code before loading.
The main CE GUI is for Windows and Mac. For Linux/Android you can use CEServer (see the Downloads page) to allow a Windows CE to attach to the process over the network. This is for advanced users.
Use 64-bit CE for 64-bit games and 32-bit CE for 32-bit games. If you attach the wrong one, CE will usually not work correctly. Check the game’s process in Task Manager (32-bit or 64-bit) and open the matching CE.
When you do not know the current value (e.g. a hidden counter), select “Unknown initial value” and click First Scan. Then change the value in the game (e.g. increase or decrease it) and choose “Increased value,” “Decreased value,” or “Changed value” and click Next Scan. Repeat until the list is small enough. The built-in tutorial covers this.
Pointer scan finds a chain of pointers (addresses that point to other addresses) that lead to your value. After a game restart, the direct address often changes, but the pointer path (e.g. base + offset → next + offset → your value) usually stays valid. Use it when your cheat stops working after restarting the game. See the wiki.
Yes. CE is used in schools and self-study to teach memory layout, assembly, and debugging. The built-in tutorial and wiki introduce concepts step by step. Lua scripting in CE can help you learn scripting; the source code is available for studying how CE itself is built.
Some games use anti-cheat or protection that conflicts with debuggers and memory tools. For single-player, try running the game in offline mode or with anti-cheat disabled if the game allows. Run CE as administrator. If the game is 64-bit, use 64-bit CE. See Troubleshooting for more.
The Trainer Maker turns your cheat table into a standalone .exe (a “trainer”) with a simple window (checkboxes, hotkeys) so users can enable cheats without opening CE or loading the table. You build it from File → Create Trainer. Share only from trusted sources; trainers can contain malware if from unknown sites.
Use File → Save to save your cheat table as a .CT file. You can load it later with File → Load. Note that direct addresses may change when the game restarts; use pointer scan to find stable pointers and save those in the table for a cheat that works across restarts.
CE is for private and educational use. You must not violate the EULA or terms of service of any game or app you attach to. Using it on single-player games you own is generally fine; using it to cheat in online games or to bypass paywalls is not allowed. See Legal & Ethical Use for full guidelines.
CE runs on Windows (32-bit and 64-bit) and macOS. You need a compatible OS and enough RAM for the processes you attach to. For DBVM (optional), you need supported hardware and to boot with the DBVM loader. See Downloads for current requirements.
An AOB is a sequence of bytes that uniquely identifies a place in the game’s code. In Auto Assembler scripts you use it so the script finds the right location even after a small game update (addresses change; byte patterns often stay). Use ?? as a wildcard for bytes that can vary. See the Glossary and wiki AOB tutorials.
Right-click the address or script in the address list and choose “Set hotkeys” (or similar). Assign a key combination (e.g. Ctrl+H). You can set “Toggle” to enable/disable the cheat, or “Set value” to set a specific number when pressed. Hotkeys work when CE is in the background as long as the process is attached.
Speedhack changes how fast the game thinks time is passing (slower or faster). It works by hooking time-related APIs. Many single-player games respond well; some use other timing and may not. Do not use Speedhack in online games—it can cause desync or detection. Enable it from the Speedhack window (clock icon) after attaching.
CE reads and writes other processes’ memory and can inject code—the same capabilities some malware uses. Antivirus software often classifies it as a hacktool or riskware. It is a false positive for the official build. Add an exclusion for the CE folder or temporarily disable the antivirus during install. See Troubleshooting .
Yes. CE has Mono/.NET support for Unity and other managed games. After attaching, use “Mono” → “Activate mono features” (or similar). You can then browse classes and fields and add them to the address list. For some values you still need to scan normally. The wiki has Unity-specific tutorials.
When you freeze an address, CE repeatedly writes the current value back to that address. So when the game tries to decrease health or ammo, CE overwrites it with the frozen value. The value appears not to change. Uncheck “Freeze” or disable the cheat to let the game control the value again.
Use Windows Settings → Apps → Cheat Engine → Uninstall (or Add/Remove Programs). If the uninstaller fails, run it as administrator. Delete any leftover folder (e.g. C:\Program Files\Cheat Engine 7.6\). Patreon clean installer users: use the same uninstall path as the version you installed.
It sets a breakpoint so that when the game (or any code) writes to that address, execution stops and CE shows you the instruction that did the write. From there you can see which code updates health, ammo, etc., and use Auto Assembler to NOP it, change it, or inject your own code. Essential for code-based cheats.
Ensure the address is still valid (game not restarted after finding it). Try increasing “Max level” or “Max offset” in pointer scan options. Some values are in dynamically allocated structures with no static path; in that case you may need to rescan after each restart or use AOB/code injection instead. See wiki pointer tutorials.
The main download is an installer. On the official downloads page there is sometimes a portable or “no install” option. Patreon supporters may get alternative builds. You can also copy the installed CE folder to another PC, but DBVM and some features may need to be set up again.
Right-click in the address list → “Add group” (or use the group button). You can put addresses and scripts inside groups to organize your table. Groups can be collapsed and have their own description. When saving a .CT file, groups are saved too, so you can keep “Health,” “Ammo,” “Scripts” in separate groups.
Value type is how the number is stored: 1/2/4/8 bytes, Float, Double, String, etc. You must match the game (e.g. 4 Bytes for 32-bit integer health). Scan type is the condition: Exact value, Unknown initial value, Bigger than, Smaller than, Increased/Decreased/Changed value, etc. Choosing the right combination is key to a fast, accurate scan.
You can open more than one CE window. Each can attach to a different process or to the same process (advanced). For normal use, one CE attached to one game is enough. Running many instances can use a lot of RAM and may confuse which table is for which game.
A cheat table (.CT) is a file you open in Cheat Engine; it contains addresses, scripts, and options. A trainer is a standalone .exe built from a table (File → Create Trainer) so that users can run it without having CE installed. Both can contain scripts; only open from trusted sources.
In CE, open Memory View → Tools → Dissect data/structures, or use the address list: when you have an address, the module it belongs to is often shown. You can also use “Symbol list” or “Enumerate modules” in Lua. The “main module” (game .exe) base can change due to ASLR unless you use a pointer or AOB.
The first scan with Unknown initial value matches almost all of memory. You must do several “Next Scan” steps with “Increased value,” “Decreased value,” or “Changed value” while you change the value in the game. Each step narrows the list. The built-in tutorial steps 2 and 3 demonstrate this; see the Tutorials page.
The official downloads page is the intended source for downloads. The installer may offer optional third-party software (you can decline). Some antivirus will still flag CE; that is a false positive. Avoid downloading “Cheat Engine” from unknown or mirror sites that might bundle malware.
Open Memory View (or the debugger window), go to the instruction you want, and right-click → “Toggle breakpoint” (or press F2). When execution hits that instruction, CE will pause the process and you can inspect registers and memory. Use “Run” to continue. Breakpoints can also be set via “Find out what writes/reads to this address.”
Mono is the .NET runtime used by many games (e.g. Unity). CE’s Mono support lets you browse the game’s classes and fields by name and add them to the address list. After attaching, use Mono → Activate mono features. Useful when the game is written in C#; for C++ games you scan and use pointers as usual.
Yes. The project has a Patreon page. Supporters often get early access to Windows builds and a clean installer without bundled offers. Donations help with development and server costs. See Patreon for current options.