Repository navigation
Releases: DSSidhu2206/GuildChestFix
Release list
Guild Chest Fix 1.5.2
If you have ever seen ERROR: Oodle decompress returned 0, this is the release that fixes it.
Palworld packs its saves with Oodle 2.9, and an Oodle codec reads its own generation and older ones, never a newer one. This tool borrows that codec from a game you already have installed rather than downloading one, which is the right thing to do on nearly every setup, except it took the first one it found without ever looking at the version. Plenty of older Unreal Engine 4 games ship Oodle 2.5 or 2.6, and one of those loads perfectly, passes the self test, and only then fails on the save with that error. Copying an old oo2core_5_win64.dll next to the exe to try to fix it made things worse, because anything sitting next to the exe wins over everything else, so the search stopped right there.
Anything older than 2.9 is now skipped by name before it is ever loaded, the search carries on to the cache, to your installed games and to the download instead of giving up on the first thing it finds, and where a folder holds more than one the newest wins. Whatever does get used also has to decode a sample packed by a current encoder, so an old DLL that has been renamed to look new does not slip through either.
The tool also prints which codec it is using now, one line under the header. There was no way to answer that question before unless it happened to borrow one from a game, which made this much harder to pin down than it should have been. And if it cannot read the name of a single one of your worlds it says so, instead of quietly listing them by folder id, because that is the codec failing and not your saves.
If you would rather it never touched the internet, put oo2core_9_win64.dll or higher, or oodle-data-shared.dll, next to GuildChestFix.exe. Palworld ships one in Pal\Binaries\Win64. It only needs to be next to GuildChestFix.exe, not next to Palworld.
The zip here is built by GitHub Actions from the tagged source, with the tests passing and the sha256 printed in the log, and it carries a provenance attestation you can check with gh attestation verify GuildChestFix.zip --repo DSSidhu2206/GuildChestFix.
Nothing about how the save is edited has changed. Still one number per guild, verified byte by byte, with a backup written first.
Guild Chest Fix 1.5.1
The download is a zip with a folder inside now instead of one packed exe. Unzip it anywhere and run GuildChestFix.exe from the folder. Dragging a Level.sav or a world folder onto the exe still works the same.
This fixes a real problem a commenter caught. The old exe ran as two identical processes because of how it was packed, and ending the wrong one in Task Manager left the other behind with no window, sitting on its Press Enter prompt forever and holding a lock on the exe file so it could not even be deleted. The new packing is one process, and closing the window now always ends the tool at once, even mid prompt.
The old packing is also why a handful of VirusTotal engines were guessing the tool was malware. A single exe that unpacks itself into temp and runs from there looks like a dropper to a scanner, on top of being unsigned. That packing is gone. The tool also starts no other programs at all now, the running game check asks Windows for the process list directly instead of running tasklist. And it looks for the Oodle codec inside Steam games you already have before it ever tries downloading one, so on most setups it never touches the internet.
Starting with this release the zip on this page is built by GitHub Actions from the tagged source, in public. The build log shows the test suite passing and prints the sha256 of the zip, and the zip carries a provenance attestation you can check with gh attestation verify GuildChestFix.zip --repo DSSidhu2206/GuildChestFix. So you can confirm the file you downloaded came from this code instead of taking my word for it.
Nothing about how the save is edited has changed. It is still one number per guild, verified byte by byte, with a backup written first.
Guild Chest Fix 1.5.0
Steam Deck and Linux. Running the tool through Wine used to come up with an empty world list. Wine hands every prefix its own private C: drive, so the tool was reading the AppData folder of whichever prefix it got started in, and that is never the prefix Palworld saves into. Nothing was ever missing, it was just looking at the wrong C:. It now checks Palworld's own Proton prefix as well, through Wine's Z: mount, covering Steam installed the normal way, flatpak Steam, and games moved onto an SD card or a second drive. Your world should turn up in the list the same as it does on Windows.
If your save lives somewhere none of that covers, option P still takes a path by hand. Put Z:\ on the front of it, so /home/deck/whatever becomes Z:\home\deck\whatever. A world folder works there as well as the Level.sav itself.
One thing to know is that under Wine the tool cannot tell whether Palworld is open, because it cannot see across into Proton's prefix to look. It says so instead of staying quiet about it, so close the game yourself before you run it.
Windows behaves exactly as before, and nothing about how the save is edited has changed. It is still one number per guild, verified byte by byte, with a backup written first.
Guild Chest Fix 1.4.1
Dragging your world folder onto the exe now works, and so does typing the folder at the manual path prompt. Before this the tool only accepted the Level.sav file itself and answered "No file at ..." for anything else, which read like it could not find your save at all. If the folder holds a Level.sav the tool now uses it, and when it does not the message tells you both forms it accepts. Nothing about how the save is edited has changed, the edit is still one number per guild, verified byte by byte, with a backup written first.
Guild Chest Fix 1.4.0
You can now pick the chest size instead of always getting 444. The tool asks for a number from 54 to 444 when you run it, pressing Enter keeps the standard 444. For scripting there is a --slots option, for example GuildChestFix.exe --slots 70 path\to\Level.sav. The tool still never shrinks a chest, so chests already bigger than your chosen number are left alone. 444 stays the largest size because it is the size the mod uses and the largest that has been tested. Note that guilds created while the mod is installed always start at 444, the custom size applies to chests this tool raises.
Guild Chest Fix 1.3.0
Stress tested release. Over one thousand deliberately corrupted and mutated save files were thrown at the tool. Every single one was either handled losslessly or refused with a short clear message, no crashes, no hangs, no writes. A slice of that fuzzing now runs on every build. The save header is now verified to read back byte for byte before the tool continues, and headers from future game versions get a clear message instead of a confusing one. Corrupt files that declare impossible sizes are refused up front. New in this version, the tool can also copy Palworld worlds out of the Game Pass save store, press G in the menu or run with --gamepass. That copy can then be fixed and used on a Steam install or a dedicated server. The tool never writes into the Xbox store itself since that is not safe.
Guild Chest Fix 1.2.0
Hardening release after a full review of every code path. The running game check now also catches a dedicated server running on the same PC, which could otherwise overwrite your edit on shutdown. A save using a future container variant now gets a clear message instead of a confusing error. If a future game update changes how guild or container data is stored, the tool now says plainly that it needs an update instead of failing with a cryptic error. One unreadable guild entry no longer stops the whole scan, it is skipped with a note. Failed runs can no longer leave a temporary file next to your save. As always, every edit is verified byte by byte, checked by reading the written file back, and a backup of the untouched save is kept.
Guild Chest Fix 1.1.1
This release repairs a mistake in the previous update and makes the parser verify itself everywhere. The set support added yesterday assumed set elements were plain ids. On saves where they are something else the tool read the rest of the file out of step and printed a huge wall of bytes. Now every piece of save data is checked against the size the file itself declares the moment it is read. Anything that does not line up exactly is carried through untouched instead of being misread, and error messages are capped so they can never flood the screen. The tool still verifies every edit byte by byte before writing anything.
Guild Chest Fix 1.1.0
This update makes the save parser survive future game updates. The tool now reads sets, which fixes the error about SetProperty on InLockerCharacterInstanceIDArray from the latest game version. Any save data type the tool has never seen before is now carried through untouched instead of stopping with an error. A test suite now runs on every build so a broken parser cannot ship. As always the tool verifies every edit byte by byte and refuses to write anything unexpected.
Guild Chest Fix 1.0.1
Fixes reading saves from recent game versions. The game added new data to saves, player last used times, that the save parser did not understand, so the tool stopped with an error about Int64Property. The tool now reads and writes that data correctly. It also learned the other number and text value types a future game update could put inside maps, so this kind of error should not come back.