Resource Pack Manager 常見問題
若此處未解答你的問題,請先查看側邊欄中其他 ResourcePackManager 頁面。
ResourcePackManager 目前提供哪些指令?
在後端(Paper / Spigot)上,由程式碼支援的指令介面為:
/rspm setup— 開啟一個遊戲內的 GUI 設定選單(外掛更新狀態、推薦外掛、自動更新切換、前往 wiki / Discord / Nightbreak 帳號的連結)/rspm reload— 重新建置並重新託管合併後的資源包/rspm status— 完整的診斷資訊輸出(資源包狀態、託管模式、網路金鑰、整合)/rspm itemsadder configure— 為 RSPM 託管設定 ItemsAdder/rspm itemsadder dismiss— 為你的玩家 UUID 永久關閉 ItemsAdder 警告/rspm data_compliance_request— 下載此伺服器所有遠端儲存的資料
主指令是 /resourcepackmanager,/rspm 是其別名。另外還註冊了幾個共用的 MagmaCore/Nightbreak 子指令(例如 /rspm recommendedplugins、/rspm downloadall),設定選單中的按鈕即連結到這些指令。
後端權限:
/rspm setup需要resourcepackmanager.setup且僅限玩家使用(它會開啟一個物品欄 GUI)。/rspm reload、/rspm status、/rspm itemsadder <configure|dismiss>與/rspm data_compliance_request均需要resourcepackmanager.*。
在代理外掛(Velocity / BungeeCord)上,僅有診斷指令:
/rspm status— 代理端快照:後端清單、各後端的擷取結果、合併後的資源包狀態、Geyser/Floodgate 偵測結果/rspm debug bedrock [on|off]— Velocity 與 BungeeCord 皆可。切換GeyserBinder發出的詳盡[RSPM-BedrockDebug]日誌行,用於排查「Bedrock 玩家已加入但看不到資源包」的情況。代理重啟時會重置為關閉。不帶參數執行則會印出目前狀態。
代理指令會檢查 resourcepackmanager.command.status 或 resourcepackmanager.*。主控台一律具備兩種權限;玩家則需透過你的權限外掛取得授權。輸出可放心分享——網路金鑰會被遮罩、不會印出任何 token——因此可以放寬授權。
目前支援哪些外掛?
ResourcePackManager 內建支援以下外掛的整合條目:
- BackpackPlus
- BetterHUD
- BetterStructures
- CannonRTP
- EliteMobs
- EternalTD
- FreeMinecraftModels
- InfiniteVehicles
- ItemsAdder
- MegaBlockSurvivors
- MMOInventory
- ModelEngine
- Nexo
- Nova
- Oraxen
- RealisticSurvival
- ResurrectionChest
- ValhallaMMO
- vane-core
這些整合僅在對應外掛已安裝、且其設定的本機路徑或遠端 URL 可使用時才會生效。
每個整合在 plugins/ResourcePackManager/compatible_plugins/ 下都有自己的 YAML 設定檔。你可以為各外掛自訂 isEnabled、pluginName、localPath、url、zips、cluster、additionalLocalPath 和 reloadCommand。cluster 選項可告訴 ResourcePackManager 將本機路徑視為包含多個資源包子資料夾的目錄,這些子資料夾應全部合併在一起。
ResourcePackManager 與 ItemsAdder 相容嗎?
是的。ResourcePackManager 內建針對 ItemsAdder 的輔助工具與警告流程。
若已安裝 ItemsAdder 但仍需調整以配合 ResourcePackManager 託管,OP 玩家在加入伺服器幾秒後會收到一則可點擊的警告。已永久關閉警告的玩家則不會再看到它。從那裡你可以:
- 執行
/rspm itemsadder configure,會設定resource-pack.hosting.no-host.enabled: true、停用三個protect-file-from-unzip設定、設定compress-json-files: false、執行/iareload然後/iazip,再重新載入 ResourcePackManager(約 15 秒後) - 執行
/rspm itemsadder dismiss,為你的玩家 UUID 永久關閉該警告
若 ItemsAdder 已被設定為透過其某種託管模式託管自己的資源包,輔助指令不會自動覆寫該設定,而是會提示你先自行停用 ItemsAdder 的託管。
我可以將自己的資源包加入合併嗎?
可以。將你的 .zip 檔放入:
plugins/ResourcePackManager/mixer
若你想控制檔案衝突時哪個資源包勝出,請將完整檔名(包含 .zip)加入 plugins/ResourcePackManager/config.yml 中的 priorityOrder。
範例:
priorityOrder:
- ResourcePackManager
- EliteMobs
- MyCustomPack.zip
優先順序如何運作?
priorityOrder 越靠上優先級越高,越靠下優先級越低。
對於不可合併的檔案,較高優先級的資源包會取代較低優先級的檔案。對於可合併的 JSON 檔案,ResourcePackManager 會合併內容,而非直接覆蓋。
程式碼目前將下列檔案視為可合併:
sounds.jsonlang或languages下的語言檔minecraft/models/item下的原版物品模型 JSON(採用非遞迴合併:只有overrides陣列會跨資源包合併,檔案其餘部分則遵循「最高優先級勝出」)- atlas 檔
- font 檔
items/下的 1.21.4+ 物品模型定義(格式感知合併:保持 predicate tree 完整,不會盲目遞迴進入不同類型的節點)
pack.mcmeta 採用特殊合併規則:最高的 pack_format 勝出、supported_formats 範圍會擴大以涵蓋所有資源包(支援整數、雙整數陣列以及 {min_inclusive, max_inclusive} 物件格式)、overlay 條目會被合併,且非標準的頂層鍵(例如 sodium)會保留下來。Overlay 條目會被標準化以相容 1.21.9+,缺少時會自動加上 min_format/max_format 欄位。
在所有資源包合併之後,ResourcePackManager 會將基礎 atlas 來源合併到 overlay atlas 檔中。這可避免 overlay 在 Minecraft 啟用 overlay 時(例如 ItemsAdder 的 ia_overlay_modern_atlas / ia_overlay_legacy_atlas)意外遮蔽基礎 atlas 條目。
其他 JSON 檔案則會被取代而非合併。
未列在 priorityOrder 中的資源包仍會被納入合併,但會獲得最低優先級。
ResourcePackManager 會在資源包變更時自動重新建置嗎?
會。它會監視受支援的資源包來源以偵測變更。
當受監視的資源包停止變更 3 秒後,ResourcePackManager 會將其標記為穩定。一旦所有受監視的資源包都穩定,重新混合就會立即發生。在這段過渡期間,線上的 OP 玩家會收到通知:「All resource packs are stable. Mixing and sending now.」
監視器會考慮外掛初始化嗎?
會。監視器了解 Magmacore 的外掛初始化狀態。
- 它會等到所有受監控的外掛完成 Magmacore 初始化後,才開始進行穩定性檢查。
- 若監視器執行中有外掛重新載入,監視器會偵測到狀態變化、暫停、重置所有穩定性追蹤,並等待該外掛完成重新初始化。
- 這可避免在正常的外掛啟動或重新載入期間出現錯誤的「不穩定」偵測。
玩家如何收到最終的資源包?
當啟用 autoHost(預設)時,RSPM 會自動選擇交付路徑,並將該 URL 推送給每位加入的玩家。決策樹如下:
- 若
selfHostForce: true,一律自我託管(跳過所有探測——主要用於測試)。 - 否則若
preferSelfHost: true(預設),先嘗試自我託管,並執行三項健全性檢查(非 LAN 已解析主機、本機 self-probe、透過 magmaguy.com 的外部可達性探測),若三項皆通過則確認使用自我託管。 - 若自我託管失敗或停用,則改為將資源包上傳到
magmaguy.com/rsp/並公告該 URL。
取得 URL 後,在 Minecraft 1.20.3+ 上,RSPM 會使用多重資源包 API,因此能與其他伺服器發送的資源包共存。在更舊的版本上,會回退至較舊的單一資源包方法,這會取代任何現有的伺服器資源包指派。
若 autoHost: false,RSPM 不會推送任何 URL——你需自行從 plugins/ResourcePackManager/output/ 取得 zip,並透過自己的管線提供。
完整的交付決策樹請參閱自我託管。
我可以自我託管而不使用內建的自動託管嗎?
可以——自 RSPM v2 起,內建的 HTTP 伺服器就是建議的自我託管路徑。selfHostEnabled: true 與 preferSelfHost: true 兩者均預設啟用。
若你想透過自己現有的網頁伺服器託管 zip,而非使用任一內建路徑:
- 設定
autoHost: false。 - 可選擇將
resourcePackRerouting設為相對於plugins目錄的現有資料夾路徑。 - 從
plugins/ResourcePackManager/output/ResourcePackManager_RSP.zip取得合併後的資源包並自行提供。
若有設定 resourcePackRerouting,RSPM 也會將該 zip 的副本寫入該轉送資料夾。該轉送路徑會以 plugins 目錄為基準解析,目標資料夾必須已存在。
有指令可以索取已儲存的託管資料嗎?
有。使用:
/rspm data_compliance_request
若 magmaguy.com 遠端自動託管有作用中的工作階段,ResourcePackManager 會將回應下載至:
plugins/ResourcePackManager/data_compliance
若沒有作用中的遠端工作階段(例如你正在自我託管),該指令會告知你沒有遠端資料可索取。
有哪些設定選項可用?
plugins/ResourcePackManager/config.yml 中提供下列設定:
一般
priorityOrder— 控制檔案衝突時哪個資源包勝出的列表(最高優先級在最前)autoHost— ResourcePackManager 是否自動託管並發送合併後的資源包(布林值,預設true)forceResourcePack— 是否強制玩家接受資源包(布林值,預設false)resourcePackPrompt— 提供資源包時顯示的提示訊息(預設"Use recommended resource pack?")resourcePackRerouting— 可選的資料夾路徑(相對於plugins),用於額外寫入合併 zip 的副本nightbreak.autoDownloadPluginUpdates— RSPM 是否在啟動時自動下載自身的外掛更新(布林值,預設false;下載更新後仍需重啟才能套用)。這是nightbreak:區段下的巢狀鍵,並非頂層鍵——在 config.yml 中搜尋裸的autoDownloadPluginUpdates行只會在縮排於nightbreak:之下找到它。這與/rspm setupGUI 中所公開的是同一個切換。
自我託管
selfHostEnabled— 是否可使用內建 HTTP 伺服器(布林值,預設true)selfHostPort— 自我託管 HTTP 伺服器的連接埠。-1(預設)會自動衍生為mcPort + networkHttpOffset-v2。設為任意正整數則強制使用該明確連接埠。networkHttpOffset-v2— 當selfHostPort = -1時,加到 Minecraft 伺服器埠的後備偏移量。預設1(例如 MC 25565 → HTTP 25566)。在網路上你不再需要讓它與代理保持一致:後端會自動向代理通報它實際綁定的確切 HTTP 連接埠,代理只在該通報抵達之前,將自己的network-http-offset-v2當作猜測使用。selfHostExternalHost— 用戶端用來連到你的自我託管伺服器的公開主機名稱或 IP。留空(預設)= 透過 api.ipify.org / checkip.amazonaws.com 自動偵測。selfHostForce— 跳過所有健全性檢查及遠端上傳,一律自我託管(布林值,預設false——用於測試)。preferSelfHost— 先嘗試自我託管並執行健全性檢查,再回退至遠端上傳(布林值,預設true)。
Bedrock
bedrockConversionEnabled— 是否將合併後的 Java 資源包轉換為適用於 GeyserMC 的 Bedrock 資源包(預設true)bedrockAutoDeployToGeyser— 是否將 Geyser 自訂對應檔複製到偵測到的 Geyser 資料夾(預設true)bedrockGeyserFolder— 手動指定 Geyser 資料夾路徑;留空則自動偵測bedrockConverterDebug— 來自 Bedrock 管線的逐物品 / 逐 bone 詳盡日誌行(預設false)
另一個檔案 plugins/ResourcePackManager/bedrock_display_offsets.yml 提供十二個可由使用者調整的選項,用於微調 Bedrock 玩家看到手持物品相對於手部的位置(第一人稱六個、第三人稱六個)。詳情請參閱 Bedrock 轉換。
刻意沒有設置 network-key 設定選項。連結代理與其後端的金鑰會在每個 JVM 上自動從 plugins/floodgate/key.pem 衍生。Floodgate 本身就要求該檔案在整個網路中保持一致以用於 Bedrock 認證,因此衍生出的金鑰自動處處相符。
其他外掛可以透過程式碼註冊它們的資源包嗎?
可以。ResourcePackManager 公開 Java API 以進行程式化的資源包註冊。詳情請參閱 API 頁面。
Bedrock 轉換是否僅適用於 FreeMinecraftModels?
不,已不再如此。目前的轉換器可處理任何在 assets/<namespace>/items/*.json 下提供 1.21.4+ 物品定義的外掛資源包。這涵蓋 FreeMinecraftModels 的 bone 模型、EliteMobs 裝備、Oraxen/Nexo 自訂物品、自訂盔甲組,以及你自己以該格式組裝的任何資源包。純 2D 自訂物品會輸出為扁平的 Bedrock 圖示;3D 自訂物品則會輸出 Bedrock 幾何/附掛物及軟體渲染的物品欄圖示。
每次 Bedrock 資源包變更都需要重啟伺服器嗎?
對於現有自訂物品的材質與模型調整,下一位加入的 Bedrock 玩家就會生效——RSPM 透過 Geyser API 為每個工作階段即時提供 Bedrock 資源包。只有當自訂物品集合本身改變(新增或移除物品)時才需要重啟,因為 Geyser 在啟動時才會註冊其自訂物品識別碼。
ResourcePackManager 在 BungeeCord / Velocity 上能運作嗎?
可以——這是一級支援的網路拓撲。各處使用的是同一個 ResourcePackManager.jar:將它放在每個後端,並在代理上放一份副本。這一個 jar 同時打包了 Bukkit、Velocity 以及 BungeeCord/Waterfall 的進入點,因此無論主機是後端或代理都能正確載入。不再有獨立的代理 jar,也不再有 proxy-extension/ 資料夾。
以代理外掛身份執行時,它會合併每個後端轉換後的 Bedrock 資源包,並透過代理的 Geyser 提供給 Bedrock 用戶端。Java 資源包的交付仍由各後端直接處理——Java 用戶端會看到各後端的資源包。
設定、疑難排解與驗證步驟,請參閱代理網路。