document updated 15 years ago, on Jan 20, 2009
short version
to open up all minigames, use regedit.exe to update these keys under HKEY_CURRENT_USER\Software\Game Maker\Scores\834524\
room | to change using regedit | to change using debugger
|
---|
Sun Room
| Rank1 = FNDPGLOAOBOCODOEOFOGOHOIOJOKOLOMDKDNDNDFEK
| global.money = 200000
|
Moon Room
| Rank2 = JNBHGCOAOBOCODOEOFOGOHOIOJOKOLOMEBDHDMDF
| (see green section below)
|
Stars Room
| Rank3 = BFKOEJOAOBOCODOEOFOGOHOIOJOKOLOMDIDHDLDMEE
| global.kills = 120
|
Changing Room
| Rank4 = GFGLDKOAOBOCODOEOFOGOHOIOJOKOLOMEACPEFDFEE
| global.damsels = 8
|
to unlock all three shortcuts, change these registry entries:
to change using regedit | to change using debugger
|
---|
Rank8 = FNGCPNOAOBOCODOEOFOGOHOIOJOKOLOMEBEDDNDODGDOCE | global.tunnel1=0
|
Rank9 = BNCAOOOAOBOCODOEOFOGOHOIOJOKOLOMEBEDDNDODGDOCF | global.tunnel2=0
|
full details
- the data encoding is just the generic format that's used by Game Maker's highscore functions, Spelunky doesn't try to encrypt or obfuscate the entries (other than the addition offsets)
- the keys correspond to:
- Rank1 = money + 9000000
- Rank2 = time + 8000000
- Rank3 = kills + 7000000
- Rank4 = saves + 6000000
- Rank5 = plays + 5000000
- Rank6 = wins + 4000000
- Rank7 = deaths + 3000000
- Rank8 = tunnel1 + 2000000 // amount left to pay for the first shortcut (if tunnel2≠0), or the third shortcut (if tunnel2==0)
- Rank9 = tunnel2 + 1000000 // amount left to pay for the second shortcut
- Rank10 = minigame_highscores // stars is the lowest two decimal digits, moon the next higher two, and sun the upper two
making any highscore change
Unfortunately, some items aren't stored in global variables, but are instead stored just in the highscores. And highscores can't be individually updated, you have to update them ALL to update one. For example, to enable the Moon Room:
// to run this, save it as 'highscore.txt' in the same folder as Debug Enabler.exe, and then execute:
// execute_file("highscore.txt")
// ==== read in all highscores ====
tMoney = highscore_value(1) - 9000000;
tTime = highscore_value(2) - 8000000;
tKills = highscore_value(3) - 7000000;
tSaves = highscore_value(4) - 6000000;
tPlays = highscore_value(5) - 5000000;
tWins = highscore_value(6) - 4000000;
tDeaths = highscore_value(7) - 3000000;
tTunnel1 = highscore_value(8) - 2000000;
tTunnel2 = highscore_value(9) - 1000000;
tMiniAll = highscore_value(10)
// ==== modify the desired highscore(s) ====
// PUT YOUR MODIFICATIONS HERE
tTime = 600000;
tWins = 1;
// ==== write out all highscores ====
highscore_clear();
highscore_add("MONEY", tMoney + 9000000);
highscore_add("TIME", tTime + 8000000);
highscore_add("KILLS", tKills + 7000000);
highscore_add("SAVES", tSaves + 6000000);
highscore_add("PLAYS", tPlays + 5000000);
highscore_add("WINS", tWins + 4000000);
highscore_add("DEATHS", tDeaths + 3000000);
highscore_add("TUNNEL1", tTunnel1 + 2000000);
highscore_add("TUNNEL2", tTunnel2 + 1000000);
highscore_add("MINIGAMES", tMiniAll);