KeyError: "ID" and KeyError: bx00x00x00x00.....
Having a problem with transfering characters from 1.2.0 to updated version.
found instance Found Character Parameter Map Read 108 pals from source save Searching for container data Found host otomo inventory Found host pal inventory Found all pal containers Found host main inventory Found host key inventory Found host weapon inventory Found host armor inventory Found host food bag inventory Found all target containers Exception in Tkinter callback Traceback (most recent call last): File "tkinter_init_.py", line 1948, in call File "char-export.py", line 605, in main KeyError: b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
If I change the souce file to backup Level.sav I get this instead:
found instance Found Character Parameter Map Read 111 pals from source save Searching for container data Found host otomo inventory Found host pal inventory Found all pal containers Found host main inventory Found host key inventory Found host weapon inventory Found host armor inventory Found host food bag inventory Found all target containers Transferring profile data... Existing character parameter map found, overwriting Searching for target containers Removed 111 pals from the original character in the target world Appended 111 pals of data from the source character Found all pal containers Found main inventory in target Found key inventory in target Found weapon inventory in target Found armor inventory in target Found food bag inventory in target Found all target containers Exception in Tkinter callback Traceback (most recent call last): File "tkinter_init_.py", line 1948, in call File "char-export.py", line 857, in main KeyError: 'ID'
Any help would be welcome, thank you!
Same
I fixed the problem myself. I took the player .SAV-files and converted them to .JSON using palworld save tools. As I was the host then I did not have the need to transfer my own files. I opened my gf's 2 character files that I converted from .SAV to .JSON to make it readable. I found some similiar parameteres and switched them around the way it seemed logical. Got everything transfered that way but level went to 1. Using an xp glitch I quickly got that back up to where it was before. I don't remember everything very clearly as I found the alternative solution the same night I wrote this issue.
Thanks for the info. Do you happen to have the link to the savetools you used?
Bill Vincent
From: Taenavxd @.> Sent: Sunday, October 6, 2024 4:19:49 AM To: jmkl009/PalworldCharacterTransfer @.> Cc: ll-FEROX-ll @.>; Comment @.> Subject: Re: [jmkl009/PalworldCharacterTransfer] KeyError: "ID" and KeyError: bx00x00x00x00..... (Issue #26)
I fixed the problem myself. I took the player .SAV-files and converted them to .JSON using palworld save tools. As I was the host then I did not have the need to transfer my own files. I opened my gf's 2 character files that I converted from .SAV to .JSON to make it readable. I found some similiar parameteres and switched them around the way it seemed logical. Got everything transfered that way but level went to 1. Using an xp glitch I quickly got that back up to where it was before. I don't remember everything very clearly as I found the alternative solution the same night I wrote this issue.
— Reply to this email directly, view it on GitHubhttps://github.com/jmkl009/PalworldCharacterTransfer/issues/26#issuecomment-2395363333, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AGZX3MBCQEFZY7OTTWRPBMDZ2D6DLAVCNFSM6AAAAABOT34NQ2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGOJVGM3DGMZTGM. You are receiving this because you commented.Message ID: @.***>
This one? https://github.com/cheahjs/palworld-save-tools
Bill Vincent
From: @.*** @.> Sent: Sunday, October 6, 2024 7:43:33 AM To: jmkl009/PalworldCharacterTransfer @.>; jmkl009/PalworldCharacterTransfer @.> Cc: Comment @.> Subject: Re: [jmkl009/PalworldCharacterTransfer] KeyError: "ID" and KeyError: bx00x00x00x00..... (Issue #26)
Thanks for the info. Do you happen to have the link to the savetools you used?
Bill Vincent
From: Taenavxd @.> Sent: Sunday, October 6, 2024 4:19:49 AM To: jmkl009/PalworldCharacterTransfer @.> Cc: ll-FEROX-ll @.>; Comment @.> Subject: Re: [jmkl009/PalworldCharacterTransfer] KeyError: "ID" and KeyError: bx00x00x00x00..... (Issue #26)
I fixed the problem myself. I took the player .SAV-files and converted them to .JSON using palworld save tools. As I was the host then I did not have the need to transfer my own files. I opened my gf's 2 character files that I converted from .SAV to .JSON to make it readable. I found some similiar parameteres and switched them around the way it seemed logical. Got everything transfered that way but level went to 1. Using an xp glitch I quickly got that back up to where it was before. I don't remember everything very clearly as I found the alternative solution the same night I wrote this issue.
— Reply to this email directly, view it on GitHubhttps://github.com/jmkl009/PalworldCharacterTransfer/issues/26#issuecomment-2395363333, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AGZX3MBCQEFZY7OTTWRPBMDZ2D6DLAVCNFSM6AAAAABOT34NQ2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGOJVGM3DGMZTGM. You are receiving this because you commented.Message ID: @.***>
Yeah, that one.
I was able to get around the key error by updating the below lines in char-export.py (see char-export.txt). It is just a bypass and not a permanent fix. The target save will need pals for the source save to overwrite.
updated line 605 from
dynamic_guids.remove(b'\x00' * 16)
to
dynamic_guids.discard(b'\x00' * 16)
updated the for loop at line 609 from
for dynamic_container in dynamic_container_level_json:
LocalIdInCreatedWorld = find_id_match_prefix(dynamic_container['ID']['value'], LocalIdSearchPrefix)
if LocalIdInCreatedWorld in dynamic_guids:
level_additional_dynamic_containers.append((dynamic_container, LocalIdInCreatedWorld))
to
for dynamic_container in dynamic_container_level_json:
container_id = dynamic_container.get('ID')
if container_id is None: # Skip if 'ID' is missing
continue
print("found value in source dynamic_container")
LocalIdInCreatedWorld = find_id_match_prefix(container_id['value'], LocalIdSearchPrefix)
if LocalIdInCreatedWorld in dynamic_guids:
level_additional_dynamic_containers.append((dynamic_container, LocalIdInCreatedWorld))
and lastly, updated for loop at 856 from
for i, target_dynamic_container in enumerate(target_dynamic_containers):
target_guid = find_id_match_prefix(target_dynamic_container['ID']['value'], LocalIdSearchPrefix)
if target_guid in dynamic_guids:
for j, (dynamic_container, container_local_id) in enumerate(level_additional_dynamic_containers):
if target_guid == container_local_id:
target_dynamic_containers[i] = dynamic_container
repeated_indices.add(j)
break
to
for i, target_dynamic_container in enumerate(target_dynamic_containers):
target_container_id = target_dynamic_container.get('ID')
if target_container_id is None: # Skip if 'ID' is missing
continue
print("found value in target dynamic_container")
target_guid = find_id_match_prefix(target_container_id['value'], LocalIdSearchPrefix)
if target_guid in dynamic_guids:
for j, (dynamic_container, container_local_id) in enumerate(level_additional_dynamic_containers):
if target_guid == container_local_id:
target_dynamic_containers[i] = dynamic_container
repeated_indices.add(j)
break
Holy smoke! Thank you @mherriage I been looking through the internet non-stop for the last 3 days trying to resolve this issue. Just wanted to say thank you!!!!!! I can confirmed this resolved my KeyError: "ID" problem.
@bloodwar men, please help, still cant figure it out where and what file should be changed, been frustrating whole day, i just has no idea where the file and coding should be changed
@ckckxck you have to download the python version not the .exe Edit the char-export.py with a free program like "visual studio code" Edit those lines above with a simple copy paste. I think the 3rd line of code at 856 was located further down... Can't remember what line. But anyways copy/paste over it once you find it. Save it and the code is done. Next you'll need to download python. The latest version worked fine for me. With the char-export.py open with Python and the program will appear. Best of luck
@bloodwar thanks for your replying, but after i try to code and done it with your instructions, when i try to run the chart export with python, it could not work , can i have more information please sir , sorry for disturbing
PS C:\Users\Admin> & C:/Users/Admin/AppData/Local/Microsoft/WindowsApps/python3.13.exe c:/Users/Admin/Desktop/char-export.py
Traceback (most recent call last):
File "c:\Users\Admin\Desktop\char-export.py", line 8, in
@ckckxck did you extract all the files? Should be 5 items. A folder called lib and 4 files. Char-export.py Char-export-zh.py README.md SaveConverter.py
@bloodwar thanks much for helping, it finally transferred, but the pal did not go by also just the character level and inventory, but anyway really thanks for ur help men
Yeah.... I had the same issue on a player on my server.... I tried editing the player save data file from the old and copy it into the new but never worked. It worked for my file... So who knows. Maybe 50/50 chance. @ckckxck
@mherriage the comment you put "The target save will need pals for the source save to overwrite." So the new save file that were going to override... They need at least 1 pal from what you're saying?
@ckckxck can you try? And see if maybe that works? Have the new user file capture at last 1 pal first before transferring everything?
sera que isso consegue me ajudar com um problema que estou passando?, estou tentando mudar o host do meu mundo co-op , mas estou com essa dificuldade de mandar o mundo e tudo mais
o jogo atualizou e acho que agora nao funciona mais essa tecnica
so queria poder passar o mundo do meu amigo para mim
@mherriage you think you can help me out with these errors?
https://github.com/deafdudecomputers/PalWorldSaveTools
Use this if you need the updated version. "Transfer Character" is what you want to use.