Scan, Edit & Script Game Memory with Cheat Engine

The free way to inspect and change values in any Windows process. Use the scanner and debugger for single-player games, learn how memory and pointers work, and build .CT tables or Lua scripts to share.

Why Cheat Engine Stands Out

One tool. No subscription. Used by learners and modders worldwide.

100% Free & Open Source

No paywall, no premium tier. Full source on GitHub. Donations optional.

32 & 64-Bit Support

Works with both architectures. Attach to any Windows process and scan.

Built-in Lua Engine

Script anything: automate scans, build UIs, share one-click cheats.

Step-by-Step Tutorial

Learn scanning and debugging in minutes. No game needed—included after install.

Memory scanner Debugger & disassembler Speedhack Trainer maker Pointer scan

Getting Started in 5 Steps

From zero to your first cheat in minutes. No prior experience needed.

1

Download and install

Get the latest Cheat Engine from the official site or our download section. Run the installer; you can skip the optional bundled software. Restart if prompted.

2

Run the built-in tutorial

From the Start Menu, open “Cheat Engine Tutorial.” It’s a small program that teaches First Scan, Next Scan, and freezing values. Complete at least steps 1–3 to understand the basics.

3

Pick a single-player game

Start a game where a value is easy to see (e.g. health, gold, ammo). Attach CE to the game process via the process list (computer icon). Make sure the game is running before you attach.

4

First Scan and Next Scan

Enter the current value (e.g. 100 health), choose the correct value type (4 Bytes, Float, etc.), then click First Scan. Change the value in the game (take damage, spend gold), enter the new value, click Next Scan. Repeat until few addresses remain.

5

Change or freeze the address

Double-click an address to add it to the list below. Change the value or check “Active” to freeze it. If the game doesn’t react, try another address from the scan results.

How the Memory Scanner Works

Cheat Engine reads the memory of the attached process and filters it by the value and type you specify. Understanding this helps you scan smarter.

First Scan

You enter a value (e.g. 50) and the type (4 Bytes, 8 Bytes, Float, Double, String, etc.). CE scans the entire process memory and lists every address where that value appears. There can be thousands or millions of matches.

Use “Unknown initial value” when you don’t know the number (e.g. for encrypted or unknown formats). Then use “Increased value,” “Decreased value,” or “Changed/Unchanged value” for next scans.

Next Scan

After you change the value in the game (e.g. health goes from 50 to 45), you enter the new value and click Next Scan. CE keeps only addresses that now contain that value. Each next scan narrows the list.

Usually 2–5 scans are enough for simple values. For harder cases use “Value between,” “Bigger than,” or “Smaller than” to filter further.

Pro tip

If you get too many results, change the value in the game again and do another Next Scan. If you get zero results, the value might be stored differently (e.g. multiplied, in a different type, or on the server). Try “Unknown initial value” or check our guides.

Use Cases & Scenarios

What people use Cheat Engine for—from casual fun to serious learning.

Single-player fun

Infinite health, ammo, or gold in story-driven games. Speed up grinding or slow down difficult sections with Speedhack.

Learning reverse engineering

See how games store data in memory. Use the debugger to find which code reads/writes an address. Great for security and game-dev curiosity.

Making and sharing .CT tables

Save your findings in a cheat table. Share the .CT file so others can load it and use the same cheats without scanning from scratch.

Lua automation

Write scripts to auto-scan, batch-edit values, or build a custom in-game UI. The forum has many examples and helpers.

Speedrun and testing

Speedhack and memory edits are sometimes used in speedruns or by developers to test their own games quickly.

Education and demos

Teachers use CE to explain memory layout, pointers, and process memory. The tutorial is ideal for classroom use.

Advanced Features at a Glance

Pointer scan

Finds a chain of pointers to an address so your cheat still works after the game restarts or updates.

Dissect data/structures

Explore structures and arrays in memory. Useful when values are inside nested structs or classes.

Auto Assembler

Inject custom assembly code: replace instructions, add jumps, or patch the game at the code level.

DBVM (optional)

Kernel-level driver for advanced use (e.g. bypassing some protections). Optional; normal use doesn’t require it.

System Requirements & Compatibility

Windows

Cheat Engine runs on Windows 7 and later (32-bit and 64-bit). You need administrator rights to attach to most processes. Antivirus may flag it; add an exception for the install folder if you use the official build.

For 64-bit games, use the 64-bit CE build. For 32-bit games, the 32-bit build is typically used.

Mac (experimental)

A Mac version exists but is less mature than the Windows version. Check the download page and forum for current status and limitations.

Tips & Best Practices

Why Use Cheat Engine?

