Stellaris

Stellaris

259 ratings
How to enable Achievements with ANY mod
By Chillsmeit and 1 collaborators
This Guide explains how to enable achievements(Ironman) with any mod, even those that modify the checksum.
11
7
7
3
2
2
2
   
Award
Favorite
Favorited
Unfavorite
Intro
You'll be able to use any mod you want, even those that say they're not Ironman compatible.
This way you can still earn achievements while playing the way you want.

I personally only use purely visual and UI mods, but some of them change the checksum...which is a bit annoying.

Backup:
First, go to your Stellaris directory and make a backup of the stellaris executable
I recomend saving it to another folder or just rename the extension to .old (make sure extensions filetypes are visible/enabled in Windows)

Programs you'll need:
Windows:
  • Microsoft Word
  • Notepad++ [notepad-plus-plus.org]
  • HxD[mh-nexus.de]
Linux:
  • Nano (It just works. Gedit and Notepadqq would crash/get unresponsive)
  • Okteta[apps.kde.org]

Automated method
A friend of mine @r0fld4nc3 managed to complete a project (on Github) that basically automates this guide.
The patcher does the same, finds the hex values and alters it in order to enable Ironman with mods.

Here's the patcher link Stellaris Patcher[github.com]

Currently it only supports the Windows version of Stellaris. Linux native version is planned.
If you need it for the Linux Proton version, use the patcher with Wine or Bottles
Any feedback and or issues are best adressed in the github project page in the issues tab.

Windows (Word Method)
First make sure Stellaris isn't running

Open HxD then go to File -> Open and choose the Stellaris.exe

CTRL+A (to select everything) and copy everything to a blank Word file.

Make sure you have the text cursor in the beginning of the document.
Then just do CTRL+F (find/search) and go to advanced find



Enable "Use wildcards"



In the search you can use this:
48 8B 12 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 85 C0

When you find it on word, copy that value



Go back to HxD (with the opened Stellaris.exe)

Search->Find->Hex-values-> Paste the value you just copied from Word and then click "Search All"

After you find the value, change the 85 C0 to 33 C0. Save it and replace the original executable.

Windows (Notepad++ Method)
Make sure Stellaris isn't running

Open HxD then go to File -> Open and choose the Stellaris.exe

CTRL+A (to select everything) and copy everything to a blank Notepad++ file.

Make sure you have the text cursor in the beginning of the document.
Then just do CTRL+F (search->find) and tick at the bottom "Regular Expression"

In the search you can use this and then "Find Next":
48 8B 12 .. .. .. .. .. .. .. .. .. .. .. .. .. .. 85 C0



When you find the value, copy it

Go back to HxD (with the opened Stellaris.exe)

Search->Find->Hex-values-> Paste the value you just copied from Word and then click "Search All"

After you find the value, change the 85 C0 to 33 C0. Save it and replace the original executable.

Linux (Native version)
First make sure Stellaris isn't running

Open Okteta, click "Open" and choose the stellaris executable.
CTRL+A (to select everything), RIGHT-CLICK and select "Copy As"->"Values". In the "Separation" box, remove any space there and then "Copy to Clipboard"



Open your Terminal and enter:
nano hex.txt

Paste your previously copied values to it (CTRL+SHIFT+V)
It will take some time, just wait around 30 secs max

After the values show up, do CTRL+W (Where Is) and ALT+R (Reg.exp.)
Paste the following and enter:
488B30......................................85DB



The value will be highlighted for a few seconds. Copy it.



Go back to Okteta with the stellaris executable opened, CTRL+F and paste the hex value



After you find the value, change the 85 DB to 31 DB. Save it and replace the original executable.

Linux (Proton version)
Since the Proton version is basically the Windows version with a compatibility layer, you can follow the Linux (Native version) steps but use this value instead:
488B12............................85C0

And change the 85 C0 to 33 C0

Explanation & Alternative Methods
If you can't find the value above, you can shorten the amount of ?? or .. you use on your expression
? or . represents one character, any character. So ?? or .. is two characters.

