Godot-voip is a Godot addon which makes it very easy to setup a real time voice chat system in your Godot game. This addon also includes a demo project.
- 2.x: Godot 3.2
- 3.x: Godot 3.3
(A high-level multiplayer peer is required.)
- Click on the AssetLib inside editor or go to the Godot Asset Library to download the latest release, or you can clone/download this repository to get the latest commit.
- Select the
addons/godot-voip
folder and move it into your Godot project. (Note: make sure the structure is stillres://addons/godot-voip
) - Go to project-settings/audio and enable audio input.
- Now go to the plugins tab also inside project-settings and enable the godot-voip plugin.
- Add either a
VoiceInstance
(one connection) or aVoiceOrchestrator
(more than 2 participants) node to your scene. - Set
$VoiceInstance.recording
or$VoiceOrchestrator.recording
totrue
and it will send your microphone input to connected participants.
- Go to the templates tab in the Godot Engine project manager and look for godot-voip, or go to the Godot Asset Library to manually download the latest release, or you can clone/download this repository to get the latest commit.
- Open downloaded project.
Users running godot-voip on macOS need to make sure the microphone format in macOS audio settings is equal to the mix-rate in Godot project-settings.
This node implements a single voice connection.
received_voice_data(data: PoolRealArray, from_id: int)
Emitted when voice data is received.sent_voice_data(data: PoolRealArray)
Emitted when recording and data is sent.
Type | Name | description |
---|---|---|
NodePath |
custom_voice_audio_stream_player | When used, the referenced AudioStreamPlayer will be used as output for incoming audio data. |
bool |
recording | If true, the VoiceInstance will process and send microhphone data to the other VoipInstance. |
bool |
listen | If true, the VoiceInstance will also play any microhphone data it records. |
float |
input_threshold | Value above which microhphone data will be sent. Set to 0 to disable. |
This node implements multiple voice connections. It will automatically spawn new VoiceInstances when a player connects to the server and will remove them again after they disconnect.
Interfacing with a VoiceOrchestrator
is the same as with a VoiceInstance
. Does not support a custom AudioStreamPlayer
.
created_instance(id: int)
Emitted when a newVoiceInstance
is created.removed_instance(id: int)
Emitted when aVoiceInstance
is removed.