文章目錄

我們離線後,Minecraft 伺服器上的農場就會停止,因為所有玩家離開後,農場所在的區塊會卸載,伺服器也會暫停。只要用 Carpet Mod 叫出一個假人留在農場旁,區塊與伺服器就會繼續運作。我們在外面挖礦而不想跑回床上時,假人也能代替我們上床跳過夜晚。
文中的指令都在伺服器視窗輸入,前面不用加斜線。Carpet Mod 的指令文件寫的是遊戲內的 /player,在遊戲裡輸入時要加上 /。
在 Fabric 伺服器安裝 Carpet Mod
Carpet Mod 要裝在 Fabric 伺服器上,而且版本要和 Minecraft 相同,本文用的是 Minecraft 26.3、Fabric Loader 0.20.1 與 Carpet Mod 26.3+v260915。Fabric 的下載頁提醒大多數模組要另外安裝 Fabric API,但 Carpet Mod 不需要。
既有的原版伺服器可以直接換成 Fabric,world、server.properties、ops.json 與 whitelist.json 都不用動。如果還沒有伺服器,就新建一個空資料夾,Java 25 的安裝方式可以參考 Java 原版伺服器架設。
Fabric 的 launcher 要從伺服器下載頁下載。我們在「Minecraft Version」選擇 26.3,其他兩個選項維持預設,再按下「Executable Server (.jar)」:

下載 launcher 後,照下面的步驟安裝:
-
如果是既有的伺服器,就先輸入
stop停止伺服器,再把整個資料夾複製一份當作備份。 -
把下載的 jar 檔放進伺服器資料夾。
-
用這個 jar 檔啟動伺服器。既有的伺服器只要把
start.bat裡的啟動指令改成下面這一行,新資料夾則在資料夾裡開啟終端機並輸入同一行:1java -Xmx2G -jar fabric-server-mc.26.3-loader.0.20.1-launcher.1.1.2.jar nogui -
第一次啟動時,launcher 會下載 Minecraft 伺服器並建立
mods資料夾。新資料夾會印出You need to agree to the EULA後停止,這時要把eula.txt裡的eula=false改成eula=true。既有的伺服器會直接啟動,看到Done後輸入stop停止。 -
從 Modrinth 下載
fabric-carpet-26.3+v260915.jar,放進mods資料夾,放好後的樣子如下圖。 -
用相同的指令再次啟動伺服器。

看到 Done 後,在伺服器視窗輸入 carpet,畫面顯示 Carpet Mod version: 26.3+v260915 就代表模組已經載入。想換回原版時,把啟動指令的 jar 檔改回 server.jar 即可,世界也能正常開啟。
叫出與移除假人
伺服器啟動後,在伺服器視窗輸入下面的指令,就能在農場旁叫出一個生存模式的假人。名稱 afk_chunk_bot 可以換成自己想要的名稱,座標 120 -60 40 則要換成農場旁的地面座標:
1player afk_chunk_bot spawn at 120 -60 40 facing 0 0 in overworld in survival
這條指令可以拆開來看,通常只要改名稱和座標:
| 片段 | 意思 |
|---|---|
afk_chunk_bot |
假人的名稱 |
at 120 -60 40 |
假人出現的座標 |
facing 0 0 |
水平與垂直的視角,不用改 |
in overworld |
主世界,在地獄時寫成 in the_nether |
in survival |
遊戲模式,前面一定要寫維度 |
伺服器視窗出現 joined the game 後,就能用 list 確認假人在線:

上圖的 Couldn't find profile with name 代表這個名稱沒有對應的 Minecraft 帳號,它的後面還會接一段 Exception,這段訊息不用理會,假人仍會正常出現。真人連線時,假人看起來就和一般玩家相同,頭上也會顯示名稱:

