SocketJack.Unity.Voice 2026.11.4

dotnet add package SocketJack.Unity.Voice --version 2026.11.4
                    
NuGet\Install-Package SocketJack.Unity.Voice -Version 2026.11.4
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="SocketJack.Unity.Voice" Version="2026.11.4" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="SocketJack.Unity.Voice" Version="2026.11.4" />
                    
Directory.Packages.props
<PackageReference Include="SocketJack.Unity.Voice" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add SocketJack.Unity.Voice --version 2026.11.4
                    
#r "nuget: SocketJack.Unity.Voice, 2026.11.4"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package SocketJack.Unity.Voice@2026.11.4
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=SocketJack.Unity.Voice&version=2026.11.4
                    
Install as a Cake Addin
#tool nuget:?package=SocketJack.Unity.Voice&version=2026.11.4
                    
Install as a Cake Tool

SocketJack.Unity.Voice is an optional voice module. The base multiplayer runtime does not depend on an audio codec or microphone APIs. This module uses the managed Concentus Opus codec; no native codec binaries or loader are included.

Add SocketJackVoiceManager to the same scene object as NetworkManager. Keep microphone capture off until the player explicitly chooses to start it; call StartCapture()/StopCapture(). Push-to-talk defaults to V with the legacy Input Manager. With the new Input System, disable keyboard polling and feed SetPushToTalk(bool) from an action. An optional TransmitObject selects the locally owned player; otherwise the first ready owned object is used. Call SubmitPcm for a game-provided mono capture adapter (320 float samples at 16 kHz per 20 ms frame); it does not open a microphone.

On the authoritative server, assign MembershipProvider before starting the session. SocialVoiceMembershipProvider maps authenticated game peers to account IDs, online presences and SocialService channel membership/ignore/mute permissions. Unknown identities are denied. AllowTrustedGuests is an explicit alternative for a trusted local/demo session and supports only proximity/global audiences. It does not authenticate accounts. Never enable it as a substitute for Internet authentication.

The speaker must own a current, visible network object. Object authority epochs and per-peer view tokens revoke in-flight voice after ownership/visibility changes. Proximity listeners also pass the game's visibility check and trusted position range. Party, raid, community and whisper audiences come from the membership provider. Global is an authorized broadcast audience, subject to configured fan-out limits. The module never accepts a sender account or recipient list from a player packet.

NetworkVoiceServer and NetworkVoiceClient also work without Unity. Pump the voice server's Update(monotonicSeconds) once before the associated session's Update. Reserve custom message IDs 60010/60011, unreliable delivery on channel 3. Each voice stream has its own sequence/replay history; the shared transport channel does not sequence different speakers against one another. TCP and WebSocket transports still inherit reliable stream head-of-line behavior.

Defaults are 20 ms mono Opus at 16 kHz/24 kbps, a 256-byte encoded-frame limit, 32 active playback speakers, a 10-frame jitter window with three initial buffering frames, a two-second stream timeout, 55 packets/second per speaker with a burst of ten, at most 64 recipients per frame and 512 forwarded frames per update. Configure VoiceOptions on portable services when the deployment requires different bounds. A larger global audience needs an explicitly sized relay/fan-out budget. Congestion drops voice rather than retaining a stale backlog. Native Opus encoding/decoding and jitter work run in a bounded background codec pump; Unity APIs remain on the main thread and the audio callback resamples from a fixed PCM ring. Single-threaded WebGL uses bounded main-thread codec work and the supplied Web Audio bridge.

Portable codecs accept 8/12/16/24/48 kHz PCM. The 24 kHz adapter converts through the verified managed 48 kHz codec path while retaining standard 20 ms Opus packets. Microphone and speaker hardware, capture permissions and platform policies depend on the target platform. Native Unity capture uses Microphone. Add SocketJackBrowserMicrophone for the supplied WebGL getUserMedia/Web Audio adapter; adding it never requests a microphone. Actual Unity 2022.3 WebGL checks use synthetic browser input and verify PTT, audio DSP, stop and logout cleanup; Unity 6 WebGL and physical devices remain unverified. Gameplay UDP/TCP voice is plaintext unless the transport is separately secured. Use a secure transport or authenticated WSS audio bridge when confidentiality is required.

The fixture under tools/Unity.Physics2D.Acceptance is separate tooling. It is not included in this optional module or injected into customer scenes. Voice acceptance fixtures use synthetic PCM and do not record the developer's microphone.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
.NET Core netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on SocketJack.Unity.Voice:

Package Downloads
SocketJack.Unity.Voice.Web

Optional authenticated WSS account voice bridge for linked SocketJack.Unity.Web deployments.

SocketJack.Unity.Voice.Web.Client

Optional bounded authenticated WSS voice client for SocketJack.Unity, without server or database dependencies.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2026.11.4 51 11/5/2026