Open deafdudecomputers opened 2 months ago
AND Exception: Unknown type: ByteProperty (.SaveParameter.Talent_HP)
TestSavev0.3.7.zip Thought I should attach my updated save from my server after updating to v0.3.7 just in case to help you debug and finding the potential fix.
Thanks to Choi-Jungwoo above, the tool has a temporary solution.
Both archive.py and item_container_slots.py has been updated from v0.23.1 version of tool.
I've compared values between IV stats + character levels and found the original values for the fields are stored in the upper 8 bits of the uint16, e.g.:
512 -> 2
4608 -> 18
5120 -> 20
7168 -> 28
9216 -> 36
(New vals on left, original on right, right values are the same as left >> 8
)
(Less like uint16, more like uint8 (value) and another uint8 (padding?))
unknown_str
always seems to be "None" for my sample
Thanks to Choi-Jungwoo above, the tool has a temporary solution.
Both archive.py and item_container_slots.py has been updated from v0.23.1 version of tool.
Are you saying that the code in that .zip file can properly convert the Level.sav file to JSON?
Thanks to Choi-Jungwoo above, the tool has a temporary solution. palworld_save_tools.zip Both archive.py and item_container_slots.py has been updated from v0.23.1 version of tool.
Are you saying that the code in that .zip file can properly convert the Level.sav file to JSON?
As far as I am concerned, and on multiple saves, yes - it should.
I also used it for converting from local to dedicated server, and via versa, seems to be working without any issues. As far as I know.
The only issue I can see, is if we try to use this version of tool with older saves that aren't updated on/after v0.3.7 patch, it'll error out. Besides that, the saves on/after v0.3.7 patch will work as intended.
Checking if Python is installed as python3
INFO: Could not find files for the given pattern(s).
Checking if Python is installed as python
C:\Users\Administrator\AppData\Local\Programs\Python\Python312\python.exe
Found Python at python
Python version:
Python 3.12.6
Converting C:\TCAFiles\Users\bobasaurs\14\Pal\Saved\SaveGames\0\B378F4FE4EFAF82D90BE9399231CD6A0\Level.sav to JSON, saving to C:\TCAFiles\Users\bobasaurs\14\Pal\Saved\SaveGames\0\B378F4FE4EFAF82D90BE9399231CD6A0\Level.sav.json
Decompressing sav file
Loading GVAS file
Traceback (most recent call last):
File "C:\Users\Administrator\Downloads\palworld-save-tools-windows-v0.23.1\convert.py", line 164, in
fresh world save today gives this error ?
Thanks to Choi-Jungwoo above, the tool has a temporary solution. palworld_save_tools.zip Both archive.py and item_container_slots.py has been updated from v0.23.1 version of tool.
Are you saying that the code in that .zip file can properly convert the Level.sav file to JSON?
As far as I am concerned, and on multiple saves, yes - it should.
I also used it for converting from local to dedicated server, and via versa, seems to be working without any issues. As far as I know.
Would you mind sharing an example of the command syntax you're using? I cant seem to get it to work no matter what.
Thanks to Choi-Jungwoo above, the tool has a temporary solution. palworld_save_tools.zip Both archive.py and item_container_slots.py has been updated from v0.23.1 version of tool.
Are you saying that the code in that .zip file can properly convert the Level.sav file to JSON?
As far as I am concerned, and on multiple saves, yes - it should. I also used it for converting from local to dedicated server, and via versa, seems to be working without any issues. As far as I know.
Would you mind sharing an example of the command syntax you're using? I cant seem to get it to work no matter what.
I use my own script batch to launch convert.py. I have a repo of it if you want to check.
Basically, it's just "python convert.py Level.sav" for me.
Thanks to Choi-Jungwoo above, the tool has a temporary solution. palworld_save_tools.zip Both archive.py and item_container_slots.py has been updated from v0.23.1 version of tool.
Are you saying that the code in that .zip file can properly convert the Level.sav file to JSON?
As far as I am concerned, and on multiple saves, yes - it should. I also used it for converting from local to dedicated server, and via versa, seems to be working without any issues. As far as I know.
Would you mind sharing an example of the command syntax you're using? I cant seem to get it to work no matter what.
I use my own script batch to launch convert.py. I have a repo of it if you want to check.
Basically, it's just "python convert.py Level.sav" for me.
Yes, please share your repo. Thanks!
https://github.com/deafdudecomputers/PalWorldSaveTools This is my repo.
https://github.com/deafdudecomputers/PalWorldSaveTools This is my repo.
Hilarious! Your repo was the one I actually used for a long while now. I only found this one after the update broke your tool. I love your work, thanks for doing it.
Nice to hear that, lol. Glad you like it. :)
Thanks to Choi-Jungwoo above, the tool has a temporary solution.
Both archive.py and item_container_slots.py has been updated from v0.23.1 version of tool.
THANKS SO MUCH! I needed this to move my server from windows to linux the GUIDs are fucked and the new save format is ass and doesnt convert without this patched version
Traceback (most recent call last): File "C:\Users\Administrator\Desktop\PalworldSaveToolsMaster\PalworldSaveTools.v0.7.3\convert.py", line 145, in
main()
File "C:\Users\Administrator\Desktop\PalworldSaveToolsMaster\PalworldSaveTools.v0.7.3\convert.py", line 65, in main
convert_sav_to_json(
File "C:\Users\Administrator\Desktop\PalworldSaveToolsMaster\PalworldSaveTools.v0.7.3\convert.py", line 105, in convert_sav_to_json
gvas_file = GvasFile.read(
^^^^^^^^^^^^^^
File "C:\Users\Administrator\Desktop\PalworldSaveToolsMaster\PalworldSaveTools.v0.7.3\palworld_save_tools\gvas.py", line 131, in read
gvas_file.properties = reader.properties_until_end()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Desktop\PalworldSaveToolsMaster\PalworldSaveTools.v0.7.3\palworld_save_tools\archive.py", line 386, in properties_until_end
properties[name] = self.property(type_name, size, f"{path}.{name}")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Desktop\PalworldSaveToolsMaster\PalworldSaveTools.v0.7.3\palworld_save_tools\archive.py", line 399, in property
value = self.struct(path)
^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Desktop\PalworldSaveToolsMaster\PalworldSaveTools.v0.7.3\palworld_save_tools\archive.py", line 515, in struct
value = self.struct_value(struct_type, path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Desktop\PalworldSaveToolsMaster\PalworldSaveTools.v0.7.3\palworld_save_tools\archive.py", line 542, in struct_value
return self.properties_until_end(path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Desktop\PalworldSaveToolsMaster\PalworldSaveTools.v0.7.3\palworld_save_tools\archive.py", line 386, in properties_until_end
properties[name] = self.property(type_name, size, f"{path}.{name}")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Desktop\PalworldSaveToolsMaster\PalworldSaveTools.v0.7.3\palworld_save_tools\archive.py", line 477, in property
value = self.prop_value(value_type, value_struct_type, value_path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Desktop\PalworldSaveToolsMaster\PalworldSaveTools.v0.7.3\palworld_save_tools\archive.py", line 499, in prop_value
return self.struct_value(struct_type_name, path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Desktop\PalworldSaveToolsMaster\PalworldSaveTools.v0.7.3\palworld_save_tools\archive.py", line 542, in struct_value
return self.properties_until_end(path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Desktop\PalworldSaveToolsMaster\PalworldSaveTools.v0.7.3\palworld_save_tools\archive.py", line 386, in properties_until_end
properties[name] = self.property(type_name, size, f"{path}.{name}")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Desktop\PalworldSaveToolsMaster\PalworldSaveTools.v0.7.3\palworld_save_tools\archive.py", line 396, in property
value = self.custom_properties[path][0](self, type_name, size, path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Desktop\PalworldSaveToolsMaster\PalworldSaveTools.v0.7.3\palworld_save_tools\rawdata\character.py", line 13, in decode
value["value"] = decode_bytes(reader, char_bytes)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Desktop\PalworldSaveToolsMaster\PalworldSaveTools.v0.7.3\palworld_save_tools\rawdata\character.py", line 22, in decode_bytes
"object": reader.properties_until_end(),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Desktop\PalworldSaveToolsMaster\PalworldSaveTools.v0.7.3\palworld_save_tools\archive.py", line 386, in properties_until_end
properties[name] = self.property(type_name, size, f"{path}.{name}")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Desktop\PalworldSaveToolsMaster\PalworldSaveTools.v0.7.3\palworld_save_tools\archive.py", line 399, in property
value = self.struct(path)
^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Desktop\PalworldSaveToolsMaster\PalworldSaveTools.v0.7.3\palworld_save_tools\archive.py", line 515, in struct
value = self.struct_value(struct_type, path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Desktop\PalworldSaveToolsMaster\PalworldSaveTools.v0.7.3\palworld_save_tools\archive.py", line 542, in struct_value
return self.properties_until_end(path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Desktop\PalworldSaveToolsMaster\PalworldSaveTools.v0.7.3\palworld_save_tools\archive.py", line 386, in properties_until_end
properties[name] = self.property(type_name, size, f"{path}.{name}")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Desktop\PalworldSaveToolsMaster\PalworldSaveTools.v0.7.3\palworld_save_tools\archive.py", line 493, in property
raise Exception(f"Unknown type: {type_name} ({path})")
Exception: Unknown type: ByteProperty (.SaveParameter.Rank)
Gives me an error after getting the Level.sav from updated server after the update v0.3.7. Any suggestions/inputs on how to fix this?