magicbear/palworld-server-toolkit
Fork: 61 Star: 532 (更新于 2024-12-04 19:26:40)
license: MIT
Language: Python .
PalWorld Server Toolkits - For Save file modify, list the players, repair sav file, etc...
最后发布版本: v0.8.3 ( 2024-02-24 04:29:33)
Palworld Server Toolkit
幻兽帕鲁服务端工具包
简体中文 | English
世界上最高速的帕鲁服务器存档编辑器, 1.9秒 打开对应转换时间 4分54秒 的约 5.1GB 的JSON。
-
这个工具包可用于在 Palworld 世界间转移角色,允许朋友们将他们的角色转移到彼此的服务器上,而不会失去任何进度。
-
亦可以用于编辑玩家所持有的帕鲁、参数、持有物品、金钱等等数据。
-
亦可以移动玩家的公会、删除营地、删除玩家
GUI
直接运行
访问 Release Pages 下载运行即可。
手动安装
-
Python 3.9或以上版本.
- Windows用户: 可从 Microsoft Store下载Python 3.12 or python.org
-
安装
pip
包管理器- For Linux users:
python -m ensurepip --upgrade
- For Windows users:
py -m ensurepip --upgrade
- For Linux users:
-
安装包
pip3 install palworld-server-toolkit
-
运行
python3 -m palworld_server_toolkit.editor [options] <Level.sav>
使用源码前置安装需求
-
Python 3.9或以上版本.
- Windows用户: 可从 Microsoft Store下载Python 3.12 or python.org
-
通过
git clone https://github.com/magicbear/palworld-server-toolkit.git
下载源码 -
执行
git submodule update --init --recursive
问题交流
QQ群 139107098
palworld-save-editor
清理捕捉日志,改名,合并不同服务器玩家,删除玩家,迁移坏档等工具包
[!CAUTION]
:warning: 此工具是实验性的。 小心数据丢失并 务必 进行备份。
选择的
Level.sav
需要在游戏原存档目录下、或者连同Players
一起复制的完整存档、程序会对Players
下的存档文件同时进行操作,否则可能损坏存档。
[!WARNING]
删除用户、删除营地、清理未引用的物品库均为测试功能,有导致服务端闪退可能性,请 务必 进行备份,如碰到问题请提交您的存档到Issues。
[!NOTE]
未加-o参数默认保存文件为
Level_fixed.sav
使用源码版本 以下命令
-m palworld_server_toolkit.editor
部份 修改为palworld_server_toolkit/editor.py
运行即可
-
使用GUI修改
Level.sav
文件 -python -i -m palworld_server_toolkit.editor -g -o Level.sav Level.sav
-
修改
Level.sav
文件 -python -m palworld_server_toolkit.editor -i -o Level.sav Level.sav
-
ShowPlayers()
- 列出玩家 -
FixDuplicateUser()
- 删除多余用户数据 -
ShowGuild()
- 列出公会及成员列表 -
BindGuildInstanceId(uid,instance_id)
- 修改公会成员绑定ID -
RenamePlayer(uid,new_name)
- 修改玩家名字为new_name
-
DeletePlayer(uid,InstanceId=None, dry_run=False)
- 删除玩家数据InstanceId: 删除指定InstanceId
-
DeleteGuild(group_id)
- 删除公会 -
DeleteBaseCamp(base_id)
- 删除基地 -
EditPlayer(uid)
- 快速指定玩家数据至变量player
-
MoveToGuild(uid,guild_id)
- 移动玩家至公会guild_id
-
OpenBackup(filename)
- 打开备份Level.sav
文件并指向变量backup_wsd
-
MigratePlayer(old_uid,new_uid)
- 从old_uid
向new_uid
迁移玩家数据 -
CopyPlayer(old_uid,new_uid, backup_wsd)
- 复制玩家数据backup_wsd
为OpenBackup备份文件wsd
为当前主文件 -
BatchDeleteUnreferencedItemContainers()
- 删除未引用的物品库 -
FixBrokenDamageRefItemContainer()
- 删除损坏对象 -
FindInactivePlayer(day)
- 找出天未上线的玩家 -
Save()
- 保存修改并退出
-
操作示例
[!IMPORTANT]
以下操作均需先退出服务端
最后均为把
Level_fixed.sav
替换至Level.sav
并启动服务端
跨服务器迁移玩家数据
-
提前工作
- 复制旧服务器
Level.sav
至SaveGames/0/<Server ID>/Old-Level.sav
- 复制旧服务器所有需迁移玩家
Players/xxxxxxxx000000000000000000000000.sav
至SaveGames/0/<Server ID>/Players/xxxxxxxx000000000000000000000000.sav
- 复制旧服务器
-
GUI模式操作
-
Source Player Data Source
选择Backup File
- 点击
Open File
选择旧服务器存档Old-Level.sav
-
Source Player
选择要迁移的旧玩家 -
Target Player
选择要被替换的玩家(如果目标玩家ID不变,可从Source Player
拷贝UUID) - 点击
Copy Player
- 点击
Save & Exit
- 替换文件
Level_fixed.sav
到Level.sav
-
-
命令模式操作
- 使用编辑模式运行
python -i -m palworld_server_toolkit.editor Level.sav
- 使用以下命令 并所有需迁移玩家执行
CopyPlayer
:warning: UUID 可相同,数据自
backup_wsd
拷贝OpenBackup("Old-Level.sav") CopyPlayer("xxxxxxxx-0000-0000-0000-000000000000", "xxxxxxxx-0000-0000-0000-000000000000", backup_wsd) Save()
- (Optional) 最后删除旧
xxxxxxxx000000000000000000000001.sav
,
- 使用编辑模式运行
服务器存档转本地
-
GUI模式操作
-
Source Player
选择要迁移的旧玩家 -
Target Player
输入00000000-0000-0000-0000-000000000001
- 点击
Migrate Player
- 点击
Save & Exit
- 替换文件
Level_fixed.sav
到Level.sav
-
其他迁移示例
-
本地存档迁移至服务器示例
- 复制本地
Level.sav
至SaveGames/0/<Server ID>/Old-Level.sav
本地存档通常在
C:\Users\<username>\AppData\Local\Pal\Saved\SaveGames\<SteamID>\<World Folder>
- 复制本地
Players/00000000000000000000000000000001.sav
至SaveGames/0/<Server ID>/Players/00000000000000000000000000000001.sav
- 使用编辑模式运行
python -i -m palworld_server_toolkit.editor Level.sav
- 使用以下命令
OpenBackup("Old-Level.sav") CopyPlayer("00000000-0000-0000-0000-000000000001", "xxxxxxxx-0000-0000-0000-000000000000", backup_wsd) Save()
- (Optional) 最后删除旧
00000000000000000000000000000001.sav
和Old-Level.sav
- 复制本地
-
迁移用户示例
- 使用编辑模式运行
python -i -m palworld_server_toolkit.editor Level.sav
- 使用以下命令
MigratePlayer("xxxxxxxx-0000-0000-0000-000000000000","yyyyyyyy-0000-0000-0000-000000000000") Save()
- 使用编辑模式运行
-
清理7天未上线玩家
- 使用编辑模式运行
python -i -m palworld_server_toolkit.editor Level.sav
- 使用以下命令
for player_uid in FindInactivePlayer(7): DeletePlayer(player_uid) Save()
- 使用编辑模式运行
palworld-player-list
usage: palworld-playey-list [-h] [--host HOST] [--port PORT] [--password PASSWORD] [filename]
用于列出服务器Players目录中的玩家名字,PlayerUId,Steam ID
positional arguments:
filename Filename of the player sav
options:
-h, --help show this help message and exit
--host HOST, -H HOST Host for PalWorld Server RCON
--port PORT, -P PORT PalWorld Server RCON Port
--password PASSWORD, -p PASSWORD RCON密码
- 列出玩家 - 在工作目录
/PalSaved/SaveGames/0/<server id>/Players
中运行python3 list.py
- 玩家详细 -
python3 list.py <PLAYER HEX UID>
palworld-server-taskset
把服务端绑定至CPU性能核 (Linux only)
FAQ
-
复制玩家为将角色及其所有队伍和终端中的伙伴、角色身上的物品以及进度转移,但不会转移任何地图对象、原世界中箱子里的物品以及基地中工作的伙伴。(如果你想将它们一起转移,请将它们移动到身上/终端中)
-
对于合作模式的存档,存档文件通常位于
%LocalAppData%\Pal\Saved\SaveGames<SteamID><世界文件夹>
-
对于Xbox Game Pass玩家的存档,存档文件通常位于
C:\Users\<用户名>\AppData\Packages\ PocketpairInc.Palworld_ad4psfrxyesvt\SystemAppData\wgs
-
对于服务器存档,请通过 Steam 进入服务器的文件位置。
-
你需要至少 3 个文件来完成转移:源玩家角色存档文件(在 Players/中),源世界的 level.sav 文件,以及目标世界的 Level.sav 文件
-
对于本地合作模式的存档,如果你是主机,角色文件始终是
000000...001.sav
-
对于其他玩家的存档,只需知道他们的
ID
在不同世界间不会改变,因此他们在你的合作世界和服务器世界的角色文件名是相同的。 -
Windows 用户建议使用
Windows Terminal
取代cmd
,否则不显示色彩 -
存档结构如下
- 源世界
aveGames ── <steam-id> └── <source-world-id> ├── backup ├── Level.sav ---------- <- The source world save-file ├── LevelMeta.sav ├── Players │ ├── 00000...0001.sav │ └── 12345...6789.sav <- character save-file we want to transfer └── WorldOption.sav
- 目标世界
aveGames ── <steam-id> └── <destination-world-id> ├── backup ├── Level.sav ---------- <- The target world save-file ├── LevelMeta.sav ├── Players │ ├── 00000...0001.sav <- the target player-placeholder save-file │ └── 98765...4321.sav └── WorldOption.sav
TODO
- Cleanup the data on
FoliageGridSaveDataMap
感谢
- palworld-save-tools 提供了存档解析工具实现
- PalEdit - 提供了帕鲁编辑器
- PalworldCharacterTransfer - 参考了其中的动态物品数据迁移引用概念
- Palworld Host Save Fix - 提供了最早期迁移玩家数据的概念
- palworld-steam-id-to-player-uid
最近版本更新:(数据更新于 2024-10-14 11:04:09)
2024-02-24 04:29:33 v0.8.3
2024-02-21 18:11:23 v0.8.1
2024-02-21 05:43:11 v0.7.8
2024-02-19 09:34:52 v0.7.7
2024-02-18 01:24:27 v0.7.5
2024-02-15 15:17:13 v0.6.9
2024-02-15 05:50:14 v0.6.7
2024-02-13 20:26:32 v0.6.5
2024-02-13 06:17:24 v0.6.0
2024-02-13 02:06:24 v0.5.9
magicbear/palworld-server-toolkit同语言 Python最近更新仓库
2024-12-22 09:03:32 ultralytics/ultralytics
2024-12-21 13:26:40 notepad-plus-plus/nppPluginList
2024-12-21 11:42:53 XiaoMi/ha_xiaomi_home
2024-12-21 04:33:22 comfyanonymous/ComfyUI
2024-12-20 18:47:56 home-assistant/core
2024-12-20 15:41:40 jxxghp/MoviePilot