Cheat Engine is an open-source memory scanner and debugger primarily used for modifying single-player games. With it, users can alter various game parameters, such as health or money, by scanning and changing values stored in system memory. Its features include a disassembler, trainer creator, speed hack tool, and direct 3D manipulation. While it’s extremely powerful, using Cheat Engine can violate terms of service in many games and can lead to bans when misused.
- ? Cheat Engine is an open-source tool primarily for modifying single-player games, allowing users to change in-game values.
- ? Features include Exact Value Scanning, Unknown Initial Value Finder, Floating Points, and advanced techniques like code replacement and pointer utilization.
- ⚠️ While powerful, using Cheat Engine might breach terms of service in some games, leading to potential bans.
- ? It requires patience, trial, error, and an understanding of programming concepts for intricate modifications.
- ? Pointers in Cheat Engine provide a consistent method to find values across different game sessions, which is vital for creating lasting cheats.
What is Cheat Engine?
Cheat Engine is a powerful tool primarily designed for game modification on Windows operating systems. We use it to crack (modify) games and meddle with the data, fiddling with game parameters that vary from health points to in-game currency.
It also lets us to load cheat tables, unlocking all sorts of advantages and shortcuts traditionally hidden from players.
Cheat Engine updates regularly with new cheat methods and freshly released patches, ensuring we never miss a chance to tweak our games. This software has earned quite a reputation amongst the global gamer community as one of the top resources for editing game values.
Installing and Opening Cheat Engine
Here are the steps you need to follow:
- Navigate our Cheat Engine page using your computer’s web browser.
- Choose the “External mirror” option to download Cheat Engine.
- Open the downloaded file and run the installation process.
- Follow the on-screen prompts to complete the installation.
- Once installed, locate and click on the Cheat Engine icon on your desktop or start menu to open it.
Finding and Changing In-Game Values
Let’s explore the main features of Cheat Engine and how can we use them to tweak and edit various in-game values. It’s not hard, but we have to explain the core concepts for a better understanding.
Exact Value Scanning
First, we have the Exact Value Scanning feature of Cheat Engine. This powerful tool allows us to search for specific in-game values quickly and efficiently.
Exact Value Scanning is one of Cheat Engine’s most simple methods of searching for values. It allows users to pinpoint specific values in a program’s memory based on an exact known value, such as a player’s health points, gold amount, or ammo count.
Here’s how to use Exact Value Scanning effectively:
- Identify the Value in the Game: Before you start, have the game or application running. Look for a specific value you want to modify, such as your character’s health, which might be, say, 100.
- Open Cheat Engine: Attach Cheat Engine to the game’s process. This is typically done using the flashing computer icon in the top-left corner of Cheat Engine.
- Start the Scan: In the ‘Value’ field, enter the exact value you identified (e.g., 100 for the health). Choose the correct value type (e.g., 4-byte, float, etc.), though “All” can be used if unsure. Then click “First Scan.”
- Narrow Down the Results: After the initial scan, you’ll get a list of addresses with that exact value. Since multiple addresses might have the same value, you need to narrow it down. Return to the game and change the value (e.g., lose some health). Then go back to Cheat Engine, enter the new value in the ‘Value’ field, and click “Next Scan.” This process removes addresses that no longer match the criteria and hones in on the correct one.
- Modify the Value: Once you’ve identified the right address (or a handful of likely candidates), you can add them to your address list (usually by double-clicking them or using the red arrow), and then modify the value directly to see if it changes in the game.
- Repeat if Necessary: If you haven’t found the correct address or if there are too many results, repeat the process of changing the value in-game and doing “Next Scan” in Cheat Engine until you’ve isolated the right address.
- Save Addresses: If you plan on using this cheat again, you can save the address list for future use, though keep in mind that addresses can change between game sessions or updates, hence the importance of pointers for more permanent cheats.
To use Exact Value Scanning effectively, patience is key. Sometimes, the initial list might have hundreds or thousands of matches, but with each successive change and “Next Scan,” the list will get smaller, making it easier to identify the correct address to modify.
Unknown Initial Value
Now, let’s talk about “Unknown Initial Value“. This feature is used when we don’t know the exact value we’re looking for in a game. Here are the steps we take when dealing with an unknown initial value:
- We start by selecting ‘Unknown Initial Value’ in Cheat Engine.
- We then perform an action in our game that changes a specific numerical value. (like taking damage or spending gold/money)
- Next, we go back to Cheat Engine and scan for changed or unchanged values based on what has just occurred in our game.
- This process can be repeated until we narrow the list to values that closely match what we’re targeting in the game.
- Once identified, these values can be manipulated for different purposes.
In Cheat Engine, “floating points” refer to values stored in memory using the floating-point format, which is a way to represent real numbers in binary form, especially numbers with fractions or decimals.
Floating points in Cheat Engine refer to values stored using the floating-point representation, which is a way to encode real numbers in a computer’s memory. These values are especially common in games for representing attributes requiring fractions or decimals, such as player speed, coordinates, damage multipliers, etc.
Here’s how to effectively use floating point scans in Cheat Engine:
- Identify the Value in the Game: Determine the floating-point value you want to search for, like a player’s speed of 1.5 or a damage multiplier of 0.75.
- Open Cheat Engine: Attach Cheat Engine to your game’s process using the flashing computer icon.
- Start the Scan: In the ‘Value’ field, input the floating-point value you identified (e.g., 1.5). For the ‘Value Type,’ select “Float” (or “Double” for more precision if you suspect the game uses it). Then, hit “First Scan.”
- Narrowing Down Results: As with exact value scanning, you’ll be presented with a list of addresses after your first scan. Return to the game, change the value (e.g., change the game’s speed settings), then return to Cheat Engine. Input the new floating-point value and click “Next Scan.” This helps in refining the list of potential addresses.
- Test and Modify: Once you’ve isolated potential addresses, test by modifying the values and observing changes in the game. For example, if you’re working with a speed value, changing it should directly affect the player’s speed.
- Be Aware of Approximations: One challenge with floating-point values is that they may not always be stored exactly as they appear due to rounding or approximations. If you’re having trouble finding a value, try searching for rounded or slightly different values, or even use the “Rounded (default)” option in Cheat Engine.
- Repeat and Refine: It might take several iterations to find the right address, especially with floating points. You might have to change the value in-game multiple times and perform subsequent scans to narrow the list.
Effectively using floating-point scans in Cheat Engine often requires a bit of trial and error, mainly due to the nature of floating-point representation. Still, persistence allows you to identify and manipulate various game values that aren’t restricted to whole numbers.
In Cheat Engine, the “Code Finder” or “Find out what writes/accesses this address” is a tool to identify which parts of a program’s code interact with a particular memory address. By knowing this, users can modify or inject their code to alter a game’s behavior in desired ways.
Here’s a basic rundown on how to use it effectively:
- Identify Memory Address: First, you must identify the memory address of the value you want to monitor, which you might have already found during your initial searches (e.g., player’s health).
- Access Code Finder: Right-click the address in the Cheat Engine address list, and choose either “Find out what writes to this address” to find code that changes the value or “Find out what accesses this address” to see code that reads or uses the value.
- Trigger the Value Change: Go back to the game or software and perform an action that would cause the value at the target memory address to change (e.g., take damage if you’re monitoring health).
- Review Results: Return to Cheat Engine. The Code Finder will list the instructions and their addresses that interacted with the memory address during your test.
- Modify/Inject: Once you’ve identified the correct instruction, you can replace or inject your code. For instance, if an instruction decreases player health, you could modify it so health doesn’t decrease or increase.
- Testing: Always test your modifications to ensure they work as expected and don’t crash the game or produce unwanted side effects.
A key to using the Code Finder effectively is understanding assembly language and the underlying operations of the code you’re observing. Beginners might find it challenging, but with practice and a foundational understanding of programming concepts, it becomes an invaluable tool for creating intricate cheats and modifications.
The developers of Cheat Engine explained the Code Finder feature in detail; here’s the full video to the short tutorial:
In Cheat Engine, “pointers” refer to memory addresses that store the location of another memory address. They act as references or “pointers” to the actual data values you might be interested in.
Pointers in Cheat Engine refer to memory addresses that store the location of another memory address. They act as indicators or “arrows” pointing to the data values. Pointers are essential because game data locations can shift every time you restart, making static addresses unreliable across different sessions.
Using pointers, however, provides a way to find values more consistently. Here’s how to effectively use pointers in Cheat Engine:
- Find the Static Address: Initially, you will identify a value using the typical scanning method (e.g., Exact Value or Floating Point). Once you’ve found the memory address of a particular value, that’s your starting point.
- Pointer Scan: Right-click on the address you found and select “Pointer Scan for this Address.” This will open a new window where Cheat Engine will attempt to find all possible pointer paths that lead to your address.
- Filter Results: The initial pointer scan might yield massive results. To narrow these down, restart the game (or the application) and find the value again using regular scans. Once you’ve identified the new memory address for your value, go to the Pointer Scanner window and click “Rescan Memory” using the new address. This process will filter out pointers that no longer point to the correct address after the game restart.
- Iterate: You might need to repeat the process (restarting the game, finding the value, rescanning pointers) several times to narrow the list to a reliable set of pointers.
- Test the Pointer: Once you’ve identified a potential pointer, double-click on it to add it to your Cheat Engine address list. This will display both the pointer and the offset. This pointer should consistently lead you to the correct address across different sessions if done correctly.
- Create Scripts or Trainers: With a reliable pointer, you can create scripts or trainers that don’t rely on static addresses but instead use the pointer path to find and modify values. This ensures consistency across game restarts and often even through game updates.
Reading through the official Wiki, let’s you study Pointers a lot better since the wiki provides some examples for a better understanding.
If you have already familiarized yourself with Cheat Engine, here’s a good (and long) video tutorial on creating complex scripts, assembly, tracers and more:
Using pointers effectively in Cheat Engine requires patience and a systematic approach. It can be somewhat more complex than straightforward value scanning, but the payoff is the ability to create more consistent and long-lasting cheats. It’s also worth noting that games with anti-cheat mechanisms might employ techniques to thwart pointer scanning, so always be cautious and respectful of terms of service.
As a conclusion, Cheat Engine is a pretty complex piece of software that allows to edit all sorts of data in your favorite game. While not exactly a white hat tool since it’s used for cheating, a lot of players also use it for creating and modifying levels, graphics, mods and other fun stuff. It’s not all doom and gloom, and you can make it extremely fun with the proper imagination.