Stellaris
265 人が評価
How to enable Achievements with ANY mod
作者: Chillsmeit と 1 のコラボレーション
This Guide explains how to enable achievements(Ironman) with any mod, even those that modify the checksum.
11
7
7
3
2
2
2
   
アワード
お気に入り
お気に入り
お気に入りから削除
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

170 件のコメント
Slieath 8月16日 10時20分 
Can confirm this no longer works
Adalbert 8月15日 11時28分 
Does this work for other Paradox games?
Aaron0128 8月5日 8時38分 
i wonder if its still working. i tried it with mods on but i'm unable to get any achievements
Poltergeister 6月8日 7時56分 
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  [作成者] 6月6日 12時21分 
@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  [作成者] 6月6日 12時20分 
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月6日 3時00分 
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!
Cyber Witch ~ 6月6日 2時28分 
I was gonna say it didnt but I just saw it doesnt work on saves that already exist
JUMBI-ElisaEmma 6月6日 1時26分 
Yes @Witch ~
Cyber Witch ~ 6月6日 1時04分 
so does the patcher work?