Keep in mind that this is a tutorial for beginners.
If you do not yet have Cheat Engine, you can download the latest version here.
Step 1: What is Cheat Engine?
Righteo, now then, let's talk about Cheat Engine. Because I don't think I could possibly do any better than the fellows who made the actual programme, here's Cheat Engine is their eyes:
Cheat Engine is an open source tool designed to help you with modifying single player games running under window so you can make them harder or easier depending on your preference(e.g: Find that 100hp is too easy, try playing a game with a max of 1 HP), but also contains other usefull tools to help debugging games and even normal applications.
It comes with a memory scanner to quickly scan for variables used within a game and allow you to change them, but it also comes with a debugger, disassembler, assembler, speedhack, trainer maker, direct 3D manipulation tools, system inspection tools and more.
Now that we've covered that, what're we learning first?
Step 2: Finding and selecting your process
Firstly, you'll want to open the game you wish to modify. WARNING: Most multiplayer games will not succumb to Cheat Engine unless ingenuity is used. One exception of this is Roblox and its counterparts.
Firstly, you'll want to click on the processes button (looks like a person coming out of a desktop) which is located at the top left corner of Cheat Engine. A picture is included.
If you opened your process recently then it should be on the bottom (or the top, whichever way you look at it) of the list. This step is pretty self explanatory except if the game is a browser based game. This is when things get tricky for Google Chrome users (I don't know what other browsers do this). You will notice that there are a lot of internets open, each with a different code at the front.
To circumnavigate this, you must follow these steps:
1. Type into your address bar (the bar that shows the address of the page you are on) and type in "about:memory" (without the quotation marks). On this page it will display the memory usage and other useless pieces of information. What you are looking for is the PID of the browser that you want. Let's say that I want to hack Instructables (It says "Submit: Step By Step" down the bottom). I would lookup the PID of that particular process (5520).
2. From there, I would go back onto Cheat Engine and select any process (the process isn't important at this point) and put in on the "Value" box the PID (5520).
3. Click the "hex" checkbox to the left of the "Value" bar. This will tell you what prefix the browser that you want is. Mine would say "00001590". So, the browser I want to connect to would be "00001590-chrome.exe".
Are you following?
Don't worry if you don't get it, there is always Google.
ON TO THE NEXT STEP!
Step 3: Step 1 (Cheat Engine Tutorial)
Here is how you do it:
1. Open Cheat Engine
2. Open The Cheat Engine tutorial via the Cheat Engine (Help: Cheat Engine tutorial)
3. Read what the tutorial says:
"Welcome to the Cheat Engine Tutorial. (v3.2)
This tutorial will try to explain the basics of cheating on games, and getting you more familiar with Cheat Engine.
First open Cheat Engine if it hasn't been opened yet.
Then click on the 'open process' icon. (top left icon, with the computer on it)
When the process window is open find this tutorial. The process name is probably 'tutorial.exe' unless you
Select it, and click ok. Just ignore all the other buttons right now, but experiment with them later if you feel like it.
When everything went right, the process window should be gone now and at the top of CE the process name is
Now, click NEXT to continue to the next step. (Or fill in the password to proceed to that particular step you want)"
4. If you read the message then you would have done this already, select the tutorial from the processes list (If you don't know how to do this, revise step 1 of this instructable).
5. Now, press "Next" on the bottom of the message, this will take you to "Step 2".
1. I can't find the tutorial on the processes list.
If this is the case, then one of three scenarios are or have occurred.
Scenario 1: You have renamed the tutorial and now you cannot find it easily on the process list. In this instance, you will need to search for the new name.
Scenario 2: You opened the processes list before opening the tutorial. If this is the case, close the process list and open it again and it should be there.
Scenario 3. You haven't opened the tutorial yet. Open it.
2. What's the process list?
You should already know this if you read the tutorial, or my instructable. Go read the first step in this instrucatble and stop being impatient!
Step 4: Scanning for variables
Basically, it is a word, letter or symbol that holds a value or a set of values.
When you scan for a value in Cheat Engine, what you are actually doing is scanning for a variable. This is done by flicking through every "address" in the game in search for anything with the value you have specified. Once found, it will display it on the "address bar". Most of the time it will find more than one result and you will need to define your search more thoroughly. This will be taught later in the step.
You should start with an easy game with lots of opportunities to change things. I recommend you make yourself a Roblox account so you can play a game called "Skyrim" (It's a rip off but it has tonnes of opportunities). This may sound childish but it is very fun to make yourself level 999999999 and hit a couple of hundred billion damage each hit. It is also great practice.
Now, on to the actual instructions.
1. Decide which variable to change (it should be something that either changes often, or you can change manually).
2. Scan for the value of the variable by pressing the "First Scan" or "New Scan" buttons (usually you use "4 byte" and "Exact Value" scans for this. More advanced techniques will be taught later).
3. If there is only one result there, then continue reading this step. If not, skip to step 4. Double click the variable to add it to your "quick access bar" down the bottom. Rename it according to what it represents to avoid confusion later. Now, double click the "Value" section and a popup should appear asking you to change the value of it. Change it whatever you please and voilà! Finished! If for some reason this isn't working then there troubleshooting at the bottom of this step.
4. If you are reading this then you are either curious, or you have more than one variable. Well, this is why I told you to choose a value that can change. Long story short, you need to value to change (say: from 40 to 32). Once this has been accomplished, put the new value into the "Value" box and click "next scan". This will scan the variables from the first scan again to see which ones now have the value that you just specified, effectively narrowing your list. If there is more than one variable again then repeat this step until you only have one left. Once this is completed, simply read step 3.
There is two variables left and nothing I do helps, which one is the one I want?
Firstly, if you are doing an old-style game that has a health bar with current health and max health then the two variables are probably both of them. If this is the case then get something to hurt you and quickly distinguish between the two. Other than that explanation, I have nothing.
I can't find the variable I am looking for!
If this happens then a different scan type may be needed. You will learn more about this later on in the tutorial, but for now, try changing the scan type to either 2 bytes or 8 bytes. There is little chance of this succeeding but it's worth a try. Also, if the number goes into decimals (like the time) then you need to change the scan type to a "float". This will be explained more later.
The variable I want keeps changing and I can't scan it. What do I do to stop this?
Well, you can't exactly stop it, but you can work around it. Common examples of this is the time on games and the amount of enemies or players on a server. Once again, this is covered more thoroughly is a different step, but for now try these steps: First, change the first drop-down-box (the one that usually says "Exact Value") to "Unknown Initial Value". Now press "First Scan". You don't need to type in a value beforehand. Now, if the value is decreasing or increasing then select from the drop-down-box "Decreased Value" or "Increased Value" respectively. Every time it changes, press "Next Scan" until you come up with only one result. This should find the variable you are looking for.
Step 5: Step 2 (Cheat Engine tutorial)
Goal: To find and change the value of a variable.
How to win: The "Health" variable must be over 1000.
Obstacles: They don't give you the address.
1. If you kept the tutorial up from last time, then you would already be locked on to the tutorial, if not, select it from the process list.
2. Initiate a 4 byte, exact value scan for the health variable (which should have the value of 100 if you haven't changed it).
3. Change the health by selecting the "Hit Me" button and then scan for the next value.
4. Keep repeating this until you are left with one result; add it to your quick access place thingy...
5. Change the value of the variable (by double clicking its original value) and change it to anything >1000 (greater than 1000).
If done correctly, the "Next" button should become available, if not, start again.
CONGRATULATIONS ON COMPLETING STEP 2!
Step 6: Variety in scans
In this step I will attempt to educate the unaware on how to use different scan types.
Firstly, the "Unknown Initial Value" scan type. This scan, as the title implies, sets you up for the next scan to find an unknown value. This is very useful in changing health bars, XP bars and the in-game time. Because of these reasons, this scan is an invaluable tool.
To use it, select it from the drop down box under the value bar (you have to have a process selected beforehand). Now click "First Scan". It's that simple! From here you can change the scan type to a variety of different scans, all with individual purposes. These will be taught (or self-taught) later.
Because of the vast amount of scans available to you, you should be able to experiment with them until you find their true meaning and usefulness (although most of them are self explanatory).
ON TO THE NEXT CHEAT ENGINE TUTORIAL STEP
Step 7: Step 3 (Cheat Engine Tutorial)
This step is pretty straight forward. Find the health variable, change it. What's different is that you are not given the starting figure, making things a bit more interesting.
Firstly, clear your "quick access bar" and read the instructions. What they are telling you is that you must find the health variable and change it to something over 5000, and the health starts in between 0 and 500.
There are so many ways to do this, I will tell you the easiest. Try to find more complex ways if you want.
Firstly, switch to "Unknown Initial Value". This won't actually scan, but it will keep a mental note of everything's value. Now, change to "Decreased Value" but before you click next scan, press the "Hit me" button on the tutorial. This will make Cheat Engine scan for anything with a lower value than it previously had. Very useful for constantly changing variables.
Keep repeating that until there is one realistic value, then change it, as always. Voila, done.
The next step awaits.
Step 8: Floating Point numbers
Floating point numbers are whatever an integer is not. They contain decimals (other than 0).
An example of an integer: 4
An example of a floating point number: 4.5
Keep in mind, they do not need to be even or follow any other rules of the like.
Now, because I am not going to teach you about bitwise expressions and the nature of counting (that would be a good instructable...). I'm only going to say that they are different. If you know about binary and hexadecimal you may be able to guess why.
Now, because floating point numbers don't show up when you're scanning for bytes, what do you do? You switch it to "Float" of course.
Now, to be perfectly honest with you, I don't exactly know everything about "double" numbers. From what I can tell, they are like floats, but they're meant to have added security as most people won't think to scan for them. They were also supposed to be tidier? I don't really know.
Remember, if it has a decimal, it's probably a float.
Step 9: Step 4 (Cheat Engine Tutorial)
Flick through the instructions, my helping skills aren't always enough.
You have two values to find, "Health" and "Ammo".
Health is a floating point number
Ammo is a double number.
When hit, you lose a random amount of health (between what looks like 0.5-3)
When you shoot, you lose 0.5 ammo.
It's a choose your own adventure novel from now on, there is more than one way to do this.
You can do exact scan, unknown initial value, decreased value, etc...
This is exactly the same as the last couple of steps, but all you need to do is switch from 4 bytes to Float and Double respectively.