We need more information, like your operating system and the build version of the game you’re running.
Did you update the game between your last play and the error?
Do you run it with the launcher?
Did it end the game in a weird way the last time you could play normally (crash while saving, power outage, …)?
While it probably does not help to fix your save, it would be nice to know if you’re using any mods. This may help to find the error that caused the save corruption in the first place and it can be fixed before others have to suffer from it too.
If you’re using the launcher, did it create any backups?
If not, depending on your operating system and -settings, it might has made a backup for you:
Then about…
Yes, but I doubt it would be of any use, as it would try to read the corrupt region file and just crash again.
Edit: I had to check myself how you can extract the coordinates if you want to give it a try as it isn’t that straight forward as one would hope:
Step by step guide to get the coordinates
- Open your world folder in the save game folder, in your case probably
/save/you keep stuff/
. - Now open the
#[gibberish].sav
file related to your character using a text editor. The “[gibberish]” is actually your ingame characters name encoded with base64 - you can decode it by copy-pasting the filename into a decoder of your choise (example site). - There are a few variables important for this:
"levx"
,"levy"
,"levz"
,"om_x"
and"om_y"
. - If you only want an approximation (about 1 overmap tile away from where your character actually is), choose “Teleport - long range” in the debug menu and move the cursor to the following coordinates (in red, on the bottom right side of the map menu): “LEVEL [value of
levz
], [value ofom_x
]‘[half of thelevx
value plus 2], [value ofom_y
]’[half of thelevy
value plus 2]”. If you switch overmap while adding the “plus 2”, let it happen. -
- For example: You got the following values:
"levx": 220
,"levy": 357
,"levz": 0
,"om_x":0
,"om_y":-1
. This results in the overmap coordinates: “LEVEL 0, 0’112, -1’180.5” (which will turn into “LEVEL 0, 0’112, 0’1” when you move your cursor).
- For example: You got the following values:
- If you want to exactly go to the place you were, you’ll also need to grab the
"posx"
and"posy"
values of the"player"
. Best search the file for THIEF_MODE, as this variable is close by. - Now halve the
levx
andlevy
values, round it down if necessary. - Take the
posx
andposy
values, adding “12” to it if you’ve rounded down one of the results from before (if you’ve rounded down fromlevx
, add 12 toposx
and/or if you’ve rounded down fromlevy
, add toposy
). Divide them (with remainder) by 24. - Add the results to the ones you’ve got from halving the “lev” values.
- These are now the coordinates you’re looking for, where
om_x
andom_y
are your overmap coordinates, thelevz
is the Z-Level and the results you’ve gotten are the overmap tile coordinates. The remainder is the actual tile your character stands on, counted from the top left.