Half-Life 2

Half-Life 2

View Stats:
FENラック1312 Sep 27, 2014 @ 5:29pm
2
9
3
Using gamestate.txt to find your missing lambda locations
I've spent a good deal of time understanding how gamestate.txt stores data for this achievement. I haven't seen this information made available anywhere else online, so I thought I'd share just in case anyone could benefit from the knowledge.

gamestate.txt is a text file that stores your achievement data for Half-Life 2, and is located in Steam\SteamApps\common\Half-Life 2\hl2. It is still used even after the Steampipe update. There is a block of data for each achievement, up to 33 blocks. I cannot confirm that they are always in the same order, but only one block has the line "data" stored. This single line of code has all the information about your lambda locations.

The entry following "data" starts 0x, has a few zeroes, and then a few letters and numbers. This is hex, and the way we'll find your missing Lambda caches is by changing it to 1s and 0s. To make it easier to understand, I'll demonstrate by showing what the line looks like when you have them all:

0x00001FFFFFFFFFFF

If we turn this into binary, each F becomes four 1s. Add up all the 1s, and there are 45 - for 45 locations. So, the completed file, written out in binary, would look like:

0x0000111111111111111111111111111111111111111111111

If any of those 1s are 0s, it means you're missing the cache. And, thankfully, the caches are all stored in order - well, reverse order, but it's easy to figure out.

This is what the file looks like after you've gotten your first cache:

0x000000000000001

When you convert it to binary, that "1" turns into "0001." Here is a full conversion table, if you need it:

Hex | Binary
1 | 0001
2 | 0010
3 | 0011
4 | 0100
5 | 0101
6 | 0110
7 | 0111
8 | 1000
9 | 1001
A | 1010
B | 1011
C | 1100
D | 1101
E | 1110
F | 1111

"But can I hack the achievement??"

The achievement was bugged for me, so I ended up having to cheese it. While you cannot simply replace the line with the "complete" data (the game will tell you you have 45/45 locations, but the achievement will still be locked with no way to trigger it), it's still very easy. Change the line to "0x00001FFFFFFFFFFD", load the game and access the console (~). Type "map d1_canals_01" and hit enter. Play through the level normally, and within a minute you'll cross the train and enter the unfinished house. Turn left, access the cache, and enjoy your achievement. (This is the second cache - the achievement will not trigger on the first, it seems).

And that's all I know. If this helps even one person, it will be worth it for me. So, if it was helpful, please let me know.
Last edited by FENラック1312; Sep 27, 2014 @ 5:30pm
< >
Showing 76-90 of 142 comments
rjm27trekkie Jun 18, 2017 @ 4:02pm 
Thanks Dragonrider Fenrakk. I appreciate not having to figure this all out myself.

Also, if you are looking to easily pick out the index of the achievement location you are missing, try this python one-liner which gives you a representation of what locations you have found in the form [*index of achievement from 1 to 45, 1/0 true or false this location has been found].

>>> [[i+1, bin(0x00001FFFFFFFFFFD)[2::][44-i]] for i in range(44, -1, -1)]
[[45, '1'], [44, '1'], [43, '1'], [42, '1'], [41, '1'], [40, '1'], [39, '1'], [38, '1'], [37, '1'], [36, '1'], [35, '1'], [34, '1'], [33, '1'], [32, '1'], [31, '1'], [30, '1'], [29, '1'], [28, '1'], [27, '1'], [26, '1'], [25, '1'], [24, '1'], [23, '1'], [22, '1'], [21, '1'], [20, '1'], [19, '1'], [18, '1'], [17, '1'], [16, '1'], [15, '1'], [14, '1'], [13, '1'], [12, '1'], [11, '1'], [10, '1'], [9, '1'], [8, '1'], [7, '1'], [6, '1'], [5, '1'], [4, '1'], [3, '1'], [2, '0'], [1, '1']]
>>>

Note that the achievements are stored starting with the LSB so I must reverse the indexing. Just replace the hex value with yours and it will give you the relevant info.
FENラック1312 Jun 18, 2017 @ 7:43pm 
Originally posted by rjm27trekkie:
Thanks Dragonrider Fenrakk. I appreciate not having to figure this all out myself.

Also, if you are looking to easily pick out the index of the achievement location you are missing, try this python one-liner which gives you a representation of what locations you have found in the form [*index of achievement from 1 to 45, 1/0 true or false this location has been found].

>>> [[i+1, bin(0x00001FFFFFFFFFFD)[2::][44-i]] for i in range(44, -1, -1)]
[[45, '1'], [44, '1'], [43, '1'], [42, '1'], [41, '1'], [40, '1'], [39, '1'], [38, '1'], [37, '1'], [36, '1'], [35, '1'], [34, '1'], [33, '1'], [32, '1'], [31, '1'], [30, '1'], [29, '1'], [28, '1'], [27, '1'], [26, '1'], [25, '1'], [24, '1'], [23, '1'], [22, '1'], [21, '1'], [20, '1'], [19, '1'], [18, '1'], [17, '1'], [16, '1'], [15, '1'], [14, '1'], [13, '1'], [12, '1'], [11, '1'], [10, '1'], [9, '1'], [8, '1'], [7, '1'], [6, '1'], [5, '1'], [4, '1'], [3, '1'], [2, '0'], [1, '1']]
>>>

Note that the achievements are stored starting with the LSB so I must reverse the indexing. Just replace the hex value with yours and it will give you the relevant info.

Too bad I really dislike Python :P I had meant to do a simple Flash thing just so people could paste their code into a webpage and get the answer back easily, I just never got around to it (and it seems like it'd be rather redundant with Flash starting to be disabled in various browsers). And I know barely anything about HTML5.
sandoval Jul 21, 2017 @ 1:04pm 
"0x00001FFBEFFFFFFF" can anyone help me please
FENラック1312 Jul 21, 2017 @ 1:22pm 
29, 35
Panzar Jul 23, 2017 @ 5:31am 
"0x00001FFFFFFFFF7F" i get it to over 90? i must be reading something wrong :steamfacepalm:

EDIT: gotít it was 8
Last edited by Panzar; Jul 23, 2017 @ 5:57am
Phaenous Aug 27, 2017 @ 4:56am 
Originally posted by flattest-stamper:
"0x00001FFFFFFEFFFF" can someone help please?
EDIT: It's 28, but I go back to the 28th lambda and it's not picking it up, and I am 99% certain I already had this on my playthrough. Can anyone help?
Wow....I guess the only certain way would be to do a fresh playthrough.
FENラック1312 Aug 27, 2017 @ 8:09am 
There's a whole paragraph in the OP on what to do in this situation.

It's also 17, not 28.
grumpch Sep 15, 2017 @ 8:33pm 
I know this discussion is like three years old but thanks, you really saved me from having to replay the game again
FENラック1312 Sep 15, 2017 @ 11:55pm 
Don't worry, I'm still reading it! I appreciate the appreciation :)
Radiocaster Sep 16, 2017 @ 2:12pm 
Shouldnt this be a guide?
FENラック1312 Sep 16, 2017 @ 2:56pm 
It is! It has nowhere near as much attention as a guide. http://steamcommunity.com/sharedfiles/filedetails/?id=501156275
I have 44/45 for this achivement, this is my gamestate.txt code 0x00001FFFFFDFFFFF, i made the conversion and it says i'm missing the nº 22.
I don't know if the conversion is correct, I would appreciate it if you could answer me
FENラック1312 Apr 4, 2018 @ 10:34pm 
22 should be correct!
YuNoX Jun 26, 2018 @ 10:46am 
I love u so much!!! THANK U SO MUCH <333
CoreRelief Jun 29, 2018 @ 4:53am 
Read the date that this thread was made. Dont keep necroing this thread.
< >
Showing 76-90 of 142 comments
Per page: 1530 50

Date Posted: Sep 27, 2014 @ 5:29pm
Posts: 142