Skip to content
On this page

Integrating with your tests

No client library: run BeDD.exe, then drive the WebSocket, bedboo first (order).

powershell
BeDD.exe instance clone --slot 2                   # then copy your mod into (BeDD.exe instance path 1.26.60.05-2)\mods
BeDD.exe world singleplayer <worldDir>             # after restoring your test world
BeDD.exe launch --slot 2 --label my-mod --json     # pid, url, token
BeDD.exe stop <pid>
js
const bot = bedboo.createBot({ transport: 'bedd', bedd: { url: game.url, token: game.token } });
  • stdout: the result only; --json one document, -q identifiers, -v detail on stderr. Errors: error: … + hint: ({"error":{code,message,hint}}).
  • Exit codes: 0 ok, 1 failure, 2 usage, 4 not found, 5 conflict (e.g. slot in use), 10 declined.
  • One slot per parallel run; nothing to clean up.
  • Your own BeDD build: mod install <instance> --from <dir> (pin).
  • BeDD.exe dev: common mod-development steps (--help).

PowerShell: [System.Net.WebSockets.ClientWebSocket], one UTF-8 text message per op, read until EndOfMessage. Focus-Game, Assert-GameForeground: no-ops.

Moving from the PowerShell client

The module, shim and named pipe are gone; ops are unchanged. Clones moved from LeviLauncher's versions\<base>-hi<slot> to instances\<gameVersion>-<slot>.

Be.D.D. 1Be.D.D. 2
Connect-BeDD [-PipeName p]BeDD.exe ps --json or run\<pid>.json; open url?token=…
Invoke-BeDD @{ op = … }the same JSON over the WebSocket
Get-BeDDState, Get-BeDDWorld, Set-BeDDLook, Set-BeDDInput, Set-BeDDSlot, Invoke-BeDDAction, Set-BeDDButton, Send-BeDDPacket, Send-BeDDStack, Get-/Set-BeDDTimeScale, Join-BeDDServer, Send-BeDDKey, Clear-BeDDInput, Set-BeDDWindowop state, world, look, input, slot, action, button, send, stack, timescale, join, key, release, window
Send-BeDDText, Send-BeDDMouse, Send-BeDDRawbot.chat / ui click on a ref / look; else op text / mouse / raw
Save-BeDDScreenshot, Get-BeDDBitmapop screenshot
tap pipe <pipeName>-tapop tap action:'subscribe' (binary messages)
harness-shim.ps1 (Click, Press-Key, Type-Text, Move-Mouse, Scroll, Get-ClientBitmap, …)your own helpers over the WebSocket; prefer bedboo and ui
Register-BeDDNativepoint the input class at the WebSocket instead of SendInput
Install-BeDDMod, Uninstall-BeDDModBeDD.exe mod install, mod uninstall <instance>
Set-BeDDMode, -ModeBeDD.exe mod config <instance> --world-mode <mode>
Set-WorldSinglePlayerBeDD.exe world singleplayer <worldDir>
Start-BeDDGame.ps1, Start-Game; Stop-GameBeDD.exe launch [--slot N] [--label …] --json; stop <pid>
$script:ExclusiveSignaling = $truelaunch --exclusive-signaling
clone-instance.ps1, New-BeDDClone, Initialize-BeDD.ps1, Initialize-BeDDInstanceBeDD.exe instance clone --slot N (new PC)
Get-BeDDInstance, Initialize-BeDDServer, Get-BeDDServerBeDD.exe instance show, server init, server list
Start-BeDDServer.ps1 (-Stop, -Command)server start / server stop; op command on the server
BeDDManager.ps1 (-List, -Game <pid> -Action close, -Shutdown)BeDD.exe (window), ps, stop <pid>, manager stop
config pipeName, pipeInstances, managerScriptwsPort, wsMaxClients, manager
BEDD_PIPE, BEDD_MANAGER_PIPE; BEDD_VERSIONS_DIR, BEDD_LAUNCHER_DATA, BEDD_LIPrun\<pid>.json; BEDD_LEVILAUNCHER, BEDD_INSTANCE

Be.D.D. 1 harnesses: BeetrootSkin, AlleviatedBackpacks.