Package: palworld-save-tools
palworld-save-toolsTools for converting Palworld .sav files to JSON and back.This tool currently supports additional parsing of the following data in theLevel.savnot handled byuesaveor other non-Palworld aware Unreal save editors, emcompassing all known data structures as of Palworld v0.1.4.0:GroupSaveDataMapGroups such as in-game organizations and guildsCharacterSaveParameterMapCharacters such as players and palsMapObjectSaveDataItemContainerSaveDataCharacterContainerSaveDataDynamicItemSaveDataFoliageGridSaveDataMapBaseCampSaveDataWorkSaveDataInstructions[!IMPORTANT]
ConvertingLevel.savfiles to JSON will result in very large files, and may require significant amounts of RAM to process. Use a modern text editor such as Visual Studio Code or a Jetbrains IDE to open these files.PrerequisitesPython 3.9 or newer.Windows users: You can installPython 3.12 from the Microsoft Storeor frompython.orgWindows GUI stepsDownload the latest release from [https://github.com/cheahjs/palworld-save-tools/releases/latest].Unzip the file into a folder.Drag and drop your.savfile (for Steam on Windows, these are located at%LOCALAPPDATA%\Pal\Saved\SaveGames\<SteamID>\<SaveID>) ontoconvert.cmdto convert the file into JSON.To convert the.sav.jsonfile back into a.savfile, drag and drop your.sav.jsonfile ontoconvert.cmd.[!NOTE]
In the event that theconvert.cmdfails to function correctly, try to disable Python's app execution aliases ("Manage app execution aliases"), or failing that, please use theTerminalinstructions belowTerminalDownload the latest release from [https://github.com/cheahjs/palworld-save-tools/releases/latest].Unzip the file into a folder.Open a terminal in the folder you just unzipped.Depending on how Python is installed, the next steps should use eitherpython,python3, orpy.Runpython convert.py <path to .sav file>to convert the.savfile to a.sav.jsonfile.Runpython convert.py <path to .json file>to convert the.sav.jsonfile to a.savfile.[!NOTE]
On Windows, you can drag and drop theconvert.pyfile and the.sav/.sav.jsonfile to avoid typing out the path.Additional command line arguments:--to-json: Force SAV to JSON conversion regardless of file extension--from-json: Force JSON to SAV conversion regardless of file extension--output: Override the default output path--minify-json: Minify output JSON to help speed up processing by other tools consuming JSON--force: Overwrite output files if they exist without prompting--custom-properties: Comma-separated list of paths frompaltypes.pyto decode.
This can be used to ignore processing of types that are not of interest.
For example--custom-properties .worldSaveData.GroupSaveDataMap,.worldSaveData.CharacterSaveParameterMap.Value.RawDatawill only parse guild data and character data.DevelopersThis library is available on PyPi, and can be installed withpipinstallpalworld-save-tools[!NOTE]
Due to ongoing rapid development and the potential for breaking changes, the recommendation is to pin to a specific version, and take updates as necessary.RoadmapParse all known blobs of dataOptimize CPU and memory usageDevelopment philosophyNo additional dependencies. Scripts should run with a default install of Python. Distributing binary builds of Python is laden with AV false positives.Correctness of the conversion process is more important than performance. SAV > JSON > SAV should yield bit-for-bit identical files (pre-compression).Projects that make use of palworld-save-tools[!NOTE]
This does not serve as an endorsement of any of these projects, use at your own risk.xNul/palworld-host-save-fix- Migrating save data between player IDs (eg, converting coop saves to dedicated server saves)PalEdit- GUI for editing Palspalworld-server-tool- Managing dedicated servers via RCON and SAV file parsingpalworld-server-toolkit- Assorted set of SAV file manipulations