VoiceCraft
Ecosystem

VoiceCraft.Addon (Bedrock Addon)

Repository: AvionBlock/VoiceCraft.Addon

VoiceCraft.Addon (Bedrock Addon)

Repository: AvionBlock/VoiceCraft.Addon

This repository contains 3 practical packages:

  1. Basic — ready-to-use addon with bind flow and effects UI.
  2. Core.McHttp — McHttp transport (typical for BDS).
  3. Core.McWss — command tunnel transport for singleplayer/world use.

API namespace

Across packages:

  • VoiceCraft.Namespace = "voicecraft"

Addon commands

Basic

  • voicecraft:vcbind <binding_key>
    • permission: Any
    • binds a player to VoiceCraft network entity.
  • voicecraft:vcsettings
    • permission: GameDirectors
    • opens effects/player settings UI.

Core.McHttp

  • voicecraft:vcconnect <hostname> <token>
    • permission: GameDirectors
    • connects world to McHttp endpoint.

Core.McWss

  • voicecraft:vcconnect <token>
    • permission: Host
    • connects to McWss.
  • voicecraft:data_tunnel [data]
    • permission: Host
    • bi-directional packet tunnel (|-separated chunks, around 1000 chars per response batch).

Bind flow details (Basic)

From BindingManager.ts:

  1. A new network entity receives a random 5-char binding key.
  2. Entity description is updated to: Welcome! Your binding key is ....
  3. Player runs voicecraft:vcbind <key>.
  4. Entity is mapped to player; name/description are updated.
  5. On player leave, entity is unbound and gets a new key.

Script events emitted:

  • voicecraft:onPlayerBind
  • voicecraft:onPlayerUnbind

Useful for custom world automation.

Effects UI (Basic)

voicecraft:vcsettings currently exposes:

  • Visibility
  • Proximity
  • Directional
  • Proximity Echo
  • Echo
  • Proximity Muffle
  • Muffle

Effects are applied by bitmask through McApiSetEffectRequestPacket.

What to customize

  • Bind/unbind policy (tags, roles, game modes).
  • worldId/position/rotation update logic.
  • Staff UI forms (@minecraft/server-ui) for managing active bindings.

Known limitations in current code

  • Player action menu Kick in Basic is currently Not implemented.
  • Core.McWss stability heavily depends on command throughput and payload sizing limits.
  1. Enable McHttpConfig.Enabled = true on VoiceCraft.Server.
  2. Ensure McHttpConfig.Hostname is reachable from BDS.
  3. Get LoginToken from ServerProperties.json.
  4. Install Core.McHttp package.
  5. Run voicecraft:vcconnect <hostname> <token>.
  6. Validate bind with voicecraft:vcbind <key>.
  1. Enable McWss on VoiceCraft side.
  2. Install Core.McWss package.
  3. Run voicecraft:vcconnect <token>.
  4. Keep voicecraft:data_tunnel aligned with ServerProperties.json command name.
Copyright © 2026