McHttp for Bedrock Dedicated Server
McHttp is the recommended VoiceCraft integration mode for BDS.
Use this guide when you run a Bedrock Dedicated Server and want the server-side addon to send player state into VoiceCraft.Server.
Target shape:
VoiceCraft.Client -> VoiceCraft UDP endpoint
BDS + VoiceCraft.Addon.Core.McHttp -> VoiceCraft McHttp endpoint
Why McHttp is recommended
- better suited for dedicated server environments
- simpler than command-tunnel based setups
- easier to reason about in production
- aligns well with the Bedrock addon package
VoiceCraft.Addon.Core.McHttp - does not depend on the local
/connectwebsocket workflow used byMcWss
Requirements
- Running
VoiceCraft.Server McHttpConfig.Enabled = trueVoiceCraft.Addon.Core.McHttp.zipfrom releases, or a ready world archive from the Addon Configurator- BDS with required modules and script API support
- Network reachability from the BDS machine to the VoiceCraft
McHttpConfig.Hostname - VoiceCraft clients installed by players
Server-side VoiceCraft config
Minimal example:
{
"McHttpConfig": {
"Enabled": true,
"LoginToken": "replace-with-token",
"Hostname": "http://0.0.0.0:9050/",
"MaxClients": 10,
"MaxTimeoutMs": 10000,
"DisabledPacketTypes": []
}
}
Important:
- use a real token, never keep the generated one in production
- make sure the BDS host can reach the configured endpoint
- use
http://127.0.0.1:9050/only if BDS and VoiceCraft run on the same host - use a LAN/public address or
0.0.0.0binding when BDS connects from another machine
Addon installation
Fastest path:
- Addon Configurator if you want a ready-to-unpack world archive
- Download Page if you want the raw addon release package
Manual path:
- Extract
VoiceCraft.Addon.Core.McHttp.zip. - Put
RPinto<MCServer>/resource_packs/. - Put
BPinto<MCServer>/behavior_packs/. - Attach both packs to the target world.
- Restart BDS after changing packs or permissions.
The resource pack provides client-visible assets such as icons. The behavior pack runs the scripts and commands that connect BDS to VoiceCraft.
Module permissions
Open <MCServer>/config/default/permissions.json and ensure it contains the required modules:
{
"allowed_modules": [
"@minecraft/server-gametest",
"@minecraft/server",
"@minecraft/server-ui",
"@minecraft/server-admin",
"@minecraft/server-editor",
"@minecraft/server-net"
]
}
The addon needs network-related script permissions because it calls the VoiceCraft HTTP endpoint from the BDS runtime.
Attach packs to the world
In <MCServer>/worlds/<YourWorld>/world_behavior_packs.json:
{
"pack_id": "71ebb3ba-e9db-4546-9520-05f20b17dcb6",
"version": [1, 6, 0]
}
In world_resource_packs.json:
{
"pack_id": "30b512be-77d1-4a61-bdb7-6c2f4062f889",
"version": [1, 0, 0]
}
Connect in game
Run:
/voicecraft:vcconnect "http://<VOICECRAFT_HOST>:<PORT>" <LOGIN_TOKEN>
Example:
/voicecraft:vcconnect "http://127.0.0.1:9050" e4ad1f7e-4f90-4b21-bc15-6febe580bf1c
Use the token from McHttpConfig.LoginToken.
If BDS runs on a different host than VoiceCraft, replace 127.0.0.1 with the address of the VoiceCraft server as seen from the BDS machine.
What happens after connect
After successful connection:
- the addon authenticates with VoiceCraft
- the world can create / update entities through McApi
- bind flow becomes available through
voicecraft:vcbind - effects UI and packet-driven state sync become available
At this stage the transport is connected, but each player still needs the VoiceCraft client and a working bind flow for proximity audio.
Recommended validation flow
- Start
VoiceCraft.Serverand confirmMcHttpConfig.Enabled = true. - Start BDS with the addon attached.
- Connect the world with
vcconnect. - Confirm no auth error is shown.
- Connect a VoiceCraft client to
VoiceCraftConfig.Port. - Use
voicecraft:vcbind <key>. - Move the player in game and confirm position updates affect proximity.
- Confirm other players can hear at the expected range.
Common issues
HttpListenerExceptionon Windows: you may neednetsh http add iplisten 127.0.0.1- container or VM networking:
use
http://0.0.0.0:9050/or the correct LAN address - hosting provider blocks outbound HTTP from BDS: this transport may not work there
- auth fails:
confirm the command uses
McHttpConfig.LoginToken, not theMcWssorMcTcptoken - addon loads but commands are missing: confirm both behavior and resource packs are attached to the world and BDS was restarted
- client connects but no proximity:
confirm bind flow,
PositioningType, and player position updates