Troubleshooting Cheat Engine

Cheat Engine troubleshooting

Common problems and solutions. See also the FAQ and Beginners guide. If your issue isn’t listed, check GitHub issues and the forum.

Antivirus says Cheat Engine is a virus / trojan

Cheat Engine is often flagged as a “hacktool” or “potentially unwanted” because it can manipulate other processes and run scripts. The standard build is not malware.

What you can do:

More discussion: Forum (antivirus topic).

Installation fails or Cheat Engine won’t run

If the installer crashes, CE won’t start, or you see errors when opening a process, check the following:

I can’t attach to the game / “Access denied” or similar

If CE can’t open the process or you get access-related errors:

Scanner finds nothing or too many results

This is usually a scanning strategy issue, not a bug:

See our Guides and the built-in CE tutorial for step-by-step scanning.

Installer offers extra software I don’t want

The default installer may include optional third-party software. You can decline those offers during setup. If you want an installer without these offers, you can:

Cheat table (.CT) or script doesn’t work after a game update

Game updates often change memory layout or code. Addresses and code patterns (AOBs) can break. This is expected. You need to update your table or script (find new addresses or AOBs), not necessarily update CE. The CE version doesn’t “fix” outdated game cheats.

Pointer scan crashes or runs forever

Pointer scans can use a lot of memory and disk. Use a smaller “Max level” (e.g. 3–5) first. Exclude very large regions if you know the value is in the main module. If it still crashes, the game may have too many pointers; try finding a different base or use a different approach (e.g. AOB + code injection).

Scan returns too many results and won’t narrow down

Make sure you’re using the exact value shown in the game and the correct value type. Try Float if 4 Bytes gives millions. Do several Next Scans in a row (change value in game each time). If the value is stored in an unusual way (e.g. multiplied), check the Wiki for “custom scan” or “value multiplied” tutorials.

Changing the value in CE doesn’t change it in the game

You may have found a copy of the value (e.g. for display) rather than the “real” value the game uses. Try other addresses from your scan list. Or the game may read the value only once at startup—in that case restart the game with CE attached and set the value before the game reads it. For health/damage, “Find what writes” and patching the code is often more reliable than just changing the address.

Mono / Dissect Mono menu is greyed out

Mono features only work when the target process uses Mono (e.g. Unity). Make sure you’ve attached to the correct process and the game has fully loaded. Some games load Mono late; try after reaching the main menu or in-game. If it’s still greyed out, the game may not use Mono or may use a custom build.

Lua script error when loading a table

The table may have been made with a different CE version or the script has a bug. Check the error message; often it’s a missing function or wrong syntax. Update CE to the latest version. If the table is from someone else, ask them for an updated version or disable the script and use the addresses only.

Game closes when I attach CE

The game may detect CE or another debugger and exit. Try attaching before the game’s anticheat loads (e.g. at the start). Some games close only when you scan; that’s harder to work around. Run CE as administrator. Check the forum for that specific game.

Address works once then stops after restart

Memory addresses change between runs. Use a pointer so your table finds the value every time. Do a pointer scan from the address you found, then rescan after restarting the game and add a valid pointer to your table.

First Scan returns zero results

The value might be stored as a different type (Float, 8 Bytes) or encrypted. Try Float or 8 Bytes. Use “Unknown initial value” then “Increased value” / “Decreased value” and do several Next Scans. See Scanning guide and Value types.

“Find what writes” never triggers

Make sure you’re on the address that the game actually writes to (not a display copy). Trigger the action in the game (e.g. take damage). If it still doesn’t trigger, the game may update the value in a different way (e.g. only on load). Try “Find what accesses” to see what reads the address.

Speedhack has no effect

Some games use their own timers or don’t rely on the APIs CE hooks. Speedhack won’t affect those. There’s no universal fix; try a different speed value or check the forum for that game.

Rescan pointerlist finds no valid pointers

The game’s memory layout may change a lot between runs. Try a pointer scan again from a fresh address in the new session. Use a smaller max level and reasonable max offset. Prefer pointers whose base is the main executable or a stable module.

CE window is blank or freezes when opening a process

Large processes can make CE slow. Wait a bit. If it stays frozen, close CE from Task Manager and try again. Run as administrator. Exclude CE from antivirus. If it happens only with one game, that game may be protecting itself from debuggers.

I can’t find the game in the process list

Make sure the game is running. Check “Show all processes” or similar if the list is filtered. The process name might be the launcher or a different .exe; look for the main game executable. Run CE as administrator so it can see all processes.

Frozen value doesn’t stay frozen in the game

The game might be writing from multiple places or using a copy for display. Try “Find what writes to this address” and patch the code instead. Or you may have frozen a wrong address; test other addresses from your scan list.

Auto Assembler script fails to enable

The AOB (array of bytes) in the script may no longer match the game after an update. Find the new bytes in the disassembler and update the script. Or the game may have multiple code paths; you might need a different injection point.

Still stuck?

Search or ask on:

Download