xNul / palworld-host-save-fix

Fixes the bug which forces a player to create a new character when they already have a save. Useful for migrating maps from co-op to dedicated servers and from one dedicated server to another.
MIT License
885 stars 69 forks source link

[Win dedicated -> Co-op] Save file too big for python parser #174

Open Michael-Borke opened 6 months ago

Michael-Borke commented 6 months ago

Trying to migrate from Windows dedicated server to co-op server, but getting an exception: Exception: Warning: EOF not reached

Find save folder here: 7F49053E4399E13C25760F97B7DD9650.zip

Full dump here: Converting C:/Users/Borke/Desktop/palworld/Pal/Saved/SaveGames/0/7F49053E4399E13C25760F97B7DD9650/Level.sav to JSON...Traceback (most recent call last): File "C:\Users\Borke\palworld-host-save-fix\fix_host_save.py", line 155, in main() File "C:\Users\Borke\palworld-host-save-fix\fix_host_save.py", line 76, in main level_json = sav_to_json(level_sav_path) File "C:\Users\Borke\palworld-host-save-fix\fix_host_save.py", line 130, in sav_to_json gvas_file = GvasFile.read( File "C:\Users\Borke\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\palworld_save_tools\gvas.py", line 131, in read gvas_file.properties = reader.properties_until_end() File "C:\Users\Borke\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\palworld_save_tools\archive.py", line 273, in properties_until_end properties[name] = self.property(type_name, size, f"{path}.{name}") File "C:\Users\Borke\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\palworld_save_tools\archive.py", line 286, in property value = self.struct(path) File "C:\Users\Borke\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\palworld_save_tools\archive.py", line 397, in struct value = self.struct_value(struct_type, path) File "C:\Users\Borke\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\palworld_save_tools\archive.py", line 424, in struct_value return self.properties_until_end(path) File "C:\Users\Borke\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\palworld_save_tools\archive.py", line 273, in properties_until_end properties[name] = self.property(type_name, size, f"{path}.{name}") File "C:\Users\Borke\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\palworld_save_tools\archive.py", line 359, in property value = self.prop_value(value_type, value_struct_type, value_path) File "C:\Users\Borke\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\palworld_save_tools\archive.py", line 381, in prop_value return self.struct_value(struct_type_name, path) File "C:\Users\Borke\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\palworld_save_tools\archive.py", line 424, in struct_value return self.properties_until_end(path) File "C:\Users\Borke\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\palworld_save_tools\archive.py", line 273, in properties_until_end properties[name] = self.property(type_name, size, f"{path}.{name}") File "C:\Users\Borke\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\palworld_save_tools\archive.py", line 283, in property value = self.custom_properties[path][0](self, type_name, size, path) File "C:\Users\Borke\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\palworld_save_tools\rawdata\item_container.py", line 13, in decode value["value"] = decode_bytes(reader, data_bytes) File "C:\Users\Borke\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\palworld_save_tools\rawdata\item_container.py", line 30, in decode_bytes raise Exception("Warning: EOF not reached") Exception: Warning: EOF not reached

moji-dev commented 5 months ago

had the exact same issue after the update

Phantom139 commented 5 months ago

This is not a file-size related issue. It is a version compatibility issue with v.0.2.0.6 / v.0.2.1.0. Try upgrading your palworld-save-tools to v.0.22.0 (Re: https://github.com/cheahjs/palworld-save-tools/issues/167)