Unexplored is an excellent game with an attentive developer and superb level generation.
But, not to worry, with a few minutes of work, it is possible to convince the game to disregard this specific error and let you continue your adventures.
- ILSpy, a program for exploring the general logic of executable files in specific format (which Unexplored also uses)
Download ILSpy_binaries_3.2.x.zip from GitHub and extract that archive somewhere.
(newest supported ILSpy version is indicated on Reflexil page and is currently 3.x)
- Reflexil, a program for making small changes to executable files in that same format
Download reflexil.for.ILSpy.<latest version>.bin.zip from GitHub and extract it to the same directory as ILSpy.
If all is well, upon opening ILSpy there should be a gear-shaped button for Reflexil on the toolbar:
Right-click Unexplored in Steam library, pick Local Files > Browse Local Files
Make a backup of your Unexplored executable (the one that has the game’s icon and all), just in case anything goes wrong.
Now, open ILSpy and either pick your Unexplored executable (after picking File>Open), or just drag-and-drop it onto the ILSpy window:
Once that is done, ILSpy window’s left pane should show something like “Unexplored (0.0.0.0)”:
Click [+] on the left of that to expand it, then expand “Unexplored.Core”, then expand “GameManager”, and finally click “LoadGame(string):int” inside of that. A volume of code appears on the right side:
This might look intimidating, but, don’t worry – you don’t need to make sense of most of this. What you do need is to press Ctrl+F, enter “return -3”, and see what’s the text on the line of code before that (highlighted for clarity here):
Now, click Reflexil’s “gear” button on the toolbar (shown in Setup). A panel appears on the bottom.
Here, you want to make it bigger, and find a line that says “ldstr” and then the text of error as you have seen it in the code:
As of writing this guide, it’s at line 273 (offset 882), so that’s a bit of scrolling to get there.
Then, you want to locate two lines a little below, saying “ldc.i4.s -3” and “ret” accordingly, right-click them, and pick “Replace with NOP”:
After you’ve done so, the view should look like this:
Now, you can scroll down a little further, find another pair of lines saying the same, and replace them with NOP too.
Most likely you wouldn’t need this, as it detects a more uncommon condition, but I’ll mention this here just in case.
As of writing the guide, these are at lines 338/339 and offsets 1065/1067:
Finally, you scroll the left pane all the way back up to Unexplored, right click it, pick Save As, and replace your Unexplored executable with the new version.
If everything was done correctly, you can now run the game again, try to load your save file, and, lo and behold – the game is now happy to do so, and hopefully nothing else is broken
If this is a singular occurrence for you (for me it took about 200 hours of playtime before running into this issue for the first time), you can now press “Save & Quit”, close the game, and replace the executable with the backup copy that you made earlier.
If this happens more often, you would keep your modified executable – just mind that you’d have to redo these steps when an update happens