One free tool for scanning memory, setting breakpoints, controlling speed, and writing scripts. Built for learners and modders.

Find Any Value

Search for exact or unknown values. Narrow results with next scan. Supports integers, floats, doubles, and strings.

Breakpoints & Code

See which code reads or writes an address. Step through assembly and inject or patch instructions.

Speed Control

Speedhack slows or speeds game time. Handy for tough fights or boring grind in single-player.

Cheat Tables (.CT)

Save addresses and scripts in a table. Reload next time or share with others. Generate a standalone trainer if you like.

Lua Scripts

Automate scans, change many values at once, or build a custom UI. The forum has plenty of examples to learn from.

Pointers & Maps

Pointer scan finds stable paths so your cheat works after restart. Save and reuse pointer maps for updates.

Guides & tutorials →

Suggested Learning Path

Progress from basics to advanced at your own pace.

Level 1

Tutorial & first scan

Complete CE tutorial steps 1–6. Find and freeze one value in a real game.

Level 2

Multiple values & types

Find health, ammo, gold. Try Float, 8 Bytes. Use “Unknown initial value” and “Changed value.”

Level 3

Debugger & code

Find what writes/reads an address. Step through assembly. Try simple Auto Assembler scripts.

Level 4

Pointers & .CT tables

Pointer scan, save tables, share with others. Use dissect data for structures.

Level 5

Lua & automation

Write Lua scripts. Build custom UIs. Automate scans and batch edits.

Common Game Types & What to Scan

RPGs & action games

Health, mana, gold, experience—often 4 Bytes or Float. Try “Exact value” first; if the number on screen doesn’t match, it may be scaled or stored in a different type.

Shooters

Ammo, health. Sometimes stored per-weapon. Use Next Scan after firing or taking damage. Float is common for health.

Strategy & simulation

Resources (wood, gold, etc.) are usually integers. Scan after gaining or spending. Multiple resources mean multiple scans.

Indie & older games

Often simpler memory layout. Good for practice. Less likely to have heavy anti-tamper.

Newer AAA (single-player)

Values may be encrypted or in structures. Pointer scan and “Unknown value” are useful. Check the forum for game-specific tips.

Browser & emulators

Browser games run in the browser process; attach to the right tab/process. Emulators: attach to the emulator; addresses may change each run—use pointers.

Learn How Games Work in Memory

Cheat Engine lets you attach to any running process and read or write its memory. That makes it ideal for understanding how single-player games store health, ammo, or gold—and for changing those values for fun or learning. It also doubles as a debugger and disassembler, so you can see the code that uses an address.

The built-in tutorial (from the Start Menu after install) walks you through finding a value, freezing it, and using the debugger. No game required. Once you’re comfortable, try a real game: pick a visible value (e.g. health), scan, change it in-game, then next scan until you have a short list. Freeze or change to confirm.

CE is free and open source. Use it only on software you’re allowed to modify. For single-player that’s usually fine; for online games, assume it’s against the rules unless stated otherwise. Respect the law and each game’s terms of service.

Speedhack, Debugger & Disassembler

Speedhack

Speedhack changes how fast the target process “sees” time. You can slow the game to 0.5x for tough fights or speed it to 2x–10x to skip grinding. It hooks time-related APIs; not all games respect it. Find it in the main CE window; set speed and enable.

Use only in single-player. Some games break visually or physically at extreme speeds.

Debugger & Disassembler

Right-click an address → “Find out what writes to this address” (or “reads”). When the game touches that memory, CE breaks and shows the instruction. You can then step through assembly, inject code, or NOP instructions. The disassembler shows the code around the current instruction.

Essential for finding where health is written, or for creating code caves and patches.

Cheat Tables (.CT) & Sharing

Save your work in a .CT file and share it with the community or reuse it later.

Lua Scripting in Cheat Engine

CE embeds a Lua engine. You can automate scans, create forms and buttons, and interact with memory and the debugger from scripts.

What you can do

Create custom scan dialogs, hotkeys, and UIs. Read/write memory by address. Hook functions, execute Auto Assembler from Lua, and more. Many table authors ship a single “Activate” script that does everything.

Where to learn

Help → Cheat Engine Lua Scripting in CE, and the Wiki. The forum has Lua subforums and example scripts. Start by opening an existing .CT with Lua and reading the script code.

Pointer Scan Explained

Addresses often change every time you start the game. Pointer scan finds a chain of pointers from a static base (e.g. module base) to your address so the cheat works after restart.

You need a known address first (from normal scanning). Then use Tools → Pointer scan. CE searches for pointer paths; it can take minutes and use a lot of disk. When done, you filter by “must be valid” after restart and add the best pointer to your table. Our guides cover this in detail.

