jaszhix / NoMansConnect

A location manager for No Man's Sky.
GNU General Public License v3.0
99 stars 11 forks source link

Teleporting to some locations creates unloadable save #7

Closed CrankyCat closed 7 years ago

CrankyCat commented 7 years ago

I tried using the "teleport" option, with my saves backed up, and NMS crashed to the desktop while loading the game. I tried this while the NMS was not running and mfstorage3.hg showed a timestamp update. Instead of copying my save from backup I used teleport in NMC again to the location I was originally at and the game loaded with my game starting where I left off.

I tried teleporting to my oldest location 041B:0085:02FC:0083 -996:-6:-1283:0:131:0 in Euclid if you want to see if it's that specific location which is the issue. I was currently on a planet when I tried the teleport.

My active save file was C:\Users\bill\AppData\Roaming\HelloGames\NMS\st_76561198064585647\storage3.hg

Faulting application name: NMS.exe, version: 0.1.0.0, time stamp: 0x58d42a08 Faulting module name: nvoglv64.DLL, version: 22.21.13.8165, time stamp: 0x58df025a Exception code: 0x40000015 Fault offset: 0x0000000000fada8e Faulting process id: 0x1c8c Faulting application start time: 0x01d2bbd8eae05c83 Faulting application path: C:\Program Files (x86)\Steam\steamapps\common\No Man's Sky\Binaries\NMS.exe Faulting module path: C:\Windows\system32\nvoglv64.DLL Report Id: 3059b8e0-27cc-11e7-8ba7-005056c00008

Do you want me to reproduce this and send you any information? I'm not sure what would be helpful.

jaszhix commented 7 years ago

Sure, any info you find could be useful. If you can email me your save data (jaszhix@gmail.com) including storage3.hg and mf_storage3.hg along with your NoMansConnect/LocalStorage data zipped up it can help me reproduce it quicker. Also, you can try (after backing up those files), try delete mf_storage3 and storage_3.hg and the game will load the next oldest slot. If your other slots are not causing freezing that may be the best short term fix.

CrankyCat commented 7 years ago

It isn't crashing currently. Perhaps it was due to my original location.

A couple of things to note so far.

  1. If my save point is while I am on a freighter then teleporting there puts me and my ship in space but without me being in my ship. If I quickly use my jetpack I can reach my ship before drifting away too far. :-) I think if I call the freighter to a new location and land on it then that gets saved with the "station" icon but won't be there if you teleport to it. I usually navigate to a point near the station and call my freighter to land on it so that's why many of my initial system locations will actually be on a freighter and not something anyone should teleport to unless they have good reflexes. :-)

Edit: Perhaps you can find the FreighterUniverseAddress and not save a new location if it matches the current player location?

  1. Decimal numbers are replaced with integers in the JSON after teleporting. That may be the fault of NMSSave itself though. It still works ok as far as I can tell but it makes the file have more differences and it won't be the same size.
jaszhix commented 7 years ago

Perhaps you can find the FreighterUniverseAddress and not save a new location if it matches the current player location?

Good idea.

Decimal numbers are replaced with integers in the JSON after teleporting.

I can look into it. Which properties in the save file do this?

CrankyCat commented 7 years ago

It looks like all DamageFactor properties under Inventory.Slots[] , the GravePosition array, all the zero precision value Denominator and FloatValue properties under Stats.Stats[] and all of the StoredInteractions.Interactions[].Value properties. I think it’s in general a string to numeric format string where 99999.0 will be set to just 99999 for example. It doesn’t seem to lose value. I doubt this is a real problem unless someone thinks there’s an issue with their file shrinking or having lots of differences.

I use Beyond Compare https://www.scootersoftware.com/ to compare the before and after, for example.

From: Jason Hicks [mailto:notifications@github.com] Sent: Monday, April 24, 2017 1:54 PM To: jaszhix/NoMansConnect NoMansConnect@noreply.github.com Cc: Cranky Cat billf@xmission.com; Author author@noreply.github.com Subject: Re: [jaszhix/NoMansConnect] Teleporting to some locations creates unloadable save (#7)

Perhaps you can find the FreighterUniverseAddress and not save a new location if it matches the current player location?

Good idea.

Decimal numbers are replaced with integers in the JSON after teleporting.

I can look into it. Which properties in the save file do this?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/jaszhix/NoMansConnect/issues/7#issuecomment-296803938 , or mute the thread https://github.com/notifications/unsubscribe-auth/Aait71Aeytbn4bIxXYEqTQHCZDp2pJRWks5rzP3LgaJpZM4NFbhE . https://github.com/notifications/beacon/Aait79khHJ9Ihz2SS7h5_hl5hIq971qCks5rzP3LgaJpZM4NFbhE.gif

jaszhix commented 7 years ago

Yeah, it could be nmssavetool causing that. NMC doesn't touch the stats objects. I've diffed save versions between saves, and just one save in-game can flip a lot of values around. I only touch the values I need to because there's a lot of things that could break the game if handled improperly.

CrankyCat commented 7 years ago

I've been teleporting all over the place for testing and haven't had another crash on reloading so far.