This value can vary depending on your memory allocation, so you can shorten or lengthen the amount of "??" or ".." depending on the program you use

Examples to try (Windows):
48 8B 12 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 85 C0
48 8B 12 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 85 C0
48 8B 12 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 85 C0

Examples to try (Linux):
488B30....................................85DB
488B30..................................85DB
488B30................................85DB

And so on, you get the gist

The Hex value you want to search for always begins with
48 8B 12 and always ends with 85 C0 Windows
48 8B 30 and always ends with 85 DB Linux

The more "complicated" alternative:
If this method ever gets outdated (it can happen due to the way it works) or somehow it just doesn't work for you, you can try and use this guide from class101

It's more time consuming imo and "complicated", especially if you aren't very tech-savvy.
But it's an excelent guide regardless and should be more future proof than what I posted here. (Unless Paradox manages to get some way around it, which I doubt).


AntiVirus Warnings
The original game executable is probably signed with a Digital Signature. This means that your AntiVirus will try and check this Digital Signature on its database to validate its checksum.
Basically, a checksum is a sequence of numbers and letters used to check data for errors and is calculated by the hex values/bytes. It gives a unique identifier ID to your program let's say.
But since you're altering the executable itself with hex editing, the checksum it'll produce will be different from the original exe, thus creating a false positive for antiviruses when they try to validate it.

If you CTD at launch, try adding the modified stellaris executable to the exceptions in your AntiVirus software or the patcher

167 Comments
Poltergeister 8 Jun @ 7:56am 
Having an issue where no matter which version of the patcher I use, it gets stuck searching for the game library. [INFO] Gathered: [other games] until it hits [INFO] Gathered: [], then it just stops functioning.
Democracy's Finest #89432473128  [author] 6 Jun @ 12:21pm 
@Witch ~ For saves that exist, they likely are missing the appropriate flags that state they are ironman/achievement compatible. I will soo hopefully get back to working on the promised button to also repair such saves. There's an older comment in this thread somewhere where I describe how to repair the saves manually.
Democracy's Finest #89432473128  [author] 6 Jun @ 12:20pm 
I've been having some conflicting reports on GitHub, so trying to get to the bottom of it. Maybe folks think it doesn't because of other symptoms, not that it's patched but that there's something else in play. I've released a few patches to try and address it, so let's see. I'm happy that it seems to be working,
JUMBI-ElisaEmma 6 Jun @ 3:00am 
Sobald man im Spiel ist, erscheint unten links die Version: Phoenix v4.0.* (**b)Yellow.
Ich habe es heute getestet – und es funktioniert!

As soon as you're in the game, the version appears at the bottom left: Phoenix v4.0.* (**b)Yellow.
I tested it today – and it works!
Witch ~ 6 Jun @ 2:28am 
I was gonna say it didnt but I just saw it doesnt work on saves that already exist
JUMBI-ElisaEmma 6 Jun @ 1:26am 
Yes @Witch ~
Witch ~ 6 Jun @ 1:04am 
so does the patcher work?
Democracy's Finest #89432473128  [author] 29 May @ 5:21am 
@Taurom @tehzipfile @JUMBI-ElisaEmma thank you for the valuable feedback! I'll be having a quick look today but it's good to know. Yes the fact that the modified text is yellow can lead to people thinking it's not working. Someone just submitted a fix for that I believe on GitHub and I am working on integrating their changes, so hopefully that will help.

Thank you so much for confirming it's still working. It's hard to really test without earning an actual achievement and going off of the text only.
JUMBI-ElisaEmma 28 May @ 10:58pm 
Yes, the verification number turns yellow as soon as you have made a change, and you can still earn achievements!
Version: Phoenix v4.0.14 (***b)Yellow

Windows 11 and Windows 10 should also work.
tehzipfile 28 May @ 11:16am 
Manual method seems to work in 4.0 (on Windows) The checksum number on the main menu is yellow and says it's modified but I just got an achievement.