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, 依赖分析, 可视化界面, 存档管理, 服务器管理, 桌面应用, 游戏工具, 网络流量审计, 请求拦截, 通知系统