oMaN-Rod/palworld-save-pal
GitHub: oMaN-Rod/palworld-save-pal
一款功能全面的 Palworld 游戏存档管理与编辑工具,支持帕鲁、玩家、公会数据的深度编辑以及专用服务器的管理和运维。
Stars: 237 | Forks: 45
# Palworld Save Pal
⚠️ **使用此工具前请务必备份你的存档文件!!** ⚠️
Palworld Save Pal 是一个用于管理和分析存档文件的工具。
## 📋 目录
- [Palworld Save Pal](#palworld-save-pal)
- [📋 目录](#-table-of-contents)
- [🚀 安装说明](#-installation)
- [🎮 使用说明](#-usage)
- [🦀 Rust 后端迁移](#-rust-backend-migration)
- [🐳 Docker](#-docker)
- [👨💻 开发者指南](#-developer-guide)
- [Web](#web)
- [桌面应用](#desktop-app)
- [构建桌面应用](#build-desktop-app)
- [🔥 功能](#-features)
- [常规](#general)
- [帕鲁](#pals)
- [玩家](#players)
- [公会](#guilds)
- [地图](#map)
- [工具](#tools)
- [服务器](#servers)
- [额外功能](#extras)
- [📜 许可证](#-license)
- [➡️ 相关项目](#️-related-projects)
- [☕ 请我喝杯咖啡](#-buy-me-a-coffee)
## 🚀 安装说明
从 [releases](https://github.com/oMaN-Rod/palworld-save-pal/releases) 页面获取最新版本,并将其解压到你选择的文件夹中。
## 🎮 使用说明
有关使用 Palworld Save Pal 的详细信息,请查阅[用户指南](https://github.com/oMaN-Rod/palworld-save-pal/wiki/%F0%9F%8E%AE-Usage)
## 🦀 Rust 后端迁移
后端现在是一个单一的 Rust 二进制文件(`psp-server`)——原有的 Python/FastAPI
后端已弃用。UI、存档编辑功能和 WebSocket API 保持
不变。
**你现有的数据库(`psp.db`)会被自动导入。** 首次
启动时,如果旧版 `psp.db` 与新的数据库文件
(`psp-rs.db`)位于同一目录下,且尚不存在新的数据库,你的设置、预设、
通用帕鲁存储和服务器配置将被导入;旧版文件会被
备份,绝不会被修改,且导入操作只会运行一次。
- 桌面版:无需任何操作——应用会自动找到你现有的 `psp.db`。
- Docker:在首次启动前,将你的旧版 `psp.db` 复制到 `./db/` 文件夹中(参见 Docker
章节)。
**破坏性变更:** 由旧版 Python 工具
(palworld-save-tools `convert.py` 输出)导出的 JSON 文件无法再通过 `POST /api/convert/json-to-sav` 或 Raw 编辑器转换回
`.sav`。请先使用此版本重新导出
存档——`sav → json → sav` 的往返转换仅支持在相同的工具版本内进行。
## 🐳 Docker
要使用 Docker 运行 Palworld Save Pal:
1. 克隆此仓库:
git clone https://github.com/oMaN-Rod/palworld-save-pal.git
2. 根据你的环境运行构建脚本,这些脚本会捕获系统 IP 地址并为 svelte SPA 设置环境变量:
./scripts/build-docker.sh
.\scripts\build-docker.ps1
3. 或者你可以按照以下步骤操作:
1. 修改 `docker-compose.yml` 文件,以设置你的 docker 主机的 IP/URL 地址:
services:
backend:
build:
context: .
dockerfile: Dockerfile
args:
# 将此项更改为浏览器将用于访问服务器的主机:端口
- PUBLIC_WS_URL=127.0.0.1:5174/ws
ports:
- "5174:5174"
volumes:
- ./data:/app/data
# 持久化 psp-rs.db(设置、预设、UPS)。要导入旧版
# Python psp.db,请在首次启动前将其复制到 ./db/psp.db。
- ./db:/app/db
2. 构建 docker 容器:
docker compose up --build -d
## 👨💻 开发者指南
桌面版(Windows/Linux/Mac)是 Palworld Save Pal 的主要发布方式;
Docker/Web 也受支持。后端是位于仓库根目录的 Rust workspace —— 请参阅 [docs/rust-dev-guide.md](docs/rust-dev-guide.md) 获取完整
指南。
### Web
`dev:web` 会同时启动 Vite 开发服务器和 Rust 后端:
```
cd ui
bun install
bun run dev:web
```
然后打开 `http://127.0.0.1:5173`。
### 桌面应用
在热重载的开发模式下运行应用 —— Tauri 会为你启动 Vite 开发服务器(
需要 Tauri CLI:`cargo install tauri-cli --version "^2" --locked`):
```
cd ui && bun install && cd ..
cd psp-desktop
cargo tauri dev
```
### 构建桌面应用
使用平台构建脚本 —— 它会构建 UI、运行 `cargo tauri build`,并且
将发布物收集到 `dist/` 中:
```
# Windows: MSI installer + 便携式独立 zip
.\scripts\build-desktop.ps1
```
```
# macOS (.dmg) / Linux (.deb)
./scripts/build-desktop.sh
```
## 🔥 功能
### 常规
- [x] 按名称、昵称、角色 ID、Boss、Lucky、人类、等级、Paldeck #、捕食者、石油钻井平台、召唤或元素类型筛选/排序帕鲁
- [x] 支持 Gamepass 和 Steam(单机/联机/专用服务器)
- [x] 本地化:支持 Deutsch, English, Español, Français, Italiano, 한국어, Português, Русский, 简体中文, 繁體中文, Español (México), Bahasa Indonesia, Polski, ไทย, Türkçe 和 Tiếng Việt
- [x] 支持 Windows/Mac/Linux 桌面版、Docker (Web) 或从源码运行 (Web)
- [x] 主题支持 - Dark、Frontier(感谢 @CyrixJD115)和 Light 主题(偏好设置在不同会话间保持不变)
### 帕鲁
- [x] 编辑 Palbox、Base、Dimensional Pal Storage 和 Global Pal Storage 帕鲁
- [x] 编辑昵称
- [x] 编辑性别
- [x] 编辑主动技能 / 已学技能
- [x] 编辑被动技能
- [x] 编辑等级
- [x] 编辑阶数
- [x] 编辑魂(Souls)
- [x] 编辑信任度
- [x] 设置/取消 Lucky
- [x] 设置/取消 Boss
- [x] 添加/删除/克隆帕鲁
- [x] 编辑工作适合性
- [x] 治疗帕鲁 - 编辑生命值和饱腹度(修改后的帕鲁会自动治疗)
- [x] 创建你自己的主动/被动技能预设,让应用技能变得超级简单。
- [x] 将帕鲁预设应用于多个帕鲁,例如,使用特定配置将所有龙类型强化至满级。
### 玩家
- [x] 编辑名称
- [x] 编辑等级
- [x] 编辑属性(生命值、耐力、攻击、工作速度和重量)
- [x] 治疗玩家 - 编辑生命值和饱腹度
- [x] 编辑物品栏
- [x] 编辑科技
- [x] 创建你自己的物品栏预设/配置,并跨玩家和存档应用它们。
- [x] 编辑科技树、科技点和古代科技点
- [x] 删除玩家(删除所有地图对象、物品和帕鲁)
- [x] 编辑进行中和已完成的任务
### 公会
- [x] 编辑公会名称
- [x] 编辑公会宝箱
- [x] 编辑据点帕鲁
- [x] 编辑据点物品栏
- [x] 编辑据点名称(目前仅在 PSP 中生效,游戏内不显示)
- [x] 编辑实验室研究
- [x] 删除公会(删除所有玩家、地图对象、物品和帕鲁)
### 地图
- [x] 互动世界地图 - 查看玩家、据点、快速传送点、地下城、雕像和首领/捕食者帕鲁
- [x] 切换单个快速传送点,或为玩家解锁所有快速传送点
- [x] 切换单个雕像,或为玩家收集所有雕像(显示已收集/总数)
- [x] 解锁地图(去除战争迷雾)
### 工具
- [x] 在 Steam 和 GamePass 之间转换存档格式 - 转换已加载的存档,或在不将其加载到编辑器中的情况下转换单独的存档
- [x] GamePass 存档浏览器 - 查看、检查、重命名和删除 GamePass 存档
- [x] Steam ID 转换器 - 将 Steam ID 或个人资料 URL 转换为 Palworld UID 和 NoSteam UID
- [x] 玩家 UID 交换 - 在两名玩家之间交换 UID(适用于联机到专用服务器迁移、平台更改或 UID 重新分配)
- [x] 玩家转移 - 在存档间转移玩家,选择要移动的数据(角色、物品栏、帕鲁、科技、外观)以及是覆盖现有玩家还是以新玩家的身份生成
- [x] Raw 编辑器 - 加载 `.sav` 文件并在代码编辑器中直接将其作为 JSON 进行编辑(支持语法高亮和格式化/压缩切换),然后将其保存回 `.sav`
### 服务器
- [x] 直接从应用(Windows,原生)或使用 Docker(Windows/Linux/Mac)管理 Palworld 专用服务器
- [x] 创建并安装服务器,支持自动检测/下载 SteamCMD 和端口建议
- [x] 启动/停止服务器,实时控制台输出和玩家数量监控
- [x] 编辑服务器设置(PalWorldSettings.ini),包括 RCON 和 REST API 配置
- [x] 模组管理 - 安装、列出和切换 Steam Workshop 模组,包括用于原生服务器的官方 PalModSettings.ini 模组系统
- [x] 在编辑器中直接加载和管理服务器的存档文件
### 额外功能
- [x] 数据浏览器 / 调试模式(只读)- 浏览并筛选/排序帕鲁、物品、主动/被动技能、建筑和科技
- [x] 包含目录和图片灯箱的应用内指南和 Wiki
- [x] 预设管理 - 创建和管理玩家(物品栏)、帕鲁、主动/被动技能、存储预设。
- [x] 通用帕鲁存储(UPS)允许你将帕鲁整理到带有自定义标签的集合中,并通过单次操作将一个、多个或所有帕鲁瞬间转移到任何玩家和任何存档中。
## 📜 许可证
MIT 许可证(你可以随意使用它)。
## ➡️ 相关项目
以下是我发现的专门针对 Palworld 存档文件的项目,在开发本项目的过程中,它们都在某些方面提供了帮助:
- [PalEdit](https://github.com/EternalWraith/PalEdit) - PSP 的灵感来源于此。
- [uesave-rs](https://github.com/oMaN-Rod/uesave-rs) - 当前后端用来读取和写入 Palworld 存档文件的 Rust 库。
- [palworld-save-tools](https://github.com/cheahjs/palworld-save-tools) - 用于解析 Palworld 存档的 Python 库;PSP 最初的 Python 后端就是基于它构建的。
- [palworld-uesave-rs](https://github.com/DKingAlpha/palworld-uesave-rs) - 在探索存档解析时的早期参考。
- [Palworld Pal Editor](https://github.com/KrisCris/Palworld-Pal-Editor) - 同样作为 Palworld Save Pal 的参考,采用了该项目的部分实现方式。
- [PalWorldSaveTools](https://github.com/deafdudecomputers/PalWorldSaveTools) - 包含许多用于解析、编辑和转换存档文件的有用功能。
标签:Palworld, Rust, WebSocket, 依赖分析, 可视化界面, 存档管理, 服务器管理, 桌面应用, 游戏工具, 网络流量审计, 请求拦截, 通知系统