換工具 palworld-save-tools:Level.sav 與 JSON 互轉(zhuǎn)完整指南)
10 分鐘上手幻獸帕魯存檔轉(zhuǎn)換工具 palworld-save-toolsLevel.sav 與 JSON 互轉(zhuǎn)完整指南【免費(fèi)下載鏈接】palworld-save-toolsTools for converting Palworld .sav files to JSON and back項(xiàng)目地址: https://gitcode.com/gh_mirrors/pa/palworld-save-tools如果你玩過(guò)《幻獸帕魯》一定遇到過(guò)這樣的時(shí)刻辛辛苦苦養(yǎng)了 50 級(jí)的帕魯想給好友也來(lái)一只卻發(fā)現(xiàn)存檔是.sav二進(jìn)制文件記事本打開(kāi)全是亂碼無(wú)從下手。palworld-save-tools 就是專門(mén)解決這件事的工具——它能把帕魯?shù)?sav存檔轉(zhuǎn)成結(jié)構(gòu)清晰的 JSON 文本改完再轉(zhuǎn)回去全程不需要任何付費(fèi)軟件。這篇文章不講高深原理只回答新手最關(guān)心的幾個(gè)問(wèn)題按順序讀完你就能親手完成第一次存檔修改。問(wèn)題一這個(gè)帕魯存檔轉(zhuǎn)換工具到底能幫我干什么一句話概括把游戲里看不懂的二進(jìn)制存檔變成人人都能看懂的 JSON 文本。《幻獸帕魯》的存檔文件尤其是體量最大的Level.sav本質(zhì)上是虛幻引擎的 GVAS 格式外面還套了一層 zlib 壓縮。普通玩家想改角色等級(jí)、調(diào)物品數(shù)量幾乎不可能直接操作。而 palworld-save-tools 做的事情有兩件解碼解壓并解析.sav輸出可讀的.sav.json文件編碼把修改過(guò)的 JSON 重新壓縮回.sav游戲原樣讀取更關(guān)鍵的是它對(duì)Level.sav里幾乎所有的已知數(shù)據(jù)結(jié)構(gòu)都做了額外解析而不是像通用虛幻存檔編輯器那樣丟出一堆十六進(jìn)制。官方 README 里列出的已支持結(jié)構(gòu)包括數(shù)據(jù)結(jié)構(gòu)對(duì)應(yīng)內(nèi)容你改它有什么用CharacterSaveParameterMap玩家與帕魯屬性調(diào)等級(jí)、改經(jīng)驗(yàn)、換裝備ItemContainerSaveData物品容器加稀有材料、補(bǔ)消耗品BaseCampSaveData基地營(yíng)地優(yōu)化布局、查設(shè)施狀態(tài)GroupSaveDataMap公會(huì)與組織管理成員與權(quán)限MapObjectSaveData地圖對(duì)象調(diào)整建筑和世界物品這些解析器都放在項(xiàng)目的palworld_save_tools/rawdata/目錄下按對(duì)象類(lèi)型分文件管理想研究數(shù)據(jù)細(xì)節(jié)可以從那里入手。問(wèn)題二怎么在 10 分鐘內(nèi)讓它跑起來(lái)?前提只有一條Python 3.9 或更高版本。裝好后有兩個(gè)入口選一個(gè)順手的。方式 A克隆倉(cāng)庫(kù)直接跑適合想順便看源碼的人git clone https://gitcode.com/gh_mirrors/pa/palworld-save-tools cd palworld-save-tools python convert.py 你的存檔路徑/Level.sav方式 Bpip 安裝成命令行工具適合只想用的人pip install palworld-save-tools palworld-save-tools convert 你的存檔路徑/Level.sav 小提示W(wǎng)indows 上如果python命令報(bào)錯(cuò)試試python3或py三兄弟總有一個(gè)能用。倉(cāng)庫(kù)里的convenience_tools/convert.cmd會(huì)自動(dòng)幫你挨個(gè)嘗試。第一次運(yùn)行你會(huì)看到類(lèi)似這樣的輸出說(shuō)明一切正常Converting xxx/Level.sav to JSON, saving to xxx/Level.sav.json Decompressing sav file Loading GVAS file Writing JSON to xxx/Level.sav.json把生成的Level.sav.json拖進(jìn) VS Code 或任何現(xiàn)代編輯器你的存檔數(shù)據(jù)就攤開(kāi)在眼前了。整個(gè)過(guò)程通常不超過(guò)一兩分鐘。問(wèn)題三轉(zhuǎn)出來(lái)的 JSON 里到底藏著什么打開(kāi) JSON 后你會(huì)看到一個(gè)巨大的worldSaveData對(duì)象里面按類(lèi)型分門(mén)別類(lèi)。給你一個(gè)直觀的瀏覽路徑對(duì)照palworld_save_tools/paltypes.py里注冊(cè)的類(lèi)型提示就能看懂脈絡(luò){ worldSaveData: { CharacterSaveParameterMap: { ...: 角色與帕魯數(shù)據(jù) }, ItemContainerSaveData: { ...: 背包和容器數(shù)據(jù) }, BaseCampSaveData: { ...: 基地?cái)?shù)據(jù) }, GroupSaveDataMap: { ...: 公會(huì)數(shù)據(jù) } } }說(shuō)幾個(gè)新手常找的東西角色屬性在CharacterSaveParameterMap.Value.RawData里找到CharacterData下的字段等級(jí)、經(jīng)驗(yàn)、屬性點(diǎn)都在這里物品數(shù)量在ItemContainerSaveData里按物品 ID 定位到StackCount之類(lèi)的字段把數(shù)字改大就行帕魯技能同樣是角色數(shù)據(jù)PassiveSkillList字段記錄被動(dòng)技能改數(shù)字這件事本身沒(méi)什么技術(shù)含量真正的難點(diǎn)是別改壞格式——引號(hào)、逗號(hào)、縮進(jìn)都不能錯(cuò)。一次只改一個(gè)字段改完就保存是最穩(wěn)的節(jié)奏。問(wèn)題四改完的數(shù)據(jù)怎么安全轉(zhuǎn)回 .sav把 JSON 拖回終端跑同一套命令即可python convert.py 你的存檔路徑/Level.sav.json注意兩個(gè)細(xì)節(jié)會(huì)覆蓋原文件如果同目錄下已經(jīng)存在Level.sav程序會(huì)彈出確認(rèn)提示Are you sure you want to continue? (y/n)。這也是為什么強(qiáng)烈建議先復(fù)制一份原始存檔再動(dòng)手。轉(zhuǎn)換必須無(wú)損這個(gè)項(xiàng)目有個(gè)硬性設(shè)計(jì)原則——SAV 轉(zhuǎn) JSON 再轉(zhuǎn)回 SAV壓縮前必須逐字節(jié)一致。所以只要你不改壞 JSON 結(jié)構(gòu)轉(zhuǎn)回去的游戲就能正常讀取。在tests/test_cli_scripts.py里項(xiàng)目專門(mén)寫(xiě)了一套往返測(cè)試SAV → JSON → SAV → JSON → SAV每一步都對(duì)比字節(jié)確保轉(zhuǎn)換過(guò)程零損失。這種測(cè)試保證了改完轉(zhuǎn)回去這件事的可靠性。問(wèn)題五新手最容易踩的坑提前幫你排掉 ?根據(jù)大量用戶反饋和項(xiàng)目文檔這幾個(gè)坑出現(xiàn)頻率最高現(xiàn)象原因解決辦法提示not a compressed Palworld save文件損壞或不是帕魯存檔用游戲內(nèi)修復(fù)功能或換備份文件轉(zhuǎn) JSON 時(shí)內(nèi)存暴漲、電腦卡死Level.sav轉(zhuǎn)出的 JSON 非常大需要大量?jī)?nèi)存用選擇性解析參數(shù)見(jiàn)問(wèn)題六超大 JSON 打開(kāi)很慢文件動(dòng)輒幾百 MB用 VS Code 或 JetBrains 系編輯器別用記事本游戲讀不出改過(guò)的存檔JSON 語(yǔ)法被改壞還原備份用編輯器校驗(yàn) JSON 格式還有一條隱藏經(jīng)驗(yàn)首次轉(zhuǎn)換前看一眼 JSON 文件大小。官方文檔專門(mén)提示過(guò)轉(zhuǎn)換Level.sav會(huì)產(chǎn)生非常大的文件需要足夠的內(nèi)存和像樣的編輯器別用 Windows 自帶記事本硬扛。問(wèn)題六老手都在用的幾個(gè)進(jìn)階玩法 當(dāng)你完成第一次修改后可以試試這些能顯著提升效率的操作。只解析關(guān)心的數(shù)據(jù)內(nèi)存省一半大存檔全量解析很吃內(nèi)存但如果你只想改角色和物品可以指定路徑python convert.py Level.sav --custom-properties .worldSaveData.CharacterSaveParameterMap.Value.RawData,.worldSaveData.ItemContainerSaveData.Value.RawData這個(gè)參數(shù)對(duì)應(yīng)convert.py里的--custom-properties選項(xiàng)只解碼你勾選的數(shù)據(jù)其他結(jié)構(gòu)一律跳過(guò)處理速度和內(nèi)存占用都有肉眼可見(jiàn)的改善。常用參數(shù)速查表參數(shù)作用--to-json/--from-json強(qiáng)制指定轉(zhuǎn)換方向忽略文件擴(kuò)展名判斷--output自定義輸出路徑--force已存在輸出文件時(shí)不詢問(wèn)直接覆蓋--minify-json輸出緊湊 JSON方便其他程序讀取--convert-nan-to-null把 NaN/Inf 浮點(diǎn)數(shù)轉(zhuǎn)成 null注意會(huì)丟失信息順手用上生態(tài)工具這個(gè)項(xiàng)目已經(jīng)被不少下游工具采用有人用它寫(xiě)圖形化帕魯編輯器有人用它做服務(wù)器管理面板還有人專門(mén)拿它做存檔遷移修復(fù)。如果你只想要可視化界面可以去社區(qū)搜基于 palworld-save-tools 的 GUI 工具如果你想自己寫(xiě)腳本批量處理多個(gè)存檔把convert.py當(dāng) Python 庫(kù)調(diào)用即可PyPI 上可安裝?,F(xiàn)在就去試從一次最小修改開(kāi)始 ?工具本身不需要你懂二進(jìn)制、懂壓縮算法它已經(jīng)把最復(fù)雜的工作封裝好了。你要做的只是三步備份你的Level.sav跑一次轉(zhuǎn)換命令把 JSON 打開(kāi)看看改一個(gè)字段比如某件物品的數(shù)量轉(zhuǎn)回去進(jìn)游戲驗(yàn)證從最小的修改開(kāi)始一次只動(dòng)一個(gè)地方你就會(huì)慢慢摸清整個(gè)存檔的結(jié)構(gòu)。記住項(xiàng)目里那條開(kāi)發(fā)哲學(xué)——正確性永遠(yuǎn)優(yōu)先于性能這也是為什么你可以放心地改完再轉(zhuǎn)回去。去備份你的存檔吧然后打開(kāi)終端跑起你的第一條轉(zhuǎn)換命令。你的帕魯正等著被你改造呢【免費(fèi)下載鏈接】palworld-save-toolsTools for converting Palworld .sav files to JSON and back項(xiàng)目地址: https://gitcode.com/gh_mirrors/pa/palworld-save-tools創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考