Overview
i.e. How to change the amount of scrap you have to anything you want by using a memory editing program.
Attention. Warning.
What this guides shows you is memory editing as a very primative way of cheating. This technique can be used for any game. If you try memory editing in any multiplayer game that has any basic anticheat protection, you will be easily detected and caught. Read comments below.
So why did I write this guide? FTL is a singleplayer game. By cheating in FTL, the only person you are ruining the fun for is yourself. Please use your imagination and try to set yourself a challenge with your new memory editing skills.
eg.
- start with 0 scrap
- subtract 5 scrap every sector
- “convert” all drones you recieve into missiles”
- etc.
What is memory editing?
Memory editing is the altering of values stored in the memory that a program is using. Memory editing can be used for:
- identifying bugs and fixing bugs
- cheating, particularly in multiplayer games
- breaking weak DRM
We are going to use memory editing to change the amount of scrap you have. The technique i will show you works just as easily with any other game value in FTL and many other singleplayer games: eg. the amount of missiles or drones you have. You could say this is cheating, I say we are memory editing to add a function to the game that should have been there, ie, cheatmode 🙂 Ok, this is cheating, but this is harmless cheating.
Tools
You can use any memory editing program, but I will be using Artmoney as it is suited to what we are doing (altering an in game value). You can find Artmoney at www.artmoney.ru
Cheat Engine has improved a lot since this guide was written (and it doesn’t force adware on your computer anymore). I now recommend you use Cheat Engine instead of Artmoney. Whichever program you use it is the same process, except with a different interface. (tip: choose “4 byte”).
Memory Editing FTL step-by-step
Open up a game of FTL and you will have something like this:
Open up Artmoney (or your choice memory editing tool). First thing we do is choose which program’s memory we will be working on. In this case the program we want is FTL
Identify the value which you want to change. I have chosen scrap which is currently at 30. Search for this value in Artmoney:
and here are the results of the search:
Now we need to filter the over 100,000 results! This is far too many results for us to check.
So what we are going to do next is filter the results by:
- 1. changing the value we searched for in game / upgrade a ship system
- 2. see which of our results change to the new value / using the filter function in Artmoney
- 3. test to see which of the remaining results work, … And change back anything that doesn’t work / which value do you need to change to get the value you want in game.
- 4. have fun!
I then upgraded the engines for 15 scrap. The new value of my scrap in game is 15, this is what I am now looking for in the memory by filtering.
Only four results now, this makes things much easier to test. I double click on the 4byte entries and Artmoney adds them to the next pane. I can now edit the 4byte values in the right hand pane.
N.B. I chose the 4byte entries because of general intuition. I expected the value to be a few bytes:
Successs it worked! The amount In game has changed to what i have chosen.
If it doesn’t work, then it is the other 4byte value which you need to change. What you may see when you choose the wrong 4byte entry is a subtraction of the value you entered from the value you currently have/had:
The search results are still “messy”
This section is not relevant for scrap in FTL.
Try and try again, ok really, you just need to do some more filtering. Here are some pointers to cut out the noise:
- filter the results with the same value again;
- change the value again with another upgrade and then search for the new value
- just ignore anything that isn’t 4 bytes
You could be dealing with an in game value that is more complicated than dealing with just one hex value.
It is probably likely that you haven’t actually found “it”. You could always try a shotgun approach – changing all the values that seem to link to the value you want to change (change to the value you want) and see which one doesn’t change back.
The value has changed its location in the memory (You probably loaded a new level in the game). The old reference won’t work anymore because it is linking to some other random value.