不再需要假人時,輸入 player afk_chunk_bot kill,伺服器視窗就會顯示 left the game。移除時背包不會掉落,下次用相同的名稱叫出來時物品都還在,但座標不會保留。伺服器重新啟動後,假人不會自動回來,要再輸入一次 spawn 指令。
假人的動作指令
假人叫出來後,就能用 player 假人名稱 動作 操作它,常用的動作如下:
| 動作 | 假人的行為 |
|---|---|
move forward、move backward |
持續朝該方向走,直到輸入 stop |
stop |
停止移動、攻擊與使用 |
sprint、sneak |
開始疾跑、開始潛行 |
look north、look at 120 -60 45 |
看向方位或指定座標 |
attack once、attack continuous |
左鍵點一次、持續按住左鍵 |
attack interval 20 |
每 20 tick,也就是每秒左鍵點一次 |
use once、use continuous、use interval 20 |
用同樣的三種方式按右鍵 |
hotbar 2 |
切換到快捷欄的第 2 格 |
例如讓假人每秒攻擊一次面前的目標時,就依序輸入下面兩行,要停止時再輸入 stop:
1player afk_chunk_bot look at 120.5 -59.2 42.5
2player afk_chunk_bot attack interval 20
掛機時的區塊與遊戲模式
假人在線時,周圍的區塊會和真人在旁邊時一樣持續運作,不用另外設定 forceload,伺服器也不會因為沒有玩家而暫停。農場實際運作的範圍由 server.properties 的 simulation-distance 決定,預設值是 10 個區塊,因此農場要放在假人約 160 格以內。
想確認伺服器還在運作時,可以隔幾秒輸入兩次 time query gametime,數字有增加就代表伺服器沒有暫停。
叫出假人時要選擇遊戲模式,這會影響怪物的生成與假人的存活:
| 遊戲模式 | 漏斗與作物 | 自然生成怪物 | 被怪物包圍時 |
|---|---|---|---|
| 生存 | 運作 | 會 | 會被打死並離線 |
| 創造 | 運作 | 會 | 生命值維持 20 |
| 旁觀 | 運作 | 不會 | 生命值維持 20 |
已經叫出的假人可以用 gamemode spectator afk_chunk_bot 切換模式。生存模式的假人被打死時會直接離線,周圍的區塊就會跟著卸載,因此農場要生成怪物時,用創造模式比較安全。
假人與多人睡覺
新版的睡覺比例規則是 players_sleeping_percentage,其他規則的新舊名稱可以參考 Minecraft gamerule 新舊名稱對照。這個規則的預設值是 100,也就是所有在線玩家都要上床。
醒著的假人也會被算進在線玩家,因此掛機的假人會讓其他玩家無法靠睡覺跳過夜晚。旁觀模式的假人則不會被計入:
| 在線玩家 | 比例 | 睡著的人數 | 夜晚 |
|---|---|---|---|
| 2 人 | 100 | 1 | 不跳過 |
| 2 人 | 50 | 1 | 跳過 |
| 2 人 | 0 | 1 | 跳過 |
| 3 人 | 50 | 1 | 不跳過 |
| 3 人 | 0 | 1 | 跳過 |
| 3 人 | 50 | 2 | 跳過 |
| 2 人,其中 1 人旁觀 | 100 | 1 | 跳過 |
依這些結果推算,需要上床的人數是在線玩家乘上比例後無條件進位,比例是 0 時仍要有 1 人上床。
掛機的假人導致夜晚無法跳過時,可以把假人切換成旁觀模式,但旁觀的假人不會生成怪物。農場要生成怪物時,就把比例調低。這個比例會套用到所有玩家,例如輸入 gamerule players_sleeping_percentage 0 後,任何一個人上床都會跳過夜晚。
如果我們在外面挖礦而不想回床上,也可以讓假人代替我們上床。下面的步驟裡,假人站在床前兩格:
- 輸入
gamerule players_sleeping_percentage 0,讓一個人上床就能跳過夜晚。 - 輸入
player afk_sleep_bot spawn at 120 -60 40 facing 0 0 in overworld in survival,把假人叫到床邊。 - 天黑後輸入
player afk_sleep_bot look at 120.5 -59.7 42.5,讓假人看向床。這裡的座標要換成床的位置。 - 輸入
player afk_sleep_bot use once,讓假人上床。 - 輸入
data get entity afk_sleep_bot SleepTimer,數字大於 0 就代表假人已經睡著。
SleepTimer 維持 0 時,代表假人沒有上床,可能的原因是還沒天黑、視角沒有對到床,或是附近有怪物。假人醒來後視角會改變,因此下一晚要再輸入一次 look at 與 use once。下圖是兩個玩家在線、比例設成 50 的結果,time query time 從半夜的 18000 跳到 24085,代表夜晚已經跳過:

想恢復原本的規則時,輸入 gamerule players_sleeping_percentage 100 即可。
假人對伺服器的影響
假人會增加伺服器每個 tick 的工作量,分散在不同地方時增加得最明顯。在伺服器視窗輸入 tick query 就能看到平均耗時,這個數字超過 50 ms 時,伺服器就會變慢,這時可以用 spark 找出延遲的來源。在沒有農場的超平坦世界,平均耗時如下:
| 假人的配置 | 平均耗時 |
|---|---|
| 沒有假人 | 0.3 ms |
| 1 個生存模式 | 4.7 ms |
| 5 個創造模式,分散各地 | 19.4 ms |
| 10 個創造模式,分散各地 | 37.8 ms |
假人預設只有 op 能叫出,這由 Carpet Mod 的 commandPlayer 規則決定,輸入 carpet commandPlayer 就能看到目前的值。
實測紀錄
測試環境是 Windows 11、i7-12700、Java 25 與 Minecraft 26.3,伺服器的記憶體上限是 2 GB,除了換回原版的測試,都使用超平坦世界。睡覺比例測試裡醒著的玩家多半也是假人,比例 0 那組則是我用遊戲連線,加上兩個假人。tick query 測試時這台電腦也有其他伺服器在執行,數字只用來比較不同配置。沒有玩家與只有 forceload 時,遊戲時間會停止,假人在線時則持續增加。移除假人約 33 秒的期間,漏斗只多送了 2 個圓石,假人在線時 30 秒則送了 90 個。
總結
留一個假人在農場旁,區塊與伺服器就會在我們離線時繼續運作,調低睡覺比例後,假人也能代替我們上床跳過夜晚。實測中假人在線時遊戲時間持續增加,離開後漏斗幾乎停止。