文章目錄

架好 Minecraft 伺服器後,朋友想看看世界長什麼樣子、現在誰在線上時,都要先開遊戲連線。BlueMap 是 Minecraft 伺服器的外掛,能把世界算成可以轉動視角的 3D 地圖,朋友只要打開一個網址,就能看到世界的地形與線上玩家的位置。
本文的測試環境是 Windows 11、Java 25 與 Paper 26.3。如果伺服器還在用 Spigot,可以先把伺服器轉成 Paper。
BlueMap 外掛的安裝
BlueMap 的版本要支援伺服器的 Minecraft 版本,5.29 的 Paper 版標示支援 26.1.1 到 26.3。照下面的步驟安裝,世界與其他外掛都不用動:
- 從 GitHub Releases 下載
bluemap-5.29-paper.jar。 - 在伺服器視窗輸入
stop停止伺服器,再把 jar 檔放進plugins資料夾,放好後的樣子如下圖。 - 照原本的方式啟動伺服器。

啟動後,plugins/BlueMap 資料夾會多出設定檔,伺服器視窗也會印出 BlueMap is missing important resources!,代表 BlueMap 還在等我們同意下載資源,網頁地圖也還沒有啟動。BlueMap 啟動時會存一次世界,因此 A manual (plugin-induced) save has been detected 這行警告不用理會。
想移除 BlueMap 時,停止伺服器後刪掉 jar 檔、plugins/BlueMap 與伺服器資料夾裡的 bluemap,世界仍能正常開啟。
下載資源的同意設定
BlueMap 要用 Minecraft Client 裡的方塊模型與材質來畫地圖,這些資源要從 Mojang 的伺服器下載。我們要打開 plugins/BlueMap/core.conf,把 accept-download 改成 true:
1accept-download: true
設定檔的說明寫明,改成 true 代表我們接受 Minecraft 的 EULA、擁有 Minecraft Java 版的授權,並同意 BlueMap 下載這個 Client 檔案。這個檔案不能轉傳給別人。
存檔後在伺服器視窗輸入 bluemap reload,不用重新啟動伺服器。BlueMap 會把約 40 MB 的 Client 檔案下載到伺服器資料夾的 bluemap 裡,看到 WebServer started 與 BlueMap reloaded! 就代表網頁地圖已經啟動,算圖也會自動開始。
網頁地圖的網址
plugins/BlueMap/webserver.conf 的 port 預設是 8100,因此我們在伺服器的電腦上用瀏覽器開啟 http://localhost:8100 就能看到地圖。如果這個連接埠已被其他程式佔用,就改掉 port 的數字,再輸入一次 bluemap reload。朋友要從別台電腦開啟時,網址要換成伺服器的 IP,這個連接埠也要能被連到,官方安裝文件有提到這個前提。
打開網頁後,用滑鼠左鍵拖曳可以移動地圖,滾輪可以縮放,右鍵拖曳可以旋轉或傾斜視角,介面也會跟著瀏覽器的語言顯示正體中文。線上的玩家會顯示成頭像與名稱,位置變動後約 1 秒就會更新,離線後標記會消失。

BlueMap 只能畫出 Minecraft 已經生成的區塊,因此還沒有人探索過的地方在地圖上是黑色:

算圖的進度與時間
算圖會在背景進行,不用另外下指令。我們可以在伺服器視窗輸入 bluemap 查看進度,主世界算到一半時的輸出如下:

progress 是目前這張地圖的進度,remaining time 是預估的剩餘時間,這個數字在算圖途中會變動,我測試時曾顯示還剩 16 分鐘,實際不到 4 分鐘就算完了。全部算完時,輸出會變成 render-thread is idle 與 3 maps are updated。
算圖時間與佔用空間都跟已生成的範圍有關。主世界、地獄與終界各算成一張地圖,資料存在伺服器資料夾的 bluemap/web/maps 裡:
| 地圖 | 已生成的範圍 | 算圖時間 | 佔用空間 |
|---|---|---|---|
| 主世界 | 1,024 × 1,024 格,4,096 個區塊 | 約 5~7 分鐘 | 約 65 MB |
| 地獄 | 256 × 256 格,256 個區塊 | 約 30 秒 | 約 12 MB |
| 終界 | 256 × 256 格,256 個區塊 | 約 14 秒 | 約 2 MB |
BlueMap 預設只用一條執行緒算圖。把 core.conf 的 render-thread-count 改成 4 並輸入 bluemap reload 後,同樣的主世界重新算圖約 1.5 分鐘就會完成。官方 FAQ 寫明算圖和伺服器的主執行緒分開進行,我測試時沒有玩家連線,TPS 維持 20。如果算圖時伺服器變卡,可以用 spark 找出延遲的來源。
世界變更後的地圖更新
玩家蓋好建築後,伺服器存檔時 BlueMap 會讀到變更並自動更新地圖,我測試時從放下方塊到地圖更新約 2 到 6 分鐘。想馬上看到時,在伺服器視窗輸入 save-all,再輸入 bluemap update world,約 6 秒內就會更新完成,開著的網頁也會自動換上新的畫面。指令裡的 world 是地圖的名稱,可以輸入 bluemap maps 查詢。
只顯示部分維度
BlueMap 預設替每個維度建立一張地圖,設定檔放在 plugins/BlueMap/maps,例如 world.conf、world_the_nether.conf 與 world_the_end.conf。想隱藏終界時,照下面的步驟操作:
- 把
world_the_end.conf搬到maps以外的資料夾。 - 在伺服器視窗輸入
bluemap reload。 - 輸入
bluemap storages file delete world_the_end,刪掉已算好的地圖資料來釋放空間。
重新整理網頁後,左上角第二個按鈕的「地圖」清單就只剩下主世界與地獄,重新啟動伺服器後也不會變回來。想恢復終界時,把設定檔搬回 maps,輸入 bluemap reload,再輸入 bluemap update world_the_end 重新算圖。
實測紀錄
測試用的是 BlueMap 5.29,記憶體上限為 2 GB,並關閉沒有玩家時的自動暫停。我用 forceload 生成表格裡的範圍,並把 webserver.conf 的連接埠改成 8108、加上 ip: "127.0.0.1",只讓本機連線。主世界算圖時間的兩個數字,分別是第一次算圖與清除地圖後重新算圖的結果。玩家標記是用一個離線模式的測試 Client 連線確認。
總結
裝上 BlueMap 並同意下載 Minecraft 的資源後,伺服器就會自動算出 3D 地圖,朋友用瀏覽器打開網址就能看到世界與線上玩家。實測 1,024 × 1,024 格的主世界約 5 到 7 分鐘算完,地圖資料約佔 65 MB。