Skip to content
On this page

Configuration

The module reads mods\BeDD\config\config.json, usually written by the harness (Install-BeDDMod does it). Without it the game still runs headless, with the defaults and no managerScript (so only in a manager window that already runs).

json
{ "clientWidth": 1600, "clientHeight": 900, "pipeName": "BeDD", "managerScript": "C:\\BeDD\\BeDDManager.ps1" }

Install-BeDDMod and Start-BeDDGame.ps1 also switch the instance's LeviLamina to its built-in crash logger (modules.crashLogger.builtin in mods\LeviLamina\config\Config.json): the default CrashLogger.exe is a console program, and its console window would flash on the desktop at every game start.

Keys

Key
clientWidth, clientHeightgame window size (0 = leave it), so clicks land in the same place every run
pipeNameone per game instance when several run at once
loopbackOnlydefault true: the game stays on the PC, so no Windows Firewall prompt for each new instance, and game servers outside the PC are not queried (they could show up as "LAN worlds" ahead of your test world). Dedicated servers your harness starts still ask once per server folder; Cancel is fine
managerScriptpath of BeDDManager.ps1 (Install-BeDDMod writes it): the game starts the manager window with it when none runs
mutedefault true: the game makes no sound
tracelog every input that reaches the game to logs\latest.log, for bug reports
pipeInstancesdefault 4: scripts that may use the game's pipe at once (each one's held keys, buttons and input override are released when it disconnects); 1 = one at a time

Keys for bedboo

These turn on the ops that bedboo's transport bedd uses. All are off by default; keep them off unless a harness needs them (see Security).

Key
gameHooksdefault false: hook the game's own systems for world and look (Get-BeDDWorld, Set-BeDDLook), input (Set-BeDDInput: walk, jump, sneak and sprint whatever the key bindings), slot, action and button (Set-BeDDSlot, Invoke-BeDDAction, Set-BeDDButton: hotbar, drop/inventory/perspective/pause, attack/use/pick held for game ticks or until the targeted block breaks)
tapdefault false: serve \\.\pipe\<pipeName>-tap, a binary stream of the game packets the client receives and sends (Tap protocol), with a join journal so a reader can attach in the middle of a session. It carries the whole session of the signed-in player, so only your user can open it. While it is on the client asks servers not to use its blob cache, so every chunk arrives in full
tapLoopbackdefault true, used only with tap: also tap singleplayer worlds and LAN worlds this game hosts (packets re-serialized; LAN guests' traffic is left out)
tapJournalMiBdefault 128: size cap of the tap's join journal; past it a late attach is incomplete (complete:false)
allowSenddefault false: allow the send pipe op (Send-BeDDPacket), with which a script such as bedboo makes the client send chat and commands it serialized (any local program of yours could then do so as your player)
sendAllowpacket ids send may send, default [9, 77] (text, command_request); login, inventory_transaction, player_auth_input and item_stack_request are always refused
allowStackdefault false: the stack op (Send-BeDDStack) lets a pipe client make the game send item stack requests (inventory moves, crafting, chest moves) for the signed-in player, as bedboo does in bedd mode. Turn it on only for such harnesses

Environment variables

VariableRead by
BEDD_PIPEBeDD.psm1the pipe Connect-BeDD uses without -PipeName (default BeDD)
BEDD_MANAGER_PIPEBeDDManager.ps1, the modulethe pipe of another manager window than the session's, e.g. a recording's own; games started with it set show up there
BEDD_LABELthe modulethe game's name in the manager window (Start-BeDDGame.ps1 -Label sets it)
BEDD_RETURN_FOCUSthe modulea window handle that gets the foreground back if the game still activates itself while starting (Start-BeDDGame.ps1 and the shim's Start-Game set it)
BEDD_DIRyour harnesswhere Be.D.D. is unpacked (Installation)
BEDD_INSTANCE, BEDD_VERSIONS_DIR, BEDD_LAUNCHER_DATA, BEDD_LEVILAUNCHER, BEDD_LIPBeDDSetup.psm1where the game instance and tools are (Setting up a new PC)