/palworld-save-pal

"Palworld Save Pal" is a save file editor for Palworld. Quickly filter and edit your Pals' names, skills, health, level, and more. You can also manage your inventory, clone Pals, and customize your game the way you want.

Primary LanguageSvelte

PALWORLD Save Pal

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.

⚠️ Backup your save files before using this tool!! ⚠️

Palworld Save Pal is a tool for managing and analyzing save files.

📋 Table of Contents

🚀 Installation

Grab the latest release from the releases page and extract it to a folder of your choice.

🎮 Usage

Details for using Palworld Save Pal can be found in the User Guide

🐳 Docker

To run Palworld Save Pal using Docker:

  1. Clone this repository:

    git clone https://github.com/oMaN-Rod/palworld-save-pal.git
  2. 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
  3. Or you can follow these steps:

    1. Set the environment variable for the svelte SPA ui/.env. Replace {{ ip_address }} with the IP address of the server::

      PUBLIC_WS_URL={{ ip_address }}:5174/ws
      PUBLIC_DESKTOP_MODE=false
    2. 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 -rf .svelte-kit
      bun install
      bun run build
    3. Build the docker image:

      docker-compose up --build -d

👨‍💻 Developer Guide

For developers who want to contribute to Palworld Save Pal:

Web

  1. Set up the development environment:

    python -m venv .venv
    source .venv/bin/activate
    pip install -r requirements.txt
  2. Run the application in development mode:

    python psp.py --dev
  3. Set the environment variable for the svelte SPA ui/.env.

    PUBLIC_WS_URL=127.0.0.1:5174/ws
    PUBLIC_DESKTOP_MODE=false
  4. Run the frontend in development mode:

    cd ui
    bun install
    bun run dev
  5. Open your browser and navigate to http://127.0.0.1:5173

Desktop App

  1. Set the environment variable for the svelte SPA ui/.env.

    PUBLIC_WS_URL=127.0.0.1:5174/ws
    PUBLIC_DESKTOP_MODE=true
  2. Run the frontend in development mode:

    cd ui
    bun install
    bun run dev
  3. Activate python environment

    python -m venv .venv
    source .\.venv\Scripts\activate
    pip install -r requirements.txt
  4. Run the desktop app:

    python .\desktop.py --dev --web-host localhost --web-port 5173 

Build Desktop App

Activate the environment

python -m venv .venv
source .\.venv\Scripts\activate
pip install -r requirements.txt

Using build script

.\build-desktop.ps1

Manual build

  1. Set the environment variable for the svelte SPA ui/.env.

    PUBLIC_WS_URL=127.0.0.1:5174/ws
    PUBLIC_DESKTOP_MODE=true
  2. Create EXE:

    python -m nuitka --onefile .\desktop.py --output-filename=PSP.exe --windows-icon-from-ico=ui/static/favicon.ico --windows-console-mode=disable
  3. 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
  4. 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.

🗺️ Roadmap

Here's what's planned for future releases of Palworld Save Pal:

General

  • Filter Pals by name, nickname, or Element type
  • Remote access to save files (sftp to remote server)
  • Bulk edit pals (e.g., set all stomachs to 100%)

Pals

  • Edit Nickname
  • Edit Gender
  • Edit Active Skills
  • Edit Passive Skills
  • Edit Health - Modified pals are automatically healed
  • Edit Stomach - Modified pals are automatically healed
  • Edit Level
  • Edit Learned skills
  • Edit Rank
  • Edit Souls
  • Set/Unset Lucky
  • Set/Unset Boss
  • Add/Remove Pals
  • Clone Pals

Players

  • Edit Name
  • Edit Level
  • Edit Health
  • Edit Stomach
  • Edit Inventory
  • Player presets for inventory
  • Stats (Health, Stamina, Attack, Work Speed, and Weight)

Map

  • Edit Storage items

📜 License

MIT License (do whatever you want with it).

➡️ Related Projects

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.

☕ Buy me a Coffee

"Buy Me A Coffee"