Plugins & Extensions

Cheat Engine supports plugins (DLLs) that add features. The community has created plugins for specific games, extra scan types, and utilities.

Place plugin DLLs in the CE installation folder (or the folder specified in CE settings). Restart CE to load them. Only use plugins from trusted sources; they run with the same privileges as CE. See the Resources page and the forum for lists and links.

Security & Responsible Use

Antivirus & false positives

CE can read/write other processes and load scripts. Many antivirus products flag it. The official build from cheatengine.org is safe. If you trust the source, add an exclusion for the CE folder. Do not disable AV entirely.

Ethics & rules

Use CE only on software you are allowed to modify. In single-player games this is usually fine. In online games, assume it is against the terms of service and can result in bans. Respect laws and each product’s EULA.

Recent Version Highlights

Cheat Engine is actively developed. New releases bring better 64-bit support, Lua improvements, and UI fixes.

Who Uses Cheat Engine?

Gamers

Single-player modding and fun

Learners

Reverse engineering & security

Table makers

Creating and sharing .CT files

Educators

Teaching memory & debugging

Quick Glossary

Address

A location in process memory. CE shows addresses in hex (e.g. 0x12345678).

First Scan / Next Scan

First scan finds all matches for a value; next scan narrows by the new value after it changes.

Freeze

Keep a value unchanged. CE repeatedly writes the same value so the game can’t change it.

Pointer

An address that holds another address. A pointer chain leads from a fixed base to the value.

.CT (Cheat Table)

File format that stores addresses, scripts, and descriptions. Shareable and reloadable.

Value type

How the value is stored: 4 Bytes, 8 Bytes, Float, Double, String, etc. Picking the wrong type gives wrong results.

External Learning Resources

Beyond this site, these are go-to places for guides and help.

Quick Answers

How do I find a value (e.g. health)?
Enter the current value and click First Scan. Change it in the game (e.g. take damage), then enter the new value and click Next Scan. Repeat until you have few addresses. Try changing or freezing one to confirm.
Why do some antivirus programs flag CE?
CE can read and write other processes’ memory and run scripts. Security software often treats that as suspicious. The official build from cheatengine.org is safe; add an exception if you trust the source.
Can I use CE in online games?
Usually not. Online games check data on the server. Changing values locally often only changes what you see; the server keeps the real value. Using CE in online games typically violates the game’s terms and can get you banned.
Where do I get more help?
Run the built-in tutorial first. Then use our Guides, the Wiki, and the forum. For common issues see Troubleshooting.
What value type should I use?
If the number on screen is a whole number (e.g. 100 health), try 4 Bytes or 8 Bytes. If it has decimals (e.g. 99.5), use Float or Double. If you see text, use String. Wrong type = no or wrong results; try another type.
Why do I get zero results after Next Scan?
The value might be stored in a different type (try Float instead of 4 Bytes), or encrypted, or the game might have changed it in an unexpected way. Try “Unknown initial value” then “Decreased value” or “Changed value.”
Do I need to run CE as administrator?
Often yes. If you get “access denied” when attaching to a process, right-click Cheat Engine → Run as administrator. Some protected processes require admin; for normal games it’s usually enough.
What is Pointer Scan and when do I need it?
When the address of a value changes every time you start the game, a normal address is useless. Pointer scan finds a chain of pointers from a stable base (e.g. game module) to your value so the table works after restart. See our guides for a step-by-step.
Is Cheat Engine safe? Can it get me banned?
The official CE from cheatengine.org is safe. Use only on single-player or where modification is allowed. In online games, using CE usually violates the EULA and can get your account banned; we do not support or encourage that.

More troubleshooting →

Forum & Wiki

Share tables and scripts, ask questions, and browse tutorials. The community is active and welcoming to beginners.

Forum

Game-specific tables, Lua scripts, and general help. Search before posting; many questions are already answered.

forum.cheatengine.org →

Wiki

Documentation, tutorials, and explanations of features like pointer scan, Auto Assembler, and Lua.

wiki.cheatengine.org →

Community page

Links to Discord, social channels, and other community hubs in one place.

Community & links →

Community & links →

Downloads & Extras

Language packs, CEServer for remote debugging, plugins, and the full open-source code. All on the resources page.

Main installer

Windows 32/64-bit. Get it from the Download section or the official site.

Language packs

Translate the CE interface. Install and select in CE settings.

CEServer

Remote debugging: run on another machine and attach from your CE client.

Source code

Full source on GitHub. Build from source or contribute.

Downloads & resources →

Ready to get started?

Download Cheat Engine for Windows (and Mac), run the built-in tutorial, then explore our guides and community.

Download