世界在哪裡運行
配置 mode;別和操作模式混淆。
| 世界模式 | 運行什麼 | 用途 |
|---|---|---|
ClientOnly(默認) | 裝有 BeDD 的遊戲,單人或局域網世界;只用迴環地址 | 大多數客戶端模組測試 |
ClientServer | 遊戲 + 在 127.0.0.1 上裝有 BeDD 服務端模組的基岩版專用服務器(BDS) | 兩邊都由腳本控制;以服務器的速度為準 |
Remote | 遊戲加入沒有 BeDD 的服務器,經 allowHosts 可達;速度不可設 | 不歸你管的服務器 |
在 launch 前按克隆設置:BeDD.exe mod config <instance> --world-mode <mode>(mod install 也支持)。Remote
需要 --server-host <host>,主機不在本機時會加進 allowHosts;--server-host '*' 讓 join 可連任意服務器。
客戶端 + 服務端
BeDD.exe server init s1 # %LOCALAPPDATA%\BeDD\servers\s1
BeDD.exe server start s1 --json # pid, port, portV6, url, token, dir, log
BeDD.exe mod config 1.26.60.05-1 --world-mode ClientServer
BeDD.exe launch --slot 1 --json # then: join 127.0.0.1:<port>
BeDD.exe server stop s1 # sends stop (saves); kills after 30 s服務器的 WebSocket(ps --json 裡 kind: "server")接受 ping、state、server、timescale、command
(服務端目標),例如 {op:"command", command:"time set day"}。
準備服務器
server init 用 lip(下載到 tools)安裝 LeviLamina 的服務端包(帶 BDS 1.26.60,約 100 MB)和 BeDD 的服務端模組
(mods\BeDD-server)。冪等,每臺電腦同時只做一個,從不提問。
| 參數 | 默認 / 含義 |
|---|---|
<name> | server;servers(BEDD_SERVERS_DIR)下的一個目錄 |
--port、--port-v6 | 以前用的端口,否則從 19140/19141 起第一對空閒的(從不用 19132) |
--transport | nethernet(raknet 會失敗:"Terracotta"):TCP server-port 做信令,UDP 127.0.0.1:<port>(server-udp-ports)。第一次加入會問"信任此服務器嗎?" |
--server-ip | 127.0.0.1(只有本機能加入);'':所有網卡 |
--online-mode | 關;開:需要 Xbox 登錄 |
--property key=value | 任意 server.properties 鍵,可重複;BeDD 默認 gamemode=creative、difficulty=peaceful、allow-cheats=true |
--set key=value | 服務端模組配置項,可重複:timeScale、trace 等 |
server list 顯示目錄、端口和狀態;server remove <name> 刪除一個。並行運行時給每臺服務器起自己的名字(如其遊戲的槽位),
不指定 --port。
啟動
server start <name> 無窗口運行 bedrock_server_mod.exe(輸出:logs\console.log),並等待 WebSocket
(--timeout,180 秒)。為避免防火牆提示,它拒絕啟動這樣的服務器:mods\BeDD-server 裡沒有 BeDD 的模組、放著別的模組、
或設了 "loopbackOnly": false;模組加載失敗時停掉服務器。server init 設置 server-ip=127.0.0.1 並關閉局域網可見。
--allow-firewall-prompt 跳過這些檢查(其他電腦加入:--server-ip '')。
遠程
BeDD.exe mod config 1.26.60.05-1 --world-mode Remote --server-host play.example.net
BeDD.exe launch --slot 1 --exclusive-signaling --json迴環地址以外只能訪問 allowHosts(不彈防火牆提示)。用
--server-host '*' 時,每次 join 把它的主機加進來(join 探測:allowHosts、anyHost),其他主機照樣不通。需要聯機登錄的服務器要用
--exclusive-signaling(規矩)。