Available for all popular platforms
Paper, Folia, Fabric, Forge, and NeoForge servers are fully compatible with both Fabric and Forge clients.
To use voice chat, players must install the client-side mod for Fabric, Forge or NeoForge. Players without the mod can still join the server and play as usual – they just won't have access to voice chat features.

Assuming Plasmo Voice is installed on both client and the server.
Features



Client features
Audio Quality & Processing
- RNNoise noise reduction
- OpenAL sound engine with great 3D positioning
- Stereo audio sources
- Smooth volume transitions
Immersion & Realism
- Optional sound occlusion (muffles voices through blocks)
- Optional directional audio sources (quieter if the speaker is not facing you)
- Sound Physics Remastered compatibility with pv-addon-soundphysics
Controls & Interaction
- Adjustable voice chat distance
- Choose between Push to Talk or Voice Activation
- Hold RMB while looking at a player and use the scroll wheel to adjust their volume
Devices & UI
- Select input and output audio devices
- Configurable GUI icon positions
- Toggle player icon visibility
- Discord-like in-game overlay

Check out voice settings by pressing V. Make sure you have the right devices selected and your microphone is
working.
Server features
Audio & Performance
- Opus codec for low bandwidth usage and high audio quality
- Configurable voice distance
Moderation & Control
- Server-side muting via chat commands
- Option to kick players without the client mod installed
- Permissions support
- Vanish support
Compatibility & Networking
- Works in singleplayer and Open to LAN
- BungeeCord and Velocity support
Integration & Extensibility
- PlaceholderAPI support
- Advanced API
Security
- Encrypted voice communication
Server-side add-ons
Universal add-ons work on Fabric, Forge, NeoForge and Paper.
Also read: Types of Add-ons.
| Icon | Add-on | Description |
|---|---|---|
![]() |
pv-addon-groups | Create group voice chat channels. Keep talking with players far away |
![]() |
pv-addon-sculk | With this add-on, warden and sculk sensors are triggered with proximity voice chat |
![]() |
pv-addon-broadcast | Broadcast your voice to all players in the radius, world, server, or proxy |
![]() |
pv-addon-spectator | With this add-on, all players can hear spectators |
![]() |
pv-addon-whisper | By default, the whisper distance is half the current proximity distance |
![]() |
pv-addon-priority | Voice activation with a greater and configurable distance |
![]() |
pv-addon-lavaplayer-lib | Add-on bundled with LavaPlayer fork library required for some Plasmo Voice add-ons |
![]() |
Voiceless Survival | Mobs react to your voice. Hostile mobs follow the sound, animals run away Third-party add-on. Issues should be reported on the Voiceless Survival GitHub. |
![]() |
pv-addon-discs | Play audio from YouTube and other sources in Minecraft using music discs. Supports streaming and live streams (YouTube, Twitch) |
![]() |
Simple Voice Radio | Adds a radio block that lets players communicate over distances Third-party add-on. Issues should be reported on the Simple Voice Radio GitHub. |
Client add-ons
| Icon | Add-on | Description |
|---|---|---|
![]() |
pv-addon-soundphysics | Adds compatibility with Sound Physics Remastered. Plasmo Voice is affected by sound physics |
![]() |
pv-addon-replaymod | Fork of Replay Voice Chat that works with Plasmo Voice and allows recording voice chat with ReplayMod |
![]() |
pv-addon-flashback | With this add-on Plasmo Voice will be recorded in Flashback replays |
![]() |
Talking Heads | Scales player heads when they’re talking Third-party add-on. Issues should be reported on the Talking Heads GitHub. |
![]() |
Let Them Talk (LTT) | Lowers your music and other apps while someone is talking Third-party add-on. Issues should be reported on the Let Them Talk (LTT) GitHub. |
Download
Documentation
All Versions
+ Add Version| Name | Game version | Platforms | Published | Downloads | Actions |
|---|---|---|---|---|---|
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 |
This is a beta version, and it still requires testing, especially the voice playback changes.
If you encounter any issues, please report them on [GitHub](https://github.com/plasmoapp/plasmo-voice/issues) or [Discord](https://discord.gg/uueEqzwCJJ).
Versions 2.1.x and 2.2.x are protocol-compatible,
so there's no need to worry if server or client hasn't been updated to 2.2.x.
Dropped support for Forge and Minecraft versions below 1.21. Plasmo Voice now only supports Fabric and NeoForge on 1.21 and newer.
### Client
Volumetab now shows only source lines used in the last 5 minutes when there are more than 3 of them (Proximityalways shown). Can be toggled to show all via button next toSources Volume.- Entity icons are now rendered on any entity, not only on living entities.
- Display entities now show the icon even when they're empty, and their transformation is applied to the icon and audio position, so they can be used as an anchor for audio and icon.
- Improved voice playback:
- Fixed the start of the audio stream sometimes being cut off when you hear audio source for the first time.
- Fixed the last moment of audio stream sometimes being cut off.
- Fixed the end of audio stream sometimes being lost, or played late at the start of the next stream.
- Fixed a short piece of already played audio sometimes being repeated.
- Fixed a short silence in the middle of the audio stream with proximity sources when changing worlds.
- Removed
Adaptive Jitter Buffer, because it didn't work properly. - Activation settings in the client config are now stored by activation name instead of UUID.
- Fixed Opus
modeandmtu_sizefrom the server config being ignored by the native encoder (it always usedVOIP). - Fixed HUD icons and overlay not rendering when there are a lot of HUD layers on NeoForge. [#542](https://github.com/plasmoapp/plasmo-voice/issues/542)
- Fixed settings screen resetting its scroll position and search input when window is resized.
- Fixed overlay settings for source lines sometimes being reset on join.
- Fixed
ClientSourceLine#getVolumereturning the max volume instead of the actual volume.
### Server
- Commands now use Brigadier:
/vmutenow requires duration before reason:/vmute <player> permanent <reason>instead of/vmute <player> <reason>./vmutenow rejects invalid durations (0,10x, overflowing values,utimestamps in the past) instead of treating them as part of the reason and muting permanently./vmuteand/vunmutenow accept target selectors, e.g./vmute @a[distance=..10] 5m./vunmutenow accepts the UUID of a muted player even when their name can't be resolved./vrcnow uses actual command executor as reconnect target, so/execute as <player> run vrcwill reconnect<player>.- Updated slib to 2.1.0, which breaks addons that use:
McCommandManager#registerwith Brigadier commands. Register them withMcBrigadierRegistryfromMcBrigadierCommandsRegisterEventlistener instead.MessageTextConverter. UseMcTextMessage.of(component)instead.- Added vanish support, supported mods: [Melius Vanish](https://www.curseforge.com/minecraft/mc-mods/meliusvanish) on Fabric and [Vanishmod](https://www.curseforge.com/minecraft/mc-mods/vanishmod) on NeoForge.
- Added optional SO_REUSEPORT support (
[voice.reuse_port]inconfig.toml, Linux only). When enabled, multiple sockets on separate threads share the voice port instead of one. - Number of UDP threads can now be set with
-Dplasmovoice.udp_threads(default: CPU cores * 2). - UDP server now copies fewer buffers, batches socket writes and doesn't create packet events when nothing listens to them.
- In our benchmark, one socket now sends ~1.2x more packets than 2.1.x before it starts dropping, and allocates ~10x less memory per sent packet.
- With
reuse_port, 100 players speaking at the same spot (~500k outgoing packets/s) are handled without loss on 4 cores. - Fixed Plasmo Voice permissions not being visible to permission mods (e.g. LuckPerms) on NeoForge.
- Fixed Opus
modeandmtu_sizefrom the config being ignored by the native encoder (it always usedVOIP).
This is a beta version, and it still requires testing, especially the voice playback changes.
If you encounter any issues, please report them on [GitHub](https://github.com/plasmoapp/plasmo-voice/issues) or [Discord](https://discord.gg/uueEqzwCJJ).
Versions 2.1.x and 2.2.x are protocol-compatible,
so there's no need to worry if server or client hasn't been updated to 2.2.x.
Dropped support for Forge and Minecraft versions below 1.21. Plasmo Voice now only supports Fabric and NeoForge on 1.21 and newer.
### Client
Volumetab now shows only source lines used in the last 5 minutes when there are more than 3 of them (Proximityalways shown). Can be toggled to show all via button next toSources Volume.- Entity icons are now rendered on any entity, not only on living entities.
- Display entities now show the icon even when they're empty, and their transformation is applied to the icon and audio position, so they can be used as an anchor for audio and icon.
- Improved voice playback:
- Fixed the start of the audio stream sometimes being cut off when you hear audio source for the first time.
- Fixed the last moment of audio stream sometimes being cut off.
- Fixed the end of audio stream sometimes being lost, or played late at the start of the next stream.
- Fixed a short piece of already played audio sometimes being repeated.
- Fixed a short silence in the middle of the audio stream with proximity sources when changing worlds.
- Removed
Adaptive Jitter Buffer, because it didn't work properly. - Activation settings in the client config are now stored by activation name instead of UUID.
- Fixed Opus
modeandmtu_sizefrom the server config being ignored by the native encoder (it always usedVOIP). - Fixed HUD icons and overlay not rendering when there are a lot of HUD layers on NeoForge. [#542](https://github.com/plasmoapp/plasmo-voice/issues/542)
- Fixed settings screen resetting its scroll position and search input when window is resized.
- Fixed overlay settings for source lines sometimes being reset on join.
- Fixed
ClientSourceLine#getVolumereturning the max volume instead of the actual volume.
### Server
- Commands now use Brigadier:
/vmutenow requires duration before reason:/vmute <player> permanent <reason>instead of/vmute <player> <reason>./vmutenow rejects invalid durations (0,10x, overflowing values,utimestamps in the past) instead of treating them as part of the reason and muting permanently./vmuteand/vunmutenow accept target selectors, e.g./vmute @a[distance=..10] 5m./vunmutenow accepts the UUID of a muted player even when their name can't be resolved./vrcnow uses actual command executor as reconnect target, so/execute as <player> run vrcwill reconnect<player>.- Updated slib to 2.1.0, which breaks addons that use:
McCommandManager#registerwith Brigadier commands. Register them withMcBrigadierRegistryfromMcBrigadierCommandsRegisterEventlistener instead.MessageTextConverter. UseMcTextMessage.of(component)instead.- Added vanish support, supported mods: [Melius Vanish](https://www.curseforge.com/minecraft/mc-mods/meliusvanish) on Fabric and [Vanishmod](https://www.curseforge.com/minecraft/mc-mods/vanishmod) on NeoForge.
- Added optional SO_REUSEPORT support (
[voice.reuse_port]inconfig.toml, Linux only). When enabled, multiple sockets on separate threads share the voice port instead of one. - Number of UDP threads can now be set with
-Dplasmovoice.udp_threads(default: CPU cores * 2). - UDP server now copies fewer buffers, batches socket writes and doesn't create packet events when nothing listens to them.
- In our benchmark, one socket now sends ~1.2x more packets than 2.1.x before it starts dropping, and allocates ~10x less memory per sent packet.
- With
reuse_port, 100 players speaking at the same spot (~500k outgoing packets/s) are handled without loss on 4 cores. - Fixed Plasmo Voice permissions not being visible to permission mods (e.g. LuckPerms) on NeoForge.
- Fixed Opus
modeandmtu_sizefrom the config being ignored by the native encoder (it always usedVOIP).
This is a beta version, and it still requires testing, especially the voice playback changes.
If you encounter any issues, please report them on [GitHub](https://github.com/plasmoapp/plasmo-voice/issues) or [Discord](https://discord.gg/uueEqzwCJJ).
Versions 2.1.x and 2.2.x are protocol-compatible,
so there's no need to worry if server or client hasn't been updated to 2.2.x.
Dropped support for Forge and Minecraft versions below 1.21. Plasmo Voice now only supports Fabric and NeoForge on 1.21 and newer.
### Client
Volumetab now shows only source lines used in the last 5 minutes when there are more than 3 of them (Proximityalways shown). Can be toggled to show all via button next toSources Volume.- Entity icons are now rendered on any entity, not only on living entities.
- Display entities now show the icon even when they're empty, and their transformation is applied to the icon and audio position, so they can be used as an anchor for audio and icon.
- Improved voice playback:
- Fixed the start of the audio stream sometimes being cut off when you hear audio source for the first time.
- Fixed the last moment of audio stream sometimes being cut off.
- Fixed the end of audio stream sometimes being lost, or played late at the start of the next stream.
- Fixed a short piece of already played audio sometimes being repeated.
- Fixed a short silence in the middle of the audio stream with proximity sources when changing worlds.
- Removed
Adaptive Jitter Buffer, because it didn't work properly. - Activation settings in the client config are now stored by activation name instead of UUID.
- Fixed Opus
modeandmtu_sizefrom the server config being ignored by the native encoder (it always usedVOIP). - Fixed HUD icons and overlay not rendering when there are a lot of HUD layers on NeoForge. [#542](https://github.com/plasmoapp/plasmo-voice/issues/542)
- Fixed settings screen resetting its scroll position and search input when window is resized.
- Fixed overlay settings for source lines sometimes being reset on join.
- Fixed
ClientSourceLine#getVolumereturning the max volume instead of the actual volume.
### Server
- Commands now use Brigadier:
/vmutenow requires duration before reason:/vmute <player> permanent <reason>instead of/vmute <player> <reason>./vmutenow rejects invalid durations (0,10x, overflowing values,utimestamps in the past) instead of treating them as part of the reason and muting permanently./vmuteand/vunmutenow accept target selectors, e.g./vmute @a[distance=..10] 5m./vunmutenow accepts the UUID of a muted player even when their name can't be resolved./vrcnow uses actual command executor as reconnect target, so/execute as <player> run vrcwill reconnect<player>.- Updated slib to 2.1.0, which breaks addons that use:
McCommandManager#registerwith Brigadier commands. Register them withMcBrigadierRegistryfromMcBrigadierCommandsRegisterEventlistener instead.MessageTextConverter. UseMcTextMessage.of(component)instead.- Added vanish support, supported mods: [Melius Vanish](https://www.curseforge.com/minecraft/mc-mods/meliusvanish) on Fabric and [Vanishmod](https://www.curseforge.com/minecraft/mc-mods/vanishmod) on NeoForge.
- Added optional SO_REUSEPORT support (
[voice.reuse_port]inconfig.toml, Linux only). When enabled, multiple sockets on separate threads share the voice port instead of one. - Number of UDP threads can now be set with
-Dplasmovoice.udp_threads(default: CPU cores * 2). - UDP server now copies fewer buffers, batches socket writes and doesn't create packet events when nothing listens to them.
- In our benchmark, one socket now sends ~1.2x more packets than 2.1.x before it starts dropping, and allocates ~10x less memory per sent packet.
- With
reuse_port, 100 players speaking at the same spot (~500k outgoing packets/s) are handled without loss on 4 cores. - Fixed Plasmo Voice permissions not being visible to permission mods (e.g. LuckPerms) on NeoForge.
- Fixed Opus
modeandmtu_sizefrom the config being ignored by the native encoder (it always usedVOIP).
This is a beta version, and it still requires testing, especially the voice playback changes.
If you encounter any issues, please report them on [GitHub](https://github.com/plasmoapp/plasmo-voice/issues) or [Discord](https://discord.gg/uueEqzwCJJ).
Versions 2.1.x and 2.2.x are protocol-compatible,
so there's no need to worry if server or client hasn't been updated to 2.2.x.
Dropped support for Forge and Minecraft versions below 1.21. Plasmo Voice now only supports Fabric and NeoForge on 1.21 and newer.
### Client
Volumetab now shows only source lines used in the last 5 minutes when there are more than 3 of them (Proximityalways shown). Can be toggled to show all via button next toSources Volume.- Entity icons are now rendered on any entity, not only on living entities.
- Display entities now show the icon even when they're empty, and their transformation is applied to the icon and audio position, so they can be used as an anchor for audio and icon.
- Improved voice playback:
- Fixed the start of the audio stream sometimes being cut off when you hear audio source for the first time.
- Fixed the last moment of audio stream sometimes being cut off.
- Fixed the end of audio stream sometimes being lost, or played late at the start of the next stream.
- Fixed a short piece of already played audio sometimes being repeated.
- Fixed a short silence in the middle of the audio stream with proximity sources when changing worlds.
- Removed
Adaptive Jitter Buffer, because it didn't work properly. - Activation settings in the client config are now stored by activation name instead of UUID.
- Fixed Opus
modeandmtu_sizefrom the server config being ignored by the native encoder (it always usedVOIP). - Fixed HUD icons and overlay not rendering when there are a lot of HUD layers on NeoForge. [#542](https://github.com/plasmoapp/plasmo-voice/issues/542)
- Fixed settings screen resetting its scroll position and search input when window is resized.
- Fixed overlay settings for source lines sometimes being reset on join.
- Fixed
ClientSourceLine#getVolumereturning the max volume instead of the actual volume.
### Server
- Commands now use Brigadier:
/vmutenow requires duration before reason:/vmute <player> permanent <reason>instead of/vmute <player> <reason>./vmutenow rejects invalid durations (0,10x, overflowing values,utimestamps in the past) instead of treating them as part of the reason and muting permanently./vmuteand/vunmutenow accept target selectors, e.g./vmute @a[distance=..10] 5m./vunmutenow accepts the UUID of a muted player even when their name can't be resolved./vrcnow uses actual command executor as reconnect target, so/execute as <player> run vrcwill reconnect<player>.- Updated slib to 2.1.0, which breaks addons that use:
McCommandManager#registerwith Brigadier commands. Register them withMcBrigadierRegistryfromMcBrigadierCommandsRegisterEventlistener instead.MessageTextConverter. UseMcTextMessage.of(component)instead.- Added vanish support, supported mods: [Melius Vanish](https://www.curseforge.com/minecraft/mc-mods/meliusvanish) on Fabric and [Vanishmod](https://www.curseforge.com/minecraft/mc-mods/vanishmod) on NeoForge.
- Added optional SO_REUSEPORT support (
[voice.reuse_port]inconfig.toml, Linux only). When enabled, multiple sockets on separate threads share the voice port instead of one. - Number of UDP threads can now be set with
-Dplasmovoice.udp_threads(default: CPU cores * 2). - UDP server now copies fewer buffers, batches socket writes and doesn't create packet events when nothing listens to them.
- In our benchmark, one socket now sends ~1.2x more packets than 2.1.x before it starts dropping, and allocates ~10x less memory per sent packet.
- With
reuse_port, 100 players speaking at the same spot (~500k outgoing packets/s) are handled without loss on 4 cores. - Fixed Plasmo Voice permissions not being visible to permission mods (e.g. LuckPerms) on NeoForge.
- Fixed Opus
modeandmtu_sizefrom the config being ignored by the native encoder (it always usedVOIP).
This is a beta version, and it still requires testing, especially the voice playback changes.
If you encounter any issues, please report them on [GitHub](https://github.com/plasmoapp/plasmo-voice/issues) or [Discord](https://discord.gg/uueEqzwCJJ).
Versions 2.1.x and 2.2.x are protocol-compatible,
so there's no need to worry if server or client hasn't been updated to 2.2.x.
Dropped support for Forge and Minecraft versions below 1.21. Plasmo Voice now only supports Fabric and NeoForge on 1.21 and newer.
### Client
Volumetab now shows only source lines used in the last 5 minutes when there are more than 3 of them (Proximityalways shown). Can be toggled to show all via button next toSources Volume.- Entity icons are now rendered on any entity, not only on living entities.
- Display entities now show the icon even when they're empty, and their transformation is applied to the icon and audio position, so they can be used as an anchor for audio and icon.
- Improved voice playback:
- Fixed the start of the audio stream sometimes being cut off when you hear audio source for the first time.
- Fixed the last moment of audio stream sometimes being cut off.
- Fixed the end of audio stream sometimes being lost, or played late at the start of the next stream.
- Fixed a short piece of already played audio sometimes being repeated.
- Fixed a short silence in the middle of the audio stream with proximity sources when changing worlds.
- Removed
Adaptive Jitter Buffer, because it didn't work properly. - Activation settings in the client config are now stored by activation name instead of UUID.
- Fixed Opus
modeandmtu_sizefrom the server config being ignored by the native encoder (it always usedVOIP). - Fixed HUD icons and overlay not rendering when there are a lot of HUD layers on NeoForge. [#542](https://github.com/plasmoapp/plasmo-voice/issues/542)
- Fixed settings screen resetting its scroll position and search input when window is resized.
- Fixed overlay settings for source lines sometimes being reset on join.
- Fixed
ClientSourceLine#getVolumereturning the max volume instead of the actual volume.
### Server
- Commands now use Brigadier:
/vmutenow requires duration before reason:/vmute <player> permanent <reason>instead of/vmute <player> <reason>./vmutenow rejects invalid durations (0,10x, overflowing values,utimestamps in the past) instead of treating them as part of the reason and muting permanently./vmuteand/vunmutenow accept target selectors, e.g./vmute @a[distance=..10] 5m./vunmutenow accepts the UUID of a muted player even when their name can't be resolved./vrcnow uses actual command executor as reconnect target, so/execute as <player> run vrcwill reconnect<player>.- Updated slib to 2.1.0, which breaks addons that use:
McCommandManager#registerwith Brigadier commands. Register them withMcBrigadierRegistryfromMcBrigadierCommandsRegisterEventlistener instead.MessageTextConverter. UseMcTextMessage.of(component)instead.- Added vanish support, supported mods: [Melius Vanish](https://www.curseforge.com/minecraft/mc-mods/meliusvanish) on Fabric and [Vanishmod](https://www.curseforge.com/minecraft/mc-mods/vanishmod) on NeoForge.
- Added optional SO_REUSEPORT support (
[voice.reuse_port]inconfig.toml, Linux only). When enabled, multiple sockets on separate threads share the voice port instead of one. - Number of UDP threads can now be set with
-Dplasmovoice.udp_threads(default: CPU cores * 2). - UDP server now copies fewer buffers, batches socket writes and doesn't create packet events when nothing listens to them.
- In our benchmark, one socket now sends ~1.2x more packets than 2.1.x before it starts dropping, and allocates ~10x less memory per sent packet.
- With
reuse_port, 100 players speaking at the same spot (~500k outgoing packets/s) are handled without loss on 4 cores. - Fixed Plasmo Voice permissions not being visible to permission mods (e.g. LuckPerms) on NeoForge.
- Fixed Opus
modeandmtu_sizefrom the config being ignored by the native encoder (it always usedVOIP).
This is a beta version, and it still requires testing, especially the voice playback changes.
If you encounter any issues, please report them on [GitHub](https://github.com/plasmoapp/plasmo-voice/issues) or [Discord](https://discord.gg/uueEqzwCJJ).
Versions 2.1.x and 2.2.x are protocol-compatible,
so there's no need to worry if server or client hasn't been updated to 2.2.x.
Dropped support for Forge and Minecraft versions below 1.21. Plasmo Voice now only supports Fabric and NeoForge on 1.21 and newer.
### Client
Volumetab now shows only source lines used in the last 5 minutes when there are more than 3 of them (Proximityalways shown). Can be toggled to show all via button next toSources Volume.- Entity icons are now rendered on any entity, not only on living entities.
- Display entities now show the icon even when they're empty, and their transformation is applied to the icon and audio position, so they can be used as an anchor for audio and icon.
- Improved voice playback:
- Fixed the start of the audio stream sometimes being cut off when you hear audio source for the first time.
- Fixed the last moment of audio stream sometimes being cut off.
- Fixed the end of audio stream sometimes being lost, or played late at the start of the next stream.
- Fixed a short piece of already played audio sometimes being repeated.
- Fixed a short silence in the middle of the audio stream with proximity sources when changing worlds.
- Removed
Adaptive Jitter Buffer, because it didn't work properly. - Activation settings in the client config are now stored by activation name instead of UUID.
- Fixed Opus
modeandmtu_sizefrom the server config being ignored by the native encoder (it always usedVOIP). - Fixed HUD icons and overlay not rendering when there are a lot of HUD layers on NeoForge. [#542](https://github.com/plasmoapp/plasmo-voice/issues/542)
- Fixed settings screen resetting its scroll position and search input when window is resized.
- Fixed overlay settings for source lines sometimes being reset on join.
- Fixed
ClientSourceLine#getVolumereturning the max volume instead of the actual volume.
### Server
- Commands now use Brigadier:
/vmutenow requires duration before reason:/vmute <player> permanent <reason>instead of/vmute <player> <reason>./vmutenow rejects invalid durations (0,10x, overflowing values,utimestamps in the past) instead of treating them as part of the reason and muting permanently./vmuteand/vunmutenow accept target selectors, e.g./vmute @a[distance=..10] 5m./vunmutenow accepts the UUID of a muted player even when their name can't be resolved./vrcnow uses actual command executor as reconnect target, so/execute as <player> run vrcwill reconnect<player>.- Updated slib to 2.1.0, which breaks addons that use:
McCommandManager#registerwith Brigadier commands. Register them withMcBrigadierRegistryfromMcBrigadierCommandsRegisterEventlistener instead.MessageTextConverter. UseMcTextMessage.of(component)instead.- Added vanish support, supported mods: [Melius Vanish](https://www.curseforge.com/minecraft/mc-mods/meliusvanish) on Fabric and [Vanishmod](https://www.curseforge.com/minecraft/mc-mods/vanishmod) on NeoForge.
- Added optional SO_REUSEPORT support (
[voice.reuse_port]inconfig.toml, Linux only). When enabled, multiple sockets on separate threads share the voice port instead of one. - Number of UDP threads can now be set with
-Dplasmovoice.udp_threads(default: CPU cores * 2). - UDP server now copies fewer buffers, batches socket writes and doesn't create packet events when nothing listens to them.
- In our benchmark, one socket now sends ~1.2x more packets than 2.1.x before it starts dropping, and allocates ~10x less memory per sent packet.
- With
reuse_port, 100 players speaking at the same spot (~500k outgoing packets/s) are handled without loss on 4 cores. - Fixed Plasmo Voice permissions not being visible to permission mods (e.g. LuckPerms) on NeoForge.
- Fixed Opus
modeandmtu_sizefrom the config being ignored by the native encoder (it always usedVOIP).
This is a beta version, and it still requires testing, especially the voice playback changes.
If you encounter any issues, please report them on [GitHub](https://github.com/plasmoapp/plasmo-voice/issues) or [Discord](https://discord.gg/uueEqzwCJJ).
Versions 2.1.x and 2.2.x are protocol-compatible,
so there's no need to worry if server or client hasn't been updated to 2.2.x.
Dropped support for Forge and Minecraft versions below 1.21. Plasmo Voice now only supports Fabric and NeoForge on 1.21 and newer.
### Client
Volumetab now shows only source lines used in the last 5 minutes when there are more than 3 of them (Proximityalways shown). Can be toggled to show all via button next toSources Volume.- Entity icons are now rendered on any entity, not only on living entities.
- Display entities now show the icon even when they're empty, and their transformation is applied to the icon and audio position, so they can be used as an anchor for audio and icon.
- Improved voice playback:
- Fixed the start of the audio stream sometimes being cut off when you hear audio source for the first time.
- Fixed the last moment of audio stream sometimes being cut off.
- Fixed the end of audio stream sometimes being lost, or played late at the start of the next stream.
- Fixed a short piece of already played audio sometimes being repeated.
- Fixed a short silence in the middle of the audio stream with proximity sources when changing worlds.
- Removed
Adaptive Jitter Buffer, because it didn't work properly. - Activation settings in the client config are now stored by activation name instead of UUID.
- Fixed Opus
modeandmtu_sizefrom the server config being ignored by the native encoder (it always usedVOIP). - Fixed HUD icons and overlay not rendering when there are a lot of HUD layers on NeoForge. [#542](https://github.com/plasmoapp/plasmo-voice/issues/542)
- Fixed settings screen resetting its scroll position and search input when window is resized.
- Fixed overlay settings for source lines sometimes being reset on join.
- Fixed
ClientSourceLine#getVolumereturning the max volume instead of the actual volume.
### Server
- Commands now use Brigadier:
/vmutenow requires duration before reason:/vmute <player> permanent <reason>instead of/vmute <player> <reason>./vmutenow rejects invalid durations (0,10x, overflowing values,utimestamps in the past) instead of treating them as part of the reason and muting permanently./vmuteand/vunmutenow accept target selectors, e.g./vmute @a[distance=..10] 5m./vunmutenow accepts the UUID of a muted player even when their name can't be resolved./vrcnow uses actual command executor as reconnect target, so/execute as <player> run vrcwill reconnect<player>.- Updated slib to 2.1.0, which breaks addons that use:
McCommandManager#registerwith Brigadier commands. Register them withMcBrigadierRegistryfromMcBrigadierCommandsRegisterEventlistener instead.MessageTextConverter. UseMcTextMessage.of(component)instead.- Added vanish support, supported mods: [Melius Vanish](https://www.curseforge.com/minecraft/mc-mods/meliusvanish) on Fabric and [Vanishmod](https://www.curseforge.com/minecraft/mc-mods/vanishmod) on NeoForge.
- Added optional SO_REUSEPORT support (
[voice.reuse_port]inconfig.toml, Linux only). When enabled, multiple sockets on separate threads share the voice port instead of one. - Number of UDP threads can now be set with
-Dplasmovoice.udp_threads(default: CPU cores * 2). - UDP server now copies fewer buffers, batches socket writes and doesn't create packet events when nothing listens to them.
- In our benchmark, one socket now sends ~1.2x more packets than 2.1.x before it starts dropping, and allocates ~10x less memory per sent packet.
- With
reuse_port, 100 players speaking at the same spot (~500k outgoing packets/s) are handled without loss on 4 cores. - Fixed Plasmo Voice permissions not being visible to permission mods (e.g. LuckPerms) on NeoForge.
- Fixed Opus
modeandmtu_sizefrom the config being ignored by the native encoder (it always usedVOIP).
This is a beta version, and it still requires testing, especially the voice playback changes.
If you encounter any issues, please report them on [GitHub](https://github.com/plasmoapp/plasmo-voice/issues) or [Discord](https://discord.gg/uueEqzwCJJ).
Versions 2.1.x and 2.2.x are protocol-compatible,
so there's no need to worry if server or client hasn't been updated to 2.2.x.
Dropped support for Forge and Minecraft versions below 1.21. Plasmo Voice now only supports Fabric and NeoForge on 1.21 and newer.
### Client
Volumetab now shows only source lines used in the last 5 minutes when there are more than 3 of them (Proximityalways shown). Can be toggled to show all via button next toSources Volume.- Entity icons are now rendered on any entity, not only on living entities.
- Display entities now show the icon even when they're empty, and their transformation is applied to the icon and audio position, so they can be used as an anchor for audio and icon.
- Improved voice playback:
- Fixed the start of the audio stream sometimes being cut off when you hear audio source for the first time.
- Fixed the last moment of audio stream sometimes being cut off.
- Fixed the end of audio stream sometimes being lost, or played late at the start of the next stream.
- Fixed a short piece of already played audio sometimes being repeated.
- Fixed a short silence in the middle of the audio stream with proximity sources when changing worlds.
- Removed
Adaptive Jitter Buffer, because it didn't work properly. - Activation settings in the client config are now stored by activation name instead of UUID.
- Fixed Opus
modeandmtu_sizefrom the server config being ignored by the native encoder (it always usedVOIP). - Fixed HUD icons and overlay not rendering when there are a lot of HUD layers on NeoForge. [#542](https://github.com/plasmoapp/plasmo-voice/issues/542)
- Fixed settings screen resetting its scroll position and search input when window is resized.
- Fixed overlay settings for source lines sometimes being reset on join.
- Fixed
ClientSourceLine#getVolumereturning the max volume instead of the actual volume.
### Server
- Commands now use Brigadier:
/vmutenow requires duration before reason:/vmute <player> permanent <reason>instead of/vmute <player> <reason>./vmutenow rejects invalid durations (0,10x, overflowing values,utimestamps in the past) instead of treating them as part of the reason and muting permanently./vmuteand/vunmutenow accept target selectors, e.g./vmute @a[distance=..10] 5m./vunmutenow accepts the UUID of a muted player even when their name can't be resolved./vrcnow uses actual command executor as reconnect target, so/execute as <player> run vrcwill reconnect<player>.- Updated slib to 2.1.0, which breaks addons that use:
McCommandManager#registerwith Brigadier commands. Register them withMcBrigadierRegistryfromMcBrigadierCommandsRegisterEventlistener instead.MessageTextConverter. UseMcTextMessage.of(component)instead.- Added vanish support, supported mods: [Melius Vanish](https://www.curseforge.com/minecraft/mc-mods/meliusvanish) on Fabric and [Vanishmod](https://www.curseforge.com/minecraft/mc-mods/vanishmod) on NeoForge.
- Added optional SO_REUSEPORT support (
[voice.reuse_port]inconfig.toml, Linux only). When enabled, multiple sockets on separate threads share the voice port instead of one. - Number of UDP threads can now be set with
-Dplasmovoice.udp_threads(default: CPU cores * 2). - UDP server now copies fewer buffers, batches socket writes and doesn't create packet events when nothing listens to them.
- In our benchmark, one socket now sends ~1.2x more packets than 2.1.x before it starts dropping, and allocates ~10x less memory per sent packet.
- With
reuse_port, 100 players speaking at the same spot (~500k outgoing packets/s) are handled without loss on 4 cores. - Fixed Plasmo Voice permissions not being visible to permission mods (e.g. LuckPerms) on NeoForge.
- Fixed Opus
modeandmtu_sizefrom the config being ignored by the native encoder (it always usedVOIP).
This is a beta version, and it still requires testing, especially the voice playback changes.
If you encounter any issues, please report them on [GitHub](https://github.com/plasmoapp/plasmo-voice/issues) or [Discord](https://discord.gg/uueEqzwCJJ).
Versions 2.1.x and 2.2.x are protocol-compatible,
so there's no need to worry if server or client hasn't been updated to 2.2.x.
Dropped support for Forge and Minecraft versions below 1.21. Plasmo Voice now only supports Fabric and NeoForge on 1.21 and newer.
### Client
Volumetab now shows only source lines used in the last 5 minutes when there are more than 3 of them (Proximityalways shown). Can be toggled to show all via button next toSources Volume.- Entity icons are now rendered on any entity, not only on living entities.
- Display entities now show the icon even when they're empty, and their transformation is applied to the icon and audio position, so they can be used as an anchor for audio and icon.
- Improved voice playback:
- Fixed the start of the audio stream sometimes being cut off when you hear audio source for the first time.
- Fixed the last moment of audio stream sometimes being cut off.
- Fixed the end of audio stream sometimes being lost, or played late at the start of the next stream.
- Fixed a short piece of already played audio sometimes being repeated.
- Fixed a short silence in the middle of the audio stream with proximity sources when changing worlds.
- Removed
Adaptive Jitter Buffer, because it didn't work properly. - Activation settings in the client config are now stored by activation name instead of UUID.
- Fixed Opus
modeandmtu_sizefrom the server config being ignored by the native encoder (it always usedVOIP). - Fixed HUD icons and overlay not rendering when there are a lot of HUD layers on NeoForge. [#542](https://github.com/plasmoapp/plasmo-voice/issues/542)
- Fixed settings screen resetting its scroll position and search input when window is resized.
- Fixed overlay settings for source lines sometimes being reset on join.
- Fixed
ClientSourceLine#getVolumereturning the max volume instead of the actual volume.
### Server
- Commands now use Brigadier:
/vmutenow requires duration before reason:/vmute <player> permanent <reason>instead of/vmute <player> <reason>./vmutenow rejects invalid durations (0,10x, overflowing values,utimestamps in the past) instead of treating them as part of the reason and muting permanently./vmuteand/vunmutenow accept target selectors, e.g./vmute @a[distance=..10] 5m./vunmutenow accepts the UUID of a muted player even when their name can't be resolved./vrcnow uses actual command executor as reconnect target, so/execute as <player> run vrcwill reconnect<player>.- Updated slib to 2.1.0, which breaks addons that use:
McCommandManager#registerwith Brigadier commands. Register them withMcBrigadierRegistryfromMcBrigadierCommandsRegisterEventlistener instead.MessageTextConverter. UseMcTextMessage.of(component)instead.- Added vanish support, supported mods: [Melius Vanish](https://www.curseforge.com/minecraft/mc-mods/meliusvanish) on Fabric and [Vanishmod](https://www.curseforge.com/minecraft/mc-mods/vanishmod) on NeoForge.
- Added optional SO_REUSEPORT support (
[voice.reuse_port]inconfig.toml, Linux only). When enabled, multiple sockets on separate threads share the voice port instead of one. - Number of UDP threads can now be set with
-Dplasmovoice.udp_threads(default: CPU cores * 2). - UDP server now copies fewer buffers, batches socket writes and doesn't create packet events when nothing listens to them.
- In our benchmark, one socket now sends ~1.2x more packets than 2.1.x before it starts dropping, and allocates ~10x less memory per sent packet.
- With
reuse_port, 100 players speaking at the same spot (~500k outgoing packets/s) are handled without loss on 4 cores. - Fixed Plasmo Voice permissions not being visible to permission mods (e.g. LuckPerms) on NeoForge.
- Fixed Opus
modeandmtu_sizefrom the config being ignored by the native encoder (it always usedVOIP).
This is a beta version, and it still requires testing, especially the voice playback changes.
If you encounter any issues, please report them on [GitHub](https://github.com/plasmoapp/plasmo-voice/issues) or [Discord](https://discord.gg/uueEqzwCJJ).
Versions 2.1.x and 2.2.x are protocol-compatible,
so there's no need to worry if server or client hasn't been updated to 2.2.x.
Dropped support for Forge and Minecraft versions below 1.21. Plasmo Voice now only supports Fabric and NeoForge on 1.21 and newer.
### Client
Volumetab now shows only source lines used in the last 5 minutes when there are more than 3 of them (Proximityalways shown). Can be toggled to show all via button next toSources Volume.- Entity icons are now rendered on any entity, not only on living entities.
- Display entities now show the icon even when they're empty, and their transformation is applied to the icon and audio position, so they can be used as an anchor for audio and icon.
- Improved voice playback:
- Fixed the start of the audio stream sometimes being cut off when you hear audio source for the first time.
- Fixed the last moment of audio stream sometimes being cut off.
- Fixed the end of audio stream sometimes being lost, or played late at the start of the next stream.
- Fixed a short piece of already played audio sometimes being repeated.
- Fixed a short silence in the middle of the audio stream with proximity sources when changing worlds.
- Removed
Adaptive Jitter Buffer, because it didn't work properly. - Activation settings in the client config are now stored by activation name instead of UUID.
- Fixed Opus
modeandmtu_sizefrom the server config being ignored by the native encoder (it always usedVOIP). - Fixed HUD icons and overlay not rendering when there are a lot of HUD layers on NeoForge. [#542](https://github.com/plasmoapp/plasmo-voice/issues/542)
- Fixed settings screen resetting its scroll position and search input when window is resized.
- Fixed overlay settings for source lines sometimes being reset on join.
- Fixed
ClientSourceLine#getVolumereturning the max volume instead of the actual volume.
### Server
- Commands now use Brigadier:
/vmutenow requires duration before reason:/vmute <player> permanent <reason>instead of/vmute <player> <reason>./vmutenow rejects invalid durations (0,10x, overflowing values,utimestamps in the past) instead of treating them as part of the reason and muting permanently./vmuteand/vunmutenow accept target selectors, e.g./vmute @a[distance=..10] 5m./vunmutenow accepts the UUID of a muted player even when their name can't be resolved./vrcnow uses actual command executor as reconnect target, so/execute as <player> run vrcwill reconnect<player>.- Updated slib to 2.1.0, which breaks addons that use:
McCommandManager#registerwith Brigadier commands. Register them withMcBrigadierRegistryfromMcBrigadierCommandsRegisterEventlistener instead.MessageTextConverter. UseMcTextMessage.of(component)instead.- Added vanish support, supported mods: [Melius Vanish](https://www.curseforge.com/minecraft/mc-mods/meliusvanish) on Fabric and [Vanishmod](https://www.curseforge.com/minecraft/mc-mods/vanishmod) on NeoForge.
- Added optional SO_REUSEPORT support (
[voice.reuse_port]inconfig.toml, Linux only). When enabled, multiple sockets on separate threads share the voice port instead of one. - Number of UDP threads can now be set with
-Dplasmovoice.udp_threads(default: CPU cores * 2). - UDP server now copies fewer buffers, batches socket writes and doesn't create packet events when nothing listens to them.
- In our benchmark, one socket now sends ~1.2x more packets than 2.1.x before it starts dropping, and allocates ~10x less memory per sent packet.
- With
reuse_port, 100 players speaking at the same spot (~500k outgoing packets/s) are handled without loss on 4 cores. - Fixed Plasmo Voice permissions not being visible to permission mods (e.g. LuckPerms) on NeoForge.
- Fixed Opus
modeandmtu_sizefrom the config being ignored by the native encoder (it always usedVOIP).
This is a beta version, and it still requires testing, especially the voice playback changes.
If you encounter any issues, please report them on [GitHub](https://github.com/plasmoapp/plasmo-voice/issues) or [Discord](https://discord.gg/uueEqzwCJJ).
Versions 2.1.x and 2.2.x are protocol-compatible,
so there's no need to worry if server or client hasn't been updated to 2.2.x.
Dropped support for Forge and Minecraft versions below 1.21. Plasmo Voice now only supports Fabric and NeoForge on 1.21 and newer.
### Client
Volumetab now shows only source lines used in the last 5 minutes when there are more than 3 of them (Proximityalways shown). Can be toggled to show all via button next toSources Volume.- Entity icons are now rendered on any entity, not only on living entities.
- Display entities now show the icon even when they're empty, and their transformation is applied to the icon and audio position, so they can be used as an anchor for audio and icon.
- Improved voice playback:
- Fixed the start of the audio stream sometimes being cut off when you hear audio source for the first time.
- Fixed the last moment of audio stream sometimes being cut off.
- Fixed the end of audio stream sometimes being lost, or played late at the start of the next stream.
- Fixed a short piece of already played audio sometimes being repeated.
- Fixed a short silence in the middle of the audio stream with proximity sources when changing worlds.
- Removed
Adaptive Jitter Buffer, because it didn't work properly. - Activation settings in the client config are now stored by activation name instead of UUID.
- Fixed Opus
modeandmtu_sizefrom the server config being ignored by the native encoder (it always usedVOIP). - Fixed HUD icons and overlay not rendering when there are a lot of HUD layers on NeoForge. [#542](https://github.com/plasmoapp/plasmo-voice/issues/542)
- Fixed settings screen resetting its scroll position and search input when window is resized.
- Fixed overlay settings for source lines sometimes being reset on join.
- Fixed
ClientSourceLine#getVolumereturning the max volume instead of the actual volume.
### Server
- Commands now use Brigadier:
/vmutenow requires duration before reason:/vmute <player> permanent <reason>instead of/vmute <player> <reason>./vmutenow rejects invalid durations (0,10x, overflowing values,utimestamps in the past) instead of treating them as part of the reason and muting permanently./vmuteand/vunmutenow accept target selectors, e.g./vmute @a[distance=..10] 5m./vunmutenow accepts the UUID of a muted player even when their name can't be resolved./vrcnow uses actual command executor as reconnect target, so/execute as <player> run vrcwill reconnect<player>.- Updated slib to 2.1.0, which breaks addons that use:
McCommandManager#registerwith Brigadier commands. Register them withMcBrigadierRegistryfromMcBrigadierCommandsRegisterEventlistener instead.MessageTextConverter. UseMcTextMessage.of(component)instead.- Added vanish support, supported mods: [Melius Vanish](https://www.curseforge.com/minecraft/mc-mods/meliusvanish) on Fabric and [Vanishmod](https://www.curseforge.com/minecraft/mc-mods/vanishmod) on NeoForge.
- Added optional SO_REUSEPORT support (
[voice.reuse_port]inconfig.toml, Linux only). When enabled, multiple sockets on separate threads share the voice port instead of one. - Number of UDP threads can now be set with
-Dplasmovoice.udp_threads(default: CPU cores * 2). - UDP server now copies fewer buffers, batches socket writes and doesn't create packet events when nothing listens to them.
- In our benchmark, one socket now sends ~1.2x more packets than 2.1.x before it starts dropping, and allocates ~10x less memory per sent packet.
- With
reuse_port, 100 players speaking at the same spot (~500k outgoing packets/s) are handled without loss on 4 cores. - Fixed Plasmo Voice permissions not being visible to permission mods (e.g. LuckPerms) on NeoForge.
- Fixed Opus
modeandmtu_sizefrom the config being ignored by the native encoder (it always usedVOIP).
This is a beta version, and it still requires testing, especially the voice playback changes.
If you encounter any issues, please report them on [GitHub](https://github.com/plasmoapp/plasmo-voice/issues) or [Discord](https://discord.gg/uueEqzwCJJ).
Versions 2.1.x and 2.2.x are protocol-compatible,
so there's no need to worry if server or client hasn't been updated to 2.2.x.
Dropped support for Forge and Minecraft versions below 1.21. Plasmo Voice now only supports Fabric and NeoForge on 1.21 and newer.
### Client
Volumetab now shows only source lines used in the last 5 minutes when there are more than 3 of them (Proximityalways shown). Can be toggled to show all via button next toSources Volume.- Entity icons are now rendered on any entity, not only on living entities.
- Display entities now show the icon even when they're empty, and their transformation is applied to the icon and audio position, so they can be used as an anchor for audio and icon.
- Improved voice playback:
- Fixed the start of the audio stream sometimes being cut off when you hear audio source for the first time.
- Fixed the last moment of audio stream sometimes being cut off.
- Fixed the end of audio stream sometimes being lost, or played late at the start of the next stream.
- Fixed a short piece of already played audio sometimes being repeated.
- Fixed a short silence in the middle of the audio stream with proximity sources when changing worlds.
- Removed
Adaptive Jitter Buffer, because it didn't work properly. - Activation settings in the client config are now stored by activation name instead of UUID.
- Fixed Opus
modeandmtu_sizefrom the server config being ignored by the native encoder (it always usedVOIP). - Fixed HUD icons and overlay not rendering when there are a lot of HUD layers on NeoForge. [#542](https://github.com/plasmoapp/plasmo-voice/issues/542)
- Fixed settings screen resetting its scroll position and search input when window is resized.
- Fixed overlay settings for source lines sometimes being reset on join.
- Fixed
ClientSourceLine#getVolumereturning the max volume instead of the actual volume.
### Server
- Commands now use Brigadier:
/vmutenow requires duration before reason:/vmute <player> permanent <reason>instead of/vmute <player> <reason>./vmutenow rejects invalid durations (0,10x, overflowing values,utimestamps in the past) instead of treating them as part of the reason and muting permanently./vmuteand/vunmutenow accept target selectors, e.g./vmute @a[distance=..10] 5m./vunmutenow accepts the UUID of a muted player even when their name can't be resolved./vrcnow uses actual command executor as reconnect target, so/execute as <player> run vrcwill reconnect<player>.- Updated slib to 2.1.0, which breaks addons that use:
McCommandManager#registerwith Brigadier commands. Register them withMcBrigadierRegistryfromMcBrigadierCommandsRegisterEventlistener instead.MessageTextConverter. UseMcTextMessage.of(component)instead.- Added vanish support, supported mods: [Melius Vanish](https://www.curseforge.com/minecraft/mc-mods/meliusvanish) on Fabric and [Vanishmod](https://www.curseforge.com/minecraft/mc-mods/vanishmod) on NeoForge.
- Added optional SO_REUSEPORT support (
[voice.reuse_port]inconfig.toml, Linux only). When enabled, multiple sockets on separate threads share the voice port instead of one. - Number of UDP threads can now be set with
-Dplasmovoice.udp_threads(default: CPU cores * 2). - UDP server now copies fewer buffers, batches socket writes and doesn't create packet events when nothing listens to them.
- In our benchmark, one socket now sends ~1.2x more packets than 2.1.x before it starts dropping, and allocates ~10x less memory per sent packet.
- With
reuse_port, 100 players speaking at the same spot (~500k outgoing packets/s) are handled without loss on 4 cores. - Fixed Plasmo Voice permissions not being visible to permission mods (e.g. LuckPerms) on NeoForge.
- Fixed Opus
modeandmtu_sizefrom the config being ignored by the native encoder (it always usedVOIP).
This is a beta version, and it still requires testing, especially the voice playback changes.
If you encounter any issues, please report them on [GitHub](https://github.com/plasmoapp/plasmo-voice/issues) or [Discord](https://discord.gg/uueEqzwCJJ).
Versions 2.1.x and 2.2.x are protocol-compatible,
so there's no need to worry if server or client hasn't been updated to 2.2.x.
Dropped support for Forge and Minecraft versions below 1.21. Plasmo Voice now only supports Fabric and NeoForge on 1.21 and newer.
### Client
Volumetab now shows only source lines used in the last 5 minutes when there are more than 3 of them (Proximityalways shown). Can be toggled to show all via button next toSources Volume.- Entity icons are now rendered on any entity, not only on living entities.
- Display entities now show the icon even when they're empty, and their transformation is applied to the icon and audio position, so they can be used as an anchor for audio and icon.
- Improved voice playback:
- Fixed the start of the audio stream sometimes being cut off when you hear audio source for the first time.
- Fixed the last moment of audio stream sometimes being cut off.
- Fixed the end of audio stream sometimes being lost, or played late at the start of the next stream.
- Fixed a short piece of already played audio sometimes being repeated.
- Fixed a short silence in the middle of the audio stream with proximity sources when changing worlds.
- Removed
Adaptive Jitter Buffer, because it didn't work properly. - Activation settings in the client config are now stored by activation name instead of UUID.
- Fixed Opus
modeandmtu_sizefrom the server config being ignored by the native encoder (it always usedVOIP). - Fixed HUD icons and overlay not rendering when there are a lot of HUD layers on NeoForge. [#542](https://github.com/plasmoapp/plasmo-voice/issues/542)
- Fixed settings screen resetting its scroll position and search input when window is resized.
- Fixed overlay settings for source lines sometimes being reset on join.
- Fixed
ClientSourceLine#getVolumereturning the max volume instead of the actual volume.
### Server
- Commands now use Brigadier:
/vmutenow requires duration before reason:/vmute <player> permanent <reason>instead of/vmute <player> <reason>./vmutenow rejects invalid durations (0,10x, overflowing values,utimestamps in the past) instead of treating them as part of the reason and muting permanently./vmuteand/vunmutenow accept target selectors, e.g./vmute @a[distance=..10] 5m./vunmutenow accepts the UUID of a muted player even when their name can't be resolved./vrcnow uses actual command executor as reconnect target, so/execute as <player> run vrcwill reconnect<player>.- Updated slib to 2.1.0, which breaks addons that use:
McCommandManager#registerwith Brigadier commands. Register them withMcBrigadierRegistryfromMcBrigadierCommandsRegisterEventlistener instead.MessageTextConverter. UseMcTextMessage.of(component)instead.- Added vanish support, supported mods: [Melius Vanish](https://www.curseforge.com/minecraft/mc-mods/meliusvanish) on Fabric and [Vanishmod](https://www.curseforge.com/minecraft/mc-mods/vanishmod) on NeoForge.
- Added optional SO_REUSEPORT support (
[voice.reuse_port]inconfig.toml, Linux only). When enabled, multiple sockets on separate threads share the voice port instead of one. - Number of UDP threads can now be set with
-Dplasmovoice.udp_threads(default: CPU cores * 2). - UDP server now copies fewer buffers, batches socket writes and doesn't create packet events when nothing listens to them.
- In our benchmark, one socket now sends ~1.2x more packets than 2.1.x before it starts dropping, and allocates ~10x less memory per sent packet.
- With
reuse_port, 100 players speaking at the same spot (~500k outgoing packets/s) are handled without loss on 4 cores. - Fixed Plasmo Voice permissions not being visible to permission mods (e.g. LuckPerms) on NeoForge.
- Fixed Opus
modeandmtu_sizefrom the config being ignored by the native encoder (it always usedVOIP).
This is a beta version, and it still requires testing, especially the voice playback changes.
If you encounter any issues, please report them on [GitHub](https://github.com/plasmoapp/plasmo-voice/issues) or [Discord](https://discord.gg/uueEqzwCJJ).
Versions 2.1.x and 2.2.x are protocol-compatible,
so there's no need to worry if server or client hasn't been updated to 2.2.x.
Dropped support for Forge and Minecraft versions below 1.21. Plasmo Voice now only supports Fabric and NeoForge on 1.21 and newer.
### Client
Volumetab now shows only source lines used in the last 5 minutes when there are more than 3 of them (Proximityalways shown). Can be toggled to show all via button next toSources Volume.- Entity icons are now rendered on any entity, not only on living entities.
- Display entities now show the icon even when they're empty, and their transformation is applied to the icon and audio position, so they can be used as an anchor for audio and icon.
- Improved voice playback:
- Fixed the start of the audio stream sometimes being cut off when you hear audio source for the first time.
- Fixed the last moment of audio stream sometimes being cut off.
- Fixed the end of audio stream sometimes being lost, or played late at the start of the next stream.
- Fixed a short piece of already played audio sometimes being repeated.
- Fixed a short silence in the middle of the audio stream with proximity sources when changing worlds.
- Removed
Adaptive Jitter Buffer, because it didn't work properly. - Activation settings in the client config are now stored by activation name instead of UUID.
- Fixed Opus
modeandmtu_sizefrom the server config being ignored by the native encoder (it always usedVOIP). - Fixed HUD icons and overlay not rendering when there are a lot of HUD layers on NeoForge. [#542](https://github.com/plasmoapp/plasmo-voice/issues/542)
- Fixed settings screen resetting its scroll position and search input when window is resized.
- Fixed overlay settings for source lines sometimes being reset on join.
- Fixed
ClientSourceLine#getVolumereturning the max volume instead of the actual volume.
### Server
- Commands now use Brigadier:
/vmutenow requires duration before reason:/vmute <player> permanent <reason>instead of/vmute <player> <reason>./vmutenow rejects invalid durations (0,10x, overflowing values,utimestamps in the past) instead of treating them as part of the reason and muting permanently./vmuteand/vunmutenow accept target selectors, e.g./vmute @a[distance=..10] 5m./vunmutenow accepts the UUID of a muted player even when their name can't be resolved./vrcnow uses actual command executor as reconnect target, so/execute as <player> run vrcwill reconnect<player>.- Updated slib to 2.1.0, which breaks addons that use:
McCommandManager#registerwith Brigadier commands. Register them withMcBrigadierRegistryfromMcBrigadierCommandsRegisterEventlistener instead.MessageTextConverter. UseMcTextMessage.of(component)instead.- Added vanish support, supported mods: [Melius Vanish](https://www.curseforge.com/minecraft/mc-mods/meliusvanish) on Fabric and [Vanishmod](https://www.curseforge.com/minecraft/mc-mods/vanishmod) on NeoForge.
- Added optional SO_REUSEPORT support (
[voice.reuse_port]inconfig.toml, Linux only). When enabled, multiple sockets on separate threads share the voice port instead of one. - Number of UDP threads can now be set with
-Dplasmovoice.udp_threads(default: CPU cores * 2). - UDP server now copies fewer buffers, batches socket writes and doesn't create packet events when nothing listens to them.
- In our benchmark, one socket now sends ~1.2x more packets than 2.1.x before it starts dropping, and allocates ~10x less memory per sent packet.
- With
reuse_port, 100 players speaking at the same spot (~500k outgoing packets/s) are handled without loss on 4 cores. - Fixed Plasmo Voice permissions not being visible to permission mods (e.g. LuckPerms) on NeoForge.
- Fixed Opus
modeandmtu_sizefrom the config being ignored by the native encoder (it always usedVOIP).
This is a beta version, and it still requires testing, especially the voice playback changes.
If you encounter any issues, please report them on [GitHub](https://github.com/plasmoapp/plasmo-voice/issues) or [Discord](https://discord.gg/uueEqzwCJJ).
Versions 2.1.x and 2.2.x are protocol-compatible,
so there's no need to worry if server or client hasn't been updated to 2.2.x.
Dropped support for Forge and Minecraft versions below 1.21. Plasmo Voice now only supports Fabric and NeoForge on 1.21 and newer.
### Client
Volumetab now shows only source lines used in the last 5 minutes when there are more than 3 of them (Proximityalways shown). Can be toggled to show all via button next toSources Volume.- Entity icons are now rendered on any entity, not only on living entities.
- Display entities now show the icon even when they're empty, and their transformation is applied to the icon and audio position, so they can be used as an anchor for audio and icon.
- Improved voice playback:
- Fixed the start of the audio stream sometimes being cut off when you hear audio source for the first time.
- Fixed the last moment of audio stream sometimes being cut off.
- Fixed the end of audio stream sometimes being lost, or played late at the start of the next stream.
- Fixed a short piece of already played audio sometimes being repeated.
- Fixed a short silence in the middle of the audio stream with proximity sources when changing worlds.
- Removed
Adaptive Jitter Buffer, because it didn't work properly. - Activation settings in the client config are now stored by activation name instead of UUID.
- Fixed Opus
modeandmtu_sizefrom the server config being ignored by the native encoder (it always usedVOIP). - Fixed HUD icons and overlay not rendering when there are a lot of HUD layers on NeoForge. [#542](https://github.com/plasmoapp/plasmo-voice/issues/542)
- Fixed settings screen resetting its scroll position and search input when window is resized.
- Fixed overlay settings for source lines sometimes being reset on join.
- Fixed
ClientSourceLine#getVolumereturning the max volume instead of the actual volume.
### Server
- Commands now use Brigadier:
/vmutenow requires duration before reason:/vmute <player> permanent <reason>instead of/vmute <player> <reason>./vmutenow rejects invalid durations (0,10x, overflowing values,utimestamps in the past) instead of treating them as part of the reason and muting permanently./vmuteand/vunmutenow accept target selectors, e.g./vmute @a[distance=..10] 5m./vunmutenow accepts the UUID of a muted player even when their name can't be resolved./vrcnow uses actual command executor as reconnect target, so/execute as <player> run vrcwill reconnect<player>.- Updated slib to 2.1.0, which breaks addons that use:
McCommandManager#registerwith Brigadier commands. Register them withMcBrigadierRegistryfromMcBrigadierCommandsRegisterEventlistener instead.MessageTextConverter. UseMcTextMessage.of(component)instead.- Added vanish support, supported mods: [Melius Vanish](https://www.curseforge.com/minecraft/mc-mods/meliusvanish) on Fabric and [Vanishmod](https://www.curseforge.com/minecraft/mc-mods/vanishmod) on NeoForge.
- Added optional SO_REUSEPORT support (
[voice.reuse_port]inconfig.toml, Linux only). When enabled, multiple sockets on separate threads share the voice port instead of one. - Number of UDP threads can now be set with
-Dplasmovoice.udp_threads(default: CPU cores * 2). - UDP server now copies fewer buffers, batches socket writes and doesn't create packet events when nothing listens to them.
- In our benchmark, one socket now sends ~1.2x more packets than 2.1.x before it starts dropping, and allocates ~10x less memory per sent packet.
- With
reuse_port, 100 players speaking at the same spot (~500k outgoing packets/s) are handled without loss on 4 cores. - Fixed Plasmo Voice permissions not being visible to permission mods (e.g. LuckPerms) on NeoForge.
- Fixed Opus
modeandmtu_sizefrom the config being ignored by the native encoder (it always usedVOIP).
This is a beta version, and it still requires testing, especially the separate per-player sockets to backend servers.
If you encounter any issues, please report them on [GitHub](https://github.com/plasmoapp/plasmo-voice/issues) or [Discord](https://discord.gg/uueEqzwCJJ).
Versions 2.1.x and 2.2.x are protocol-compatible,
so there's no need to worry if server or client hasn't been updated to 2.2.x.
- Java 21 is now required.
- Proxy now opens a separate socket to the backend server for each player instead of sending backend traffic through the public voice socket, which was a bottleneck under high load. [#535](https://github.com/plasmoapp/plasmo-voice/pull/535)
- Updated slib to 2.1.0, which breaks addons that use:
McCommandManager#registerwith Brigadier commands. Register them withMcBrigadierRegistryfromMcBrigadierCommandsRegisterEventlistener instead.MessageTextConverter. UseMcTextMessage.of(component)instead.- Added optional SO_REUSEPORT support (
[reuse_port]inconfig.toml, Linux only). When enabled, multiple sockets on separate threads share the voice port instead of one. - Number of UDP threads can now be set with
-Dplasmovoice.udp_threads(default: CPU cores * 2). - UDP server now copies fewer buffers, batches socket writes and forwards backend packets without decoding them.
This is a beta version, and it still requires testing, especially the separate per-player sockets to backend servers.
If you encounter any issues, please report them on [GitHub](https://github.com/plasmoapp/plasmo-voice/issues) or [Discord](https://discord.gg/uueEqzwCJJ).
Versions 2.1.x and 2.2.x are protocol-compatible,
so there's no need to worry if server or client hasn't been updated to 2.2.x.
- Java 21 is now required.
- Proxy now opens a separate socket to the backend server for each player instead of sending backend traffic through the public voice socket, which was a bottleneck under high load. [#535](https://github.com/plasmoapp/plasmo-voice/pull/535)
- Updated slib to 2.1.0, which breaks addons that use:
McCommandManager#registerwith Brigadier commands. Register them withMcBrigadierRegistryfromMcBrigadierCommandsRegisterEventlistener instead.MessageTextConverter. UseMcTextMessage.of(component)instead.- Added optional SO_REUSEPORT support (
[reuse_port]inconfig.toml, Linux only). When enabled, multiple sockets on separate threads share the voice port instead of one. - Number of UDP threads can now be set with
-Dplasmovoice.udp_threads(default: CPU cores * 2). - UDP server now copies fewer buffers, batches socket writes and forwards backend packets without decoding them.
This is a beta version, and it still requires testing.
If you encounter any issues, please report them on [GitHub](https://github.com/plasmoapp/plasmo-voice/issues) or [Discord](https://discord.gg/uueEqzwCJJ).
Versions 2.1.x and 2.2.x are protocol-compatible,
so there's no need to worry if server or client hasn't been updated to 2.2.x.
- Plasmo Voice is now a Paper plugin. Spigot is no longer supported, use Paper or Folia 1.21+.
- Commands now use Brigadier:
/vmutenow requires duration before reason:/vmute <player> permanent <reason>instead of/vmute <player> <reason>./vmutenow rejects invalid durations (0,10x, overflowing values,utimestamps in the past) instead of treating them as part of the reason and muting permanently./vmuteand/vunmutenow accept target selectors, e.g./vmute @a[distance=..10] 5m./vunmutenow accepts the UUID of a muted player even when their name can't be resolved./vrcnow uses actual command executor as reconnect target, so/execute as <player> run vrcwill reconnect<player>.- Commands can now be used in datapack functions without macros.
- Updated slib to 2.1.0, which breaks addons that use:
McCommandManager#registerwith Brigadier commands. Register them withMcBrigadierRegistryfromMcBrigadierCommandsRegisterEventlistener instead.MessageTextConverter. UseMcTextMessage.of(component)instead.- Vanish is now alwayts handled through Paper's player visibility API, so direct SuperVanish/PremiumVanish integration was removed.
- Added optional SO_REUSEPORT support (
[voice.reuse_port]inconfig.toml, Linux only). When enabled, multiple sockets on separate threads share the voice port instead of one. - Number of UDP threads can now be set with
-Dplasmovoice.udp_threads(default: CPU cores * 2). - Number of UDP threads no longer follows
netty-threadsfromspigot.yml. - UDP server now copies fewer buffers, batches socket writes and doesn't create packet events when nothing listens to them.
- In our benchmark, one socket now sends ~1.2x more packets than 2.1.x before it starts dropping, and allocates ~10x less memory per sent packet.
- With
reuse_port, 100 players speaking at the same spot (~500k outgoing packets/s) are handled without loss on 4 cores. - Fixed Opus
modeandmtu_sizefrom the config being ignored by the native encoder (it always usedVOIP).
- Fixed game not closing properly and crashing when closing the game with ReplayMod recording running. [#539](https://github.com/plasmoapp/plasmo-voice/issues/539)
### Server
- Update checker will no longer suggest an update when none of the newer versions have a changelog.
- Fixed game not closing properly and crashing when closing the game with ReplayMod recording running. [#539](https://github.com/plasmoapp/plasmo-voice/issues/539)
### Server
- Update checker will no longer suggest an update when none of the newer versions have a changelog.
- Fixed game not closing properly and crashing when closing the game with ReplayMod recording running. [#539](https://github.com/plasmoapp/plasmo-voice/issues/539)
### Server
- Update checker will no longer suggest an update when none of the newer versions have a changelog.
- Fixed game not closing properly and crashing when closing the game with ReplayMod recording running. [#539](https://github.com/plasmoapp/plasmo-voice/issues/539)
### Server
- Update checker will no longer suggest an update when none of the newer versions have a changelog.
- Fixed game not closing properly and crashing when closing the game with ReplayMod recording running. [#539](https://github.com/plasmoapp/plasmo-voice/issues/539)
### Server
- Update checker will no longer suggest an update when none of the newer versions have a changelog.
- Fixed game not closing properly and crashing when closing the game with ReplayMod recording running. [#539](https://github.com/plasmoapp/plasmo-voice/issues/539)
### Server
- Update checker will no longer suggest an update when none of the newer versions have a changelog.
- Fixed game not closing properly and crashing when closing the game with ReplayMod recording running. [#539](https://github.com/plasmoapp/plasmo-voice/issues/539)
### Server
- Update checker will no longer suggest an update when none of the newer versions have a changelog.
- Fixed game not closing properly and crashing when closing the game with ReplayMod recording running. [#539](https://github.com/plasmoapp/plasmo-voice/issues/539)
### Server
- Update checker will no longer suggest an update when none of the newer versions have a changelog.
- Fixed game not closing properly and crashing when closing the game with ReplayMod recording running. [#539](https://github.com/plasmoapp/plasmo-voice/issues/539)
### Server
- Update checker will no longer suggest an update when none of the newer versions have a changelog.
- Fixed game not closing properly and crashing when closing the game with ReplayMod recording running. [#539](https://github.com/plasmoapp/plasmo-voice/issues/539)
### Server
- Update checker will no longer suggest an update when none of the newer versions have a changelog.
- Fixed game not closing properly and crashing when closing the game with ReplayMod recording running. [#539](https://github.com/plasmoapp/plasmo-voice/issues/539)
### Server
- Update checker will no longer suggest an update when none of the newer versions have a changelog.
- Fixed game not closing properly and crashing when closing the game with ReplayMod recording running. [#539](https://github.com/plasmoapp/plasmo-voice/issues/539)
### Server
- Update checker will no longer suggest an update when none of the newer versions have a changelog.














