Integration Recipes
These are practical deployment patterns for the most common VoiceCraft scenarios.
Scenario A: Bedrock Dedicated Server
Stack:
VoiceCraft.ServerVoiceCraft.Addon.Core.McHttp- VoiceCraft clients
Recommended config:
McHttpConfig.Enabled = trueMcWssConfig.Enabled = falseMcTcpConfig.Enabled = falseunless also needed
Flow:
- deploy
VoiceCraft.Server - secure
McHttpConfig.LoginToken - ensure BDS can reach
McHttpConfig.Hostname - install
Core.McHttp - run
voicecraft:vcconnect <hostname> <token> - validate
voicecraft:vcbind <key>
Scenario B: Local / singleplayer Bedrock world
Stack:
- local VoiceCraft stack
VoiceCraft.Addon.Core.McWss
Flow:
- enable
McWss - keep
DataTunnelCommand = voicecraft:data_tunnel - install
Core.McWss - use
/connect - run
voicecraft:vcconnect <token>
Scenario C: Direct Paper with GeyserVoice-managed runtime
Stack:
- Paper / Folia
GeyserVoice- plugin-managed VoiceCraft runtime
Flow:
- install
GeyserVoice - set
config.proxy.enabled = false - configure
config.voicecraft.login-token - enable
config.voicecraft.auto-start - reload and validate bind flow
This is the simplest Java-side setup when you want the plugin to run VoiceCraft under the hood.
Scenario D: Direct Paper with external VoiceCraft
Stack:
- Paper / Folia
GeyserVoice- externally managed
VoiceCraft.Server
Flow:
- enable
McTcpon VoiceCraft - set
host,port,login-tokenin GeyserVoice - disable plugin runtime management if not needed
- reload and validate connection
Scenario E: Velocity or Bungee network
Stack:
GeyserVoiceon proxyGeyserVoiceon backend Paper serversVoiceCraft.ServerwithMcTcp
Flow:
- configure the proxy as the VoiceCraft owner
- configure backend Paper nodes for proxy mode
- reload plugin on all nodes
- validate cross-server player movement
Minimal production config fragment
{
"VoiceCraftConfig": {
"Port": 9050,
"MaxClients": 250,
"PositioningType": 0
},
"McHttpConfig": {
"Enabled": true,
"LoginToken": "replace-with-strong-token",
"Hostname": "http://0.0.0.0:9050/",
"MaxClients": 10
},
"McTcpConfig": {
"Enabled": true,
"LoginToken": "replace-with-strong-token",
"Hostname": "0.0.0.0",
"Port": 9050,
"MaxClients": 10
},
"McWssConfig": {
"Enabled": false,
"LoginToken": "replace-with-strong-token",
"Hostname": "ws://0.0.0.0:9051/",
"DataTunnelCommand": "voicecraft:data_tunnel"
}
}
Troubleshooting order
- verify token match
- verify host / port reachability
- verify chosen transport is enabled
- verify addon or plugin topology matches the config
- only then investigate packet-level issues