Note: This project was put together for fun and to kick the tires on Sveltekit 5 and Skeleton UI Next. Things may be broken or not work as expected.
Palworld Save Pal is a tool for managing and analyzing save files.
Grab the latest release from the releases page and extract it to a folder of your choice.
Details for using Palworld Save Pal can be found in the User Guide
To run Palworld Save Pal using Docker:
-
Clone this repository:
git clone https://github.com/oMaN-Rod/palworld-save-pal.git
-
Run the build script based on your environment, these scripts capture the system IP address and set the environment variable for the svelte SPA:
Linux
./build-docker.sh
Windows
.\build-docker.ps1
-
Or you can follow these steps:
-
Modify the
docker-compose.yml
file to set the IP/URL address of your docker host:services: backend: build: context: . dockerfile: Dockerfile args: # Change this to the URL of your public server - PUBLIC_WS_URL=127.0.0.1:5174/ws ports: - "5174:5174" volumes: - ./data:/app/data - ./palworld_save_pal:/app/palworld_save_pal environment: - PORT=5174 command: python psp.py
-
Build the docker container:
docker compose up --build -d
-
For developers who want to contribute to Palworld Save Pal:
-
Set up the development environment:
python -m venv .venv source .venv/bin/activate pip install -r requirements.txt
-
Run the application in development mode:
python psp.py --dev
-
Set the environment variable for the svelte SPA
ui/.env
.PUBLIC_WS_URL=127.0.0.1:5174/ws PUBLIC_DESKTOP_MODE=false
-
Run the frontend in development mode:
cd ui bun install bun run dev
-
Open your browser and navigate to
http://127.0.0.1:5173
-
Set the environment variable for the svelte SPA
ui/.env
.PUBLIC_WS_URL=127.0.0.1:5174/ws PUBLIC_DESKTOP_MODE=true
-
Run the frontend in development mode:
cd ui bun install bun run dev
-
Activate python environment
python -m venv .venv source .\.venv\Scripts\activate pip install -r requirements.txt
-
Run the desktop app:
python .\desktop.py --dev --web-host localhost --web-port 5173
Activate the environment
python -m venv .venv
source .\.venv\Scripts\activate
pip install -r requirements.txt
.\build-desktop.ps1
-
Set the environment variable for the svelte SPA
ui/.env
.PUBLIC_WS_URL=127.0.0.1:5174/ws PUBLIC_DESKTOP_MODE=true
-
Create EXE:
python -m nuitka --onefile .\desktop.py --output-filename=PSP.exe --windows-icon-from-ico=ui/static/favicon.ico --windows-console-mode=disable
-
Build the SPA (replace bun with your package manager of choice). This will create a build directory in the project root containing the static files for the SPA:
cd ui rm .svelte-kit bun run build
-
Copy build to the dist folder:
mkdir .\dist\ cp -R .\build\ .\dist\ cp -R .\data\ .\dist\ cp PSP.exe .\dist\
Note: The
dist
folder will contain the executable and the SPA build files, the data folder contains json files with game data, all need to be distributed together.
Here's what's planned for future releases of Palworld Save Pal:
- Filter/Sort Pals by name, nickname, character ID, Boss, Lucky, Human, Level, Paldeck #, Predator, Oil Rig, Summon, or Element type
- Gamepass & Steam support (solo/coop/dedicated)
- Localization; supports Deutsch, English, Espaรฑol, Franรงais, Italiano, ํ๊ตญ์ด, Portuguรชs, ะ ัััะบะธะน, ็ฎไฝไธญๆ, and ็น้ซไธญๆ
- Edit Pal box and Guild Pals
- Edit Nickname
- Edit Gender
- Edit Active Skills / Learned Skills
- Edit Passive Skills
- Edit Level
- Edit Rank
- Edit Souls
- Set/Unset Lucky
- Set/Unset Boss
- Add/Remove/Clone Pals
- Edit Work Suitability
- Heal Pals - edit health and stomach (Modified pals are automatically healed)
- Create your own Active/Passive Skill presets, making it easy af to apply skills.
- Edit Name
- Edit Level
- Edit Stats (Health, Stamina, Attack, Work Speed, and Weight)
- Heal Player - edit health and stomach
- Edit Inventory
- Create your own inventory presets/loadouts and apply them across players and saves.
- Converting to/from gamepass/steam
- Converting to/from solo/co-op/dedicated
- Transferring Players and Pals across saves
- Apply Pal preset on multiple Pals, e.g., max out all Dragon types with a specific profile.
- Edit Storage items
MIT License (do whatever you want with it).
These are projects I've found that specifically target Palworld save files, each was helpful in some way during the development of this project:
- PalEdit - PSP was inspired by it.
- palworld-save-tools - PSP uses this tool for handling save files, can be used directly to convert to/from json.
- palworld-uesave-rs - I originally considered building this app using Tauri, opted for using Python, but this project was helpful.
- Palworld Pal Editor - Also served as a reference for Palworld Save Pal, adopted some of this projects approach.
- PalWorldSaveTools - Has a bunch of useful features for parsing, editing, and converting save files.