Server Installation
VoiceCraft.Server is the standalone backend that accepts client voice traffic and exposes Minecraft-facing transports.
Use this page as the server setup path. By the end you should have a running server, a generated config, one Minecraft transport selected, and a clear next page for your Minecraft integration.
What the server actually includes
VoiceCraft server exposes multiple layers at once:
- VoiceCraft UDP voice server
McHttptransport for Bedrock integrationsMcWsstransport for websocket / command-tunnel Bedrock flowsMcTcptransport for Java-side bridges such asGeyserVoice
You can leave all of them enabled, or select transports at runtime.
Setup flow
- Download and extract the server for your platform.
- Run it once from the folder where you want to keep the config.
- Stop the process after
config/ServerProperties.jsonis generated. - Replace the generated login tokens.
- Enable the Minecraft transport that matches your topology.
- Set host bindings and firewall rules.
- Start the server again.
- Add the VoiceCraft UDP endpoint in the client.
- Connect the Minecraft side with the matching addon or plugin guide.
Prebuilt binary releases
The release page usually includes:
- Windows:
VoiceCraft.Server.Windows.x64.zip,x86,arm64 - Linux:
VoiceCraft.Server.Linux.x64.zip,arm,arm64
Download: Download Page
Windows
- Download
VoiceCraft.Server.Windows.<arch>.zip. - Extract the archive to a dedicated folder.
- Start the server from that folder:
./VoiceCraft.Server.exe
The first run creates config/ServerProperties.json. Keep this file with the server folder and do not delete it between restarts.
Linux
- Download
VoiceCraft.Server.Linux.<arch>.zip. - Extract the archive to a dedicated folder.
- Start the server from that folder:
chmod +x ./VoiceCraft.Server
./VoiceCraft.Server
The first run creates config/ServerProperties.json. Keep this file with the server folder and make sure it is included in backups.
After the first start
Stop the server and open config/ServerProperties.json before connecting Minecraft or players.
Do these edits first:
- Replace every generated shared token:
McHttpConfig.LoginTokenMcWssConfig.LoginTokenMcTcpConfig.LoginToken
- Pick one primary Minecraft transport:
- Bedrock Dedicated Server: enable
McHttpConfig - local Bedrock world: enable
McWssConfig - Java + Geyser/Floodgate: enable
McTcpConfig
- Bedrock Dedicated Server: enable
- Set the transport host:
- use
127.0.0.1when Minecraft runs on the same machine - use
0.0.0.0or a LAN/public address only when another machine must connect
- use
- Keep
VoiceCraftConfig.Portavailable for player clients. - Restart
VoiceCraft.Serverafter saving the config.
For all config fields, continue with First Server Run and ServerProperties.json.
Connect the rest of the stack
Once the server restarts cleanly:
- Install the VoiceCraft client for each player from the Download Page.
- Add a server entry in the client:
- host: your VoiceCraft server address
- port:
VoiceCraftConfig.Port, usually9050
- Follow the Minecraft guide for your chosen transport:
The server is not considered fully set up until the client connects and the Minecraft side authenticates with the same transport token.
macOS
There may not always be a prebuilt dedicated artifact, but the server can be built from source:
git clone https://github.com/AvionBlock/VoiceCraft.git
cd VoiceCraft/VoiceCraft.Server
dotnet restore
dotnet publish -c Release -r osx-arm64 -p:PublishSingleFile=true
For Intel macOS, replace osx-arm64 with osx-x64.
Docker / containers
Container images are referenced from the main repository README:
Container deployment is useful when:
- you want a dedicated service boundary
- you already run BDS / Java nodes in containers
- you want easier restart policies and logs
After the container starts, persist and edit the generated config/ServerProperties.json the same way you would for a normal binary install.
Recommended install layout
Example Linux layout:
/opt/voicecraft/
VoiceCraft.Server
config/
ServerProperties.json
Recommended practices:
- keep VoiceCraft in its own directory
- persist
config/ - back up
ServerProperties.json - do not mix multiple environments in the same folder
Ready checklist
Before opening the setup to players, confirm:
VoiceCraft.Serverstarts without config or port errors- all generated
LoginTokenvalues were replaced - only the transport you need is exposed
- client host and port match
VoiceCraftConfig.Port - Minecraft addon or plugin uses the matching transport token
- bind flow works in game
Run as systemd service (Linux)
Example /etc/systemd/system/voicecraft.service:
[Unit]
Description=VoiceCraft Server
After=network.target
[Service]
WorkingDirectory=/opt/voicecraft
ExecStart=/opt/voicecraft/VoiceCraft.Server
Restart=always
RestartSec=3
User=voicecraft
Group=voicecraft
[Install]
WantedBy=multi-user.target
Apply it:
sudo systemctl daemon-reload
sudo systemctl enable --now voicecraft
sudo systemctl status voicecraft
Build from source
See VoiceCraft repository and build for SDK and project details.
Minimal flow:
git clone https://github.com/AvionBlock/VoiceCraft.git
cd VoiceCraft
dotnet restore
dotnet build -c Release
dotnet run --project VoiceCraft.Server