VoiceCraft Ecosystem
VoiceCraft is not just one binary. It is a small ecosystem of repositories and runtime layers that can be combined in different ways.
The main idea is simple: players run VoiceCraft.Client, one backend runs or manages VoiceCraft.Server, and a Minecraft-side integration sends game state into the server. Which integration you choose depends on whether your Minecraft runtime is Bedrock, local Bedrock, direct Paper, or a proxy network.
Core repositories
| Repository | What it owns | Use it when |
|---|---|---|
VoiceCraft | client apps, standalone server, protocol, shared core code, Minecraft-facing transports | you need the core server/client runtime or want to build from source |
GeyserVoice | Java-side bridge for Paper, Velocity, and BungeeCord | you run Java, Geyser/Floodgate, or a proxy network |
VoiceCraft.Addon | Bedrock addon packages and scriptable McApi surface | you run Bedrock worlds or want custom addon behavior |
Deployment map
flowchart LR
A["VoiceCraft Client"] --> B["VoiceCraft UDP Server"]
C["Bedrock Addon (McHttp / McWss)"] --> D["Minecraft API Transport"]
D --> B
E["GeyserVoice (Paper / Proxy)"] --> F["McTcp Bridge"]
F --> B
The client and Minecraft integration do not connect through the same path. The client uses the VoiceCraft UDP endpoint. The Minecraft integration uses McHttp, McWss, or McTcp.
Typical stacks
Bedrock Dedicated Server
VoiceCraft.ServerVoiceCraft.Addon.Core.McHttp- VoiceCraft clients
- BDS script/module permissions needed by the addon
Use this for production Bedrock servers where BDS can reach an HTTP endpoint.
Local Bedrock world
- local VoiceCraft stack
VoiceCraft.Addon.Core.McWss- local
/connectwebsocket flow
Use this for singleplayer, demos, and addon testing.
Java server with Geyser / Floodgate
GeyserVoiceVoiceCraft.Server- optionally a managed runtime started by
GeyserVoiceitself McTcpas the VoiceCraft-facing bridge
Use this when Java-side server state is the source of player positions and bind flow.
Java proxy network
GeyserVoiceon proxyGeyserVoiceon backend Paper serversVoiceCraft.Serverreached throughMcTcp- backend nodes stream snapshots to the proxy
Use this when one proxy should own the central VoiceCraft connection for multiple backend servers.
Why multiple repos exist
VoiceCraftfocuses on the core voice platformGeyserVoicetranslates Java or proxy environments into VoiceCraft-compatible stateVoiceCraft.Addonexposes world automation, entity binding, and effect control on Bedrock
This split lets each project evolve around its runtime: C# client/server code in VoiceCraft, Java plugin code in GeyserVoice, and Bedrock script/addon code in VoiceCraft.Addon.
Choosing where to start
- New Bedrock Dedicated Server: start with Quick Start, then McHttp for BDS.
- Local Bedrock testing: start with McWss for Singleplayer Worlds.
- Java + Geyser/Floodgate: start with GeyserVoice.
- Custom Bedrock behavior: read VoiceCraft.Addon, then Addon API.