Stellaris

Stellaris

276 个评价
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.
12
7
8
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 is working on improving a project that automates the process.
The patcher does the same, finds the hex values and replaces the bytes it in order to enable Achievements with mods.

You can find the Patcher project on the Stellaris Checksum Patcher GitHub[github.com].

It is important to use the Pre-Release 2.0.0 or higher[github.com] for the most recent versions of the game, as this version is capable of providing and fetching the most recent patches as the game is updated and the patching process eventually breaks.
It now (as of Pre-Release 2.0.0) supports Windows, Linux and MacOS versions of Stellaris.

If you find that the Patches are failing to apply on a new game version release, please be patient and wait a bit until the updated patterns become available, as that is a manual process that must be updated by the developer or community.

In case that you are able to find the byte pattern to patch, feel free to open an Issue and it will get tested and implemented as soon as possible.

Otherwise, check back at a later date if that's the case :)

Any feedback and/or issues are best addressed in the GitHub Issues page.

Windows (Word Method)
Note: Values possibly deprecated. Check Automated Patcher[github.com] or manual decompilation guide by class101


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)
Note: Values possibly deprecated. Check Automated Patcher[github.com] or manual decompilation guide by class101


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)
Note: Values possibly deprecated. Check Automated Patcher[github.com] or manual decompilation guide by class101


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)
Note: Values possibly deprecated. Check Automated Patcher[github.com] or manual decompilation guide by class101


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

187 条留言
Zhenya919 13 小时以前 
Thanks, @Democracy's Finest #89432473128

For those who are as stupid as I am and need the most detailed instructions:
1) download Python from the author's link (just a direct download link without having to search for it).
2) when installing Python, select the option with "add to PATH". It is very important .
3) next, you need to download the latest version of the patch and unpack it. A zip for Windows.
4) run the bat file. If you have a console for a long time after that, the name of the amount turned white at the bottom of the main menu of the game with mods, then you are successful. If not, then point 5.
5) launch the Console. Run the following commands:
5.1) cd "path to the folder with the bat file" (Quotation marks are required).
5,2) cd build-run.bat
6) After this procedure, I started the patcher, as when launching exe files on previous versions. There I clicked on the button with the random achievement icon and everything worked.
Democracy's Finest #89432473128  [作者] 10 月 26 日 下午 5:32 
Hi @Zhenya919

Please have a look at this issue here and see if the instructions in the README work for you: https://github.com/r0fld4nc3/Stellaris-Exe-Checksum-Patcher/issues/31

Otherwise, try downloading the latest Python release:
https://www.python.org/ftp/python/3.13.9/python-3.13.9-amd64.exe

When you install, ensure that you tick "ADD TO PATH" option or something similar, so that it is added to the internal paths of your windows and it can be discovered by the OS. This is likely why it failed.

After installing, it is probably good to restart the computer to ensure everything will be correctly set.

Then open the Terminal and "cd" into the directory where the build-run.bat file is: "cd C:/Users/<YOUR_USER>/Downloads/Stellaris-Checksum-Patcher/...etc.../" and run the build-run.bat from the terminal itself.
Zhenya919 10 月 26 日 下午 2:55 
My English is bad, so this is a Google translation. Do I understand correctly that you need to download a cheksum with a zip extension and run build-run.bat? If that's all you need to do (I have windows 10), then it doesn't work, literally nothing happens. Opens the console for a second, after which it disappears. I launch stellaris, start a new game (pre-created empire, purely for testing) and try to make an achievement for 1000 energy credits, but nothing happens.
Democracy's Finest #89432473128  [作者] 10 月 15 日 上午 11:11 
Hi @Myszherl

I am currently in the process of updating a lot of stuff for the 2.0 release and as such it is much easier for iteration and testing to not have to compile different platform binaries all the time. In the end the will be an executable file, but while I adjust only the source releases are available.

Please follow these steps here. Hopefully it's clear enough [github.com].

I just updated the readme on the 2.0 branch so it's clearer on what to do, thanks for reminding me I needed to do that.
Myszherl 10 月 14 日 下午 1:08 
Maybe I'm dumb (or this is secret knowledge), but I don't understand how to use the patch. That is, apparently, it has an interface, but I did not find the .exe. And there are no instructions on the github page. Can someone, for me as a complete idiot, give me a link to something like a manual, screenshot or video (if they exist)?
Democracy's Finest #89432473128  [作者] 10 月 12 日 上午 10:55 
Haha it's been there for a while now @Cyber Witch, for some years now, but I'm a bit more active on it again!

Currently going to 2.0.0 so a lot is still under heavy development, so forgive me for not yet putting out compiled builds yet! Soon!
Cyber Witch ~ 10 月 12 日 上午 7:19 
Yoooooo we have an automated patcher now?! Lets goooooo
Democracy's Finest #89432473128  [作者] 10 月 12 日 上午 7:10 
Absolutely fantastic news! Thank you for checking! I've made several changes that allow me or the community to much more easily contribute to new patches for each subsequent release in case it breaks. When a new version is released, it should now take way less time to roll the patches out :)
tilarium 10 月 11 日 上午 5:17 
Checked a couple of saves at random intervals and the achievements section is still holding strong. I'm about 90% confident in saying all is good now in 4.1.
Democracy's Finest #89432473128  [作者] 10 月 10 日 下午 1:21 
@tilarium Fantastic news :) Yes it should at least start with the achievements line enabled and that, I think - to my knowledge - should be a good indication that the patch worked.

I JUST released a new update, so be sure to check it out. Check latest comment on the Issue "Incompatible with 4.x.x" for more detailed information.