Servers shutting down is sadly nothing new in today’s “always-on”-environment. Players can basically call themselves lucky if they can at least continue playing the single-player portion of the game with hopefully only a minimal impact to the overall experience. But there are devs that actually care and don’t just press the off-switch. The current example being HeroCraft with their surprisingly fun – at least on PC where most of the Free-to-Play-elements from the mobile release were not present – turn-based strategy/card collecting game hybrid Warhammer 40,000: Space Wolf (2014-2021; iOS, Android, PC, PS4, NSWI, XONE). They actually removed all always-online-requirements prior to shutting down the server on May 16th 2022. Very nice of them.
Sadly, it’s not all good news since one big factor of the game is getting new cards for your decks. And one important way to get new cards besides grinding the missions were the free promo codes the devs handed out each Friday. In the first version of the offline patch, they just removed the online functionality so you were still able to use the “Redeem Promo Code” button to at least get a set of default stuff every time (no matter what code you entered) but with subsequent versions on the road to shutdown they deactivated the button and as such any additional way for you to get cards. Luckily with the game going offline, the door was finally open for modders to have a crack at the title.
All accolades for the following information go out to Steam User dv and their guide on the topic. The reason why I’m reproducing it here is that while the guide in theory contains all information you need to make the necessary changes, it’s not that easy to understand for everyone. I had a hard time myself until I finally found out the most important tip. So, what follows is a step-by-step guide on how to change Warhammer 40,000: Space Wolf in such a way that you can get any card you want using the “Redeem Promo Code”-button.
To make the necessary changes you need to have three things prepared:
- A Hex-Editor (remember those?). I recommend HxD since it’s free and lightweight. That’s the one you’ll see in all the screenshots. But any basic Hex-Editor should suffice.
- Warhammer 40,000: Space Wolf installed somewhere on your computer. Seems obvious, I know but I just want to make sure .
- A number system converter that allows the conversion from and to decimal/hexadecimal in different byte-sizes. I’m sure a programmer can do the math in their head but I prefer to rely on an online converter like this one from Tobias Stamm. The page is technically in German but it’s clear enough to understand without any knowledge of the language.
- The Warhammer 40,000: Space Wolf Card ID List which contains of all the cards in the game with their internal id.
Once you have everything ready, we can actually start the process:
Step 1: Make the button re-appear
In order to get the cards we want, we are going to use the “Promo code”-system and as such we need to make the button available again. For this we open the file level3 in our Hex-Editor which is located in your steam folder\steamapps\common\Warhammer 40,000 Space Wolf\SpaceWolf_Data. You can find this location also by using the “Manage/Browse local files”-option in Steam.
Once you have it open, use the “Go to”-search option to jump to Offset F02EE.
If the button is not visible, the value should be 00. Change it to 01 and save the file. When you start up the game again, the promo button is back again and usable.
Don’t worry about breaking anything at this point. If the game crashes on startup because you changed the wrong value, just use “Verify integrity of game files…” in Steam (Properties of the game/Local Files) and it will overwrite your changes.
Step 2: Find the location of the cards
Now that we have once again access to the button, we want to change the cards you receive when entering a code. It doesn’t matter which code you enter because the game only checks if it has at least 8 characters. As long as you enter something long enough, you’ll receive the items.
The content of the promo code packages is stored in the file Assembly-CSharp.dll. You can find this file in the folder your steam folder\steamapps\common\Warhammer 40,000 Space Wolf\SpaceWolf_Data\Managed.
Open the file up in your Hex-Editor and jump to Offset 1C3508.
This is where the information for the first card begins. It is four bytes long (=8 characters in the editor). So the 2nd cards then follows at 1C350C and the 3rd at 1C3510. The last byte of the 3rd card is 1C3513.
If you have a fresh installation the offset should read E0 15 00 00 EA 15 00 00 F4 15 00 00 which is the default card content of the promo pack.
Step 3: Convert the card id
Now we need to convert the card ids to something we can actually write into the file. That’s where that online converter comes in. You also need to remember that most of the cards come in different flavors. STUN for example can be upgraded to level 4. Young King’s Blade even to level 6. That’s why in the card id-list you’ll find several entries for the same card. In my experience: The highest id of a card is the version with the highest level. To use Young King’s Blade as an example: Level 1 has the id 107400 while level 6 has the id 107405.
Once you’ve identified the cards you want, we need to convert the id from decimal to 4-byte hexadecimal. In case of the linked converter, you input the id e.g. 107405 in the field Dec. Then you press Enter and you’ll see tons of results. The one we’re interested in, is in the row 32 of the column Hex of the table Unsigned. Which in our example is 00 01 a3 8d.
Step 4: Input the card id
We now have converted the card id to something useful, time to write it into the file. And here’s where the stumbling block I was talking about in the intro comes in: You need to reverse the result (!) from the converter. In our case the value for the file is actually 8D A3 01 00 and NOT 00 01 A3 8D. So the last byte from the converter is the first byte in the file.
Replace the information starting from 1C2F08 with these numbers. If you have another card you want or if you want multiples of the same card: Do the same for the next two cards in the promo pack: Convert the id, input them at one of the offsets (1C3508 / 1C350C / 1C3510) and then save the file.
Sadly, there is currently no way to get more than three cards from a promo pack at the same time. If you want several different cards, you need to change the file, get them in the game and then change the file again.
Step 5: Profit!
Once you’ve saved your changes to Assembly-CSharp.dll, you can boot up the game. Enter a promo code and if you did everything correctly, you should receive your desired cards. Yes, it’s that easy!
If you entered the wrong values however (=card ids that don’t exist), the promo pack will show up empty and your card library will be broken. Verifying your game files will not fix it! Thankfully you can repair it using a modified Assembly-CSharp.dll-file by dv. It basically forces the game to recheck your library and clear out all illegal cards. You can find it at the bottom of their guide. Just overwrite your file with it, start up the game, press the promo button and all is fine once again.
Changing the other values
You can also change the amount of stuff (booster packs, parts, skill points, and so on) you receive from a promo pack but I see no point in doing that. Forging cards and opening booster packs isn’t really that much fun for me. So I’ll just modify the pack to give me the cards I actually want. That’s why I won’t go into further details about how to change these values.
I hope this guide was helpful to the few people still playing the game. And no, I don’t consider it cheating. Like I said: Getting those cards the “correct” way is teadious and boring and having the best cards doesn’t make you automatically win each mission. You still need to make a cohesive deck with them and make the right tactical decisions. So yes, you can and will still fail many times depending on the challenge even with the best cards in the game . And PVP has been disabled, so now online advantage as well.