Cheat Engine Tutorial: Memory Editing for Beginners
Getting Started with Cheat Engine
Cheat Engine is the most popular game hacking tool in the world, and for good reason—it's free, powerful, and relatively beginner-friendly. Originally created by Eric "Dark Byte" Heijnen in 2003, it has been continuously developed for over two decades and remains the go-to tool for memory editing in games. Whether you want to give yourself infinite health in a single-player RPG or learn the fundamentals of how game cheats work, Cheat Engine is where you start.
This tutorial walks you through downloading, setting up, and using Cheat Engine for the first time. We'll cover value scanning, pointer finding, code injection, and creating shareable cheat tables.
Downloading and Installing
Download Cheat Engine from the official website: cheatengine.org. Important notes:
- Use the official site only. Third-party downloads often contain malware.
- The installer includes optional adware. During installation, carefully read each screen and decline any bundled software offers (toolbars, browser extensions).
- Your antivirus will flag it. Cheat Engine modifies process memory, which is behavior that antivirus programs associate with malware. Add an exception for Cheat Engine in your antivirus settings. This is safe when downloading from the official source.
- Don't run it with online games. Most multiplayer anti-cheat systems detect Cheat Engine. Use it only with single-player or offline games.
The Cheat Engine Interface
When you open Cheat Engine, you'll see several key areas:
- Process selector (top-left): The blinking computer icon that lets you select which game/process to attach to
- Value input field: Where you enter the value you're searching for
- Scan type dropdown: Exact Value, Bigger than, Smaller than, Unknown initial value, etc.
- Value type dropdown: 4 Bytes (integer), Float, Double, String, etc.
- First Scan / Next Scan buttons: Initiate and refine your search
- Address list (bottom): Where found addresses are stored and managed
- Found addresses (left panel): Results from your memory scans
🎯 Tutorial: Finding and Modifying Health
Let's walk through the most fundamental Cheat Engine operation—finding a health value and making yourself invincible.
Step 1: Open Your Game
Launch a single-player game. For this tutorial, any game where you can see your health as a number works. Good choices: Assault Cube (free, designed for this), any older RPG, or even the built-in Cheat Engine tutorial (Help → Cheat Engine Tutorial).
Step 2: Attach Cheat Engine
Click the blinking computer icon in the top-left. A process list appears. Select your game from the list and click "Open." Cheat Engine is now attached to the game's memory.
Step 3: First Scan
Note your current health value (let's say 100). In Cheat Engine:
- Set Scan Type to "Exact Value"
- Set Value Type to "4 Bytes" (most common for health)
- Enter "100" in the value field
- Click "First Scan"
Cheat Engine will find thousands of addresses containing the value 100. That's expected—many memory locations coincidentally hold this number.
Step 4: Narrow Down
Go back to the game and take damage. Your health changes (let's say to 75). Return to Cheat Engine:
- Enter "75" in the value field
- Click "Next Scan" (not First Scan!)
This filters the previous results, keeping only addresses that changed from 100 to 75. The result count should drop dramatically—perhaps to a few dozen or even just one address.
Step 5: Repeat if Needed
If you still have too many results, take more damage and scan again. Each iteration eliminates false positives. Typically, 2-4 scans are enough to find the exact health address.
Step 6: Modify the Value
When you have 1-3 results, double-click an address to add it to your address list (bottom panel). Then double-click the Value column and change it to 99999. Switch back to the game—your health should now be 99999. Take damage to verify it decreases from 99999 rather than the original value.
Step 7: Freeze the Value
To create true invincibility, check the "Active" checkbox next to the address in your list. This freezes the value—Cheat Engine will continuously write 99999 to that address, overriding any damage the game applies.
đź’° Want Cheats Without the Work?
Pre-made cheats save hours of reverse engineering. Browse CheatBay for ready-to-use game cheats.
Understanding Value Types
Choosing the correct value type is crucial for successful scanning:
- 4 Bytes (Int32): Stores whole numbers from -2,147,483,648 to 2,147,483,647. Most common for health, ammo, money, experience points.
- 2 Bytes (Int16): Stores -32,768 to 32,767. Used in some older or console-ported games.
- Byte: Stores 0-255. Occasionally used for small values like lives remaining.
- Float: Decimal numbers with ~7 digits of precision. Common for health in modern games (100.0 instead of 100), coordinates (X/Y/Z position), and percentages.
- Double: Decimal numbers with ~15 digits of precision. Less common but used in some games for high-precision values.
- String: Text values. Useful for finding player names, chat messages, or file paths in memory.
If "4 Bytes" doesn't find your health, try "Float." If the game shows health as a decimal (73.5), it's definitely a float. If the game shows percentage-based health, try scanning for the float representation (0.735 for 73.5%).
Finding Unknown Values
Some games don't show exact numbers—health might be a bar with no number displayed. For these:
- Set Scan Type to "Unknown initial value" and click First Scan
- Take damage (health decreases) → set Scan Type to "Decreased value" → Next Scan
- Wait without taking damage → set Scan Type to "Unchanged value" → Next Scan
- Heal (health increases) → set Scan Type to "Increased value" → Next Scan
- Repeat until you have a manageable number of results
This process is slower but works for any value, even those you can't see exactly.
⚡ Pointer Scanning: Creating Stable Cheats
The addresses you find with basic scanning are dynamic—they change every time the game restarts because the operating system allocates memory at different locations. To create cheats that work across sessions, you need pointer chains.
What Are Pointers?
A pointer is a memory address that contains another memory address. Games use pointer chains to reference game objects:
Static Base Address → Pointer → Pointer → Health Value
The base address is always the same (it's in the game's executable or a loaded module). Following the chain of pointers eventually leads to the dynamic health address. By recording this chain, Cheat Engine can follow it each time the game starts to find the current health address.
Finding Pointers
- Find the health address using normal scanning
- Right-click the address → "Find what writes to this address"
- Take damage in-game—a new window shows the assembly instruction that modified the value
- The instruction reveals the register and offset used (e.g.,
mov [rsi+120], eaxmeans the player object is at RSI, health is at offset 0x120) - Right-click the address → "Pointer scan for this address"
- Accept default settings and click OK
- Save the pointer scan results
- Restart the game and re-find the health address
- Rescan the pointer scan results with the new address
- The surviving pointer chains are your stable paths
Auto Assembler Scripts
For more advanced modifications, Cheat Engine includes an Auto Assembler that lets you write assembly code scripts:
Code Injection (God Mode Example)
Instead of freezing health (which fights the game constantly), you can inject code that prevents damage from being applied:
- Find the instruction that reduces health (using "Find what writes to this address")
- Right-click the instruction → "Replace with code that does nothing"
- Cheat Engine generates a script that NOPs (no-operations) the damage instruction
- The game simply never processes damage—no need to freeze values
This is cleaner and more reliable than value freezing. It also introduces you to code injection, which is the foundation of more complex cheats.
Creating and Sharing Cheat Tables
Cheat Tables (.CT files) save your findings in a portable format:
- Add your found addresses and scripts to the address list
- Name each entry descriptively ("Player Health," "Infinite Ammo," etc.)
- Organize entries into groups using right-click → "Group entries"
- File → Save As → choose a .CT filename
Sharing tips:
- Use pointer chains so the table works for anyone, not just your current session
- Include the game version in the table description (different versions may change offsets)
- Add activation hotkeys for convenience
- Test on a fresh game launch before sharing
Community sites like FearLess Cheat Engine, UnknownCheats, and the Cheat Engine forums host thousands of user-created cheat tables for virtually every single-player game.
🎯 Level Up from Cheat Engine
Ready for multiplayer cheats? CheatBay offers professional-grade tools with anti-cheat bypass. Browse CheatBay
The Built-In Tutorial
Cheat Engine includes a 9-step tutorial program (Help → Cheat Engine Tutorial) that teaches progressively advanced concepts:
- Step 1: Qualify (password entry)
- Step 2: Exact value scanning (basic health find)
- Step 3: Unknown initial values
- Step 4: Float and double values
- Step 5: Code finding (find what writes)
- Step 6: Pointers
- Step 7: Code injection
- Step 8: Multi-level pointers
- Step 9: Shared code (modifying behavior for all entities)
Completing all 9 steps gives you a solid foundation. Most beginners spend 2-4 hours on the full tutorial. Take your time on steps 6-9 as they introduce critical concepts.
Common Mistakes and Tips
- Wrong value type: If scanning for an integer finds nothing, try float. Modern games often use floats even for values displayed as whole numbers.
- Scan too early: Wait for the game to fully load before scanning. Menu screens and loading screens may store values differently than gameplay.
- Too many results: If you can't narrow below 10 results, try changing the value more dramatically before scanning (use cheats to modify health by large amounts, or let yourself get very damaged).
- Frozen values causing crashes: Some values shouldn't be frozen. If freezing health crashes the game, use code injection instead—NOP the damage instruction rather than fighting it with constant writes.
- Online game detection: Cheat Engine's process is detected by virtually all anti-cheats. Never have it running when playing online games, even if you're not attached to the game process.
Beyond Cheat Engine
Once you're comfortable with Cheat Engine, the next steps in your learning journey:
- ReClass.NET: For mapping complex game structures visually
- x64dbg: For more advanced debugging and analysis
- C++ programming: For creating standalone cheat programs
- DLL injection: For creating internal game cheats
- IDA/Ghidra: For full static analysis of game binaries
⚡ Ready-Made Cheats Available
Not everyone wants to build their own. Find professional cheats for any game. Browse CheatBay
Conclusion
Cheat Engine is the perfect entry point into game hacking and memory editing. Its combination of power and accessibility has made it the standard learning tool for over two decades. Start with the built-in tutorial, practice on single-player games, and gradually explore advanced features like pointer scanning and code injection. The skills you build with Cheat Engine form the foundation for everything in game reverse engineering—from creating simple trainers to understanding how professional cheat software works. Download it, experiment freely, and enjoy the process of understanding how games really work under the hood.
Ready to Level Up?
Browse verified, undetected cheats on CheatBay — or start selling your own and earn crypto.
Browse Cheats Start Selling