/saltychat-fivem

FiveM implementation of Salty Chat (TeamSpeak 3 based Voice Plugin)

Primary LanguageC#GNU General Public License v3.0GPL-3.0

Salty Chat for FiveM

An example implementation of Salty Chat for FiveM OneSync and OneSync Infinity.

You can report bugs or make sugguestions via issues, or contribute via pull requests - we appreciate any contribution.
Join our Discord and start with Salty Chat!

Setup Steps

Before starting with the setup, make sure you have OneSync enabled and your server artifacts are up to date.

  1. Download the latest release and extract it into your resources
  2. Add start saltychat (and start saltyhud) into your server.cfg
  3. Open config.json and adjust the variables
  "VoiceEnabled": true,
  "ServerUniqueIdentifier": "NMjxHW5psWaLNmFh0+kjnQik7Qc=",
  "MinimumPluginVersion": "",
  "SoundPack": "default",
  "IngameChannelId" : 25,
  "IngameChannelPassword": "5V88FWWME615",
  "SwissChannelIds": [ 61, 62 ],
  1. (Optional) Change keybinds in config.json, see default values below
  2. (Optional) Look into our recommended TeamSpeak server settings

Attantion: CFX team implemented a NUI blacklist and blocked local (127.0.0.1 and localhost) WebSocket connections. If the clientside can't connect to the WebSocket, make sure that you can resolve lh.v10.network:

  1. Open Windows Command Prompt by searching cmd
  2. Execute nslookup lh.v10.network

If it resolved to 127.0.0.1 then your issue is probably somewhere else, if not then you can use e.g. Google DNS servers.

Config

Variable Type Description
VoiceRanges float[] Array of possible voice ranges
EnableVoiceRangeNotification bool Enables/disables a notification when chaning the voice range
VoiceRangeNotification string Text of the notification when changing the voice range, {voicerange} will be replaced by the voice range
IgnoreInvisiblePlayers bool Sets invisible players as distance culled to ignore them in proximity calculations
RadioType int Radio type which will be used for radio communication - see possible values
EnableRadioHardcoreMode bool Limits some radio functions like using the radio while swimming/diving and allows only one sender at a time
UltraShortRangeDistance float Maximum range of USR radio mode
ShortRangeDistance float Maximum range of SR radio mode
LongRangeDistace float Maximum range of LR radio mode
MegaphoneRange float Range of the megaphone (only available while driving a police car)
VariablePhoneDistortion bool Enables/disables variable phone distortion based on position of players
NamePattern string Naming schema of TeamSpeak clients, {serverid} will be replaced by the FiveM server ID of the client, {playername} by the name of the client and {guid} by a generated GUID
RequestTalkStates bool Enables/disables TalkState's
RequestRadioTrafficStates bool Enables/disables RadioTrafficState's

Keybinds

Below are the default keybinds which will be written to your client config (%appdata%\CitizenFX\fivem.cfg).
Changing the default values wont change the values saved to your config.
Keybinds can be changed in game through the keybinding options of GTA V (ESC > Settings > Key Bindings > FiveM). Default keybinds can be changed in config.json, see FiveM docs for possible values.

Variable Description Default
ToggleRange Toggles voice range F1
TalkPrimary Talk on primary radio N
TalkSecondary Talk on secondary radio Caps
TalkMegaphone Use the Megaphone (only in police vehicles) B

Events

Client

SaltyChat_PluginStateChanged

Parameter Type Description
pluginState int Current state of the plugin (e.g. client is in a swiss channel), see GameInstanceState for possible values

SaltyChat_TalkStateChanged

Parameter Type Description
isTalking bool true when player starts talking, false when the player stops talking

SaltyChat_VoiceRangeChanged

Parameter Type Description
voiceRange float current voice range
index int index of the current voice range (starts at 0)
availableVoiceRanges int count of available voice ranges

SaltyChat_MicStateChanged

Parameter Type Description
isMicrophoneMuted bool true when player mutes mic, false when the player unmutes mic

SaltyChat_MicEnabledChanged

Parameter Type Description
isMicrophoneEnabled bool false when player disabled mic, true when the player enabled mic

SaltyChat_SoundStateChanged

Parameter Type Description
isSoundMuted bool true when player mutes sound, false when the player unmutes sound

SaltyChat_SoundEnabledChanged

Parameter Type Description
isSoundEnabled bool false when player disabled sound, true when the player enabled sound

SaltyChat_RadioChannelChanged

Parameter Type Description
radioChannel string Name of the radio channel, null if channel was left
isPrimaryChannel bool true when chanel is primary, false when secondary

SaltyChat_RadioTrafficStateChanged

Parameter Type Description
primaryReceive bool true when radio traffic is received on primary radio channel
primaryTransmit bool true when radio traffic is transmitted on primary radio channel
secondaryReceive bool true when radio traffic is received on secondary radio channel
secondaryTransmit bool true when radio traffic is transmitted on secondary radio channel

Exports

Client

GetVoiceRange

Returns the current voice range as float.

GetRadioChannel

Get the current radio channel.

Parameter Type Description
primary bool Whether to get the primary or secondary channel

GetRadioVolume

Returns the current radio volume as float (0.0f - 1.6f).

GetRadioSpeaker

Returns the current state of the radio speaker as bool (true speaker on, false speaker off).

GetMicClick

Returns the current state of radio mic clicks as bool (true enabled, false disabled).

SetRadioChannel

Set the current radio channel.

Parameter Type Description
radioChannelName string Name of the radio channel
primary bool Whether to set the primary or secondary channel

SetRadioVolume

Adjust the radio's volume

Parameter Type Description
volumeLevel float Overrides the volume in percent (0f - 1.6f / 0 - 160%)

SetRadioSpeaker

Turn the radio speaker on (true) or off (false).

Parameter Type Description
isRadioSpeakEnabled bool true to enable speaker, false to disable speaker

SetMicClick

Turn radio mic clicks on (true) or off (false).

Parameter Type Description
isMicClickEnabled bool true to enable mic clicks, false to disable mic clicks

Server

GetPlayerAlive

Returns player IsAlive flag as bool.

Parameter Type Description
netId int Server ID of the player

SetPlayerAlive

Sets player IsAlive flag.

Parameter Type Description
netId int Server ID of the player
isAlive bool true if player is alive, otherwise false

GetPlayerVoiceRange

Returns player voice range as float.

Parameter Type Description
netId int Server ID of the player

SetPlayerVoiceRange

Sets player voice range.

Parameter Type Description
netId int Server ID of the player
voiceRange float Voice range that should be set

AddPlayerToCall

Adds a player to a call, creates call if it doesn't exist.

Parameter Type Description
callIdentifier string Identifier of the call
playerHandle int Server ID of the player

AddPlayersToCall

Adds an array of players to a call, creates call if it doesn't exist.

Parameter Type Description
callIdentifier string Identifier of the call
playerHandles int[] Server IDs of the players

RemovePlayerFromCall

Removes a player from a call.

Parameter Type Description
callIdentifier string Identifier of the call
playerHandle int Server ID of the player

RemovePlayersFromCall

Removes an array of players from a call.

Parameter Type Description
callIdentifier string Identifier of the call
playerHandles int[] Server IDs of the players

SetPhoneSpeaker

Turns phone speaker of an player on/off.

Parameter Type Description
playerHandle int Server ID of the player
toggle bool true to turn on speaker, false to turn it off

SetPlayerRadioSpeaker

Turns radio speaker of an player on/off.

Parameter Type Description
netId int Server ID of the player
toggle bool true to turn on speaker, false to turn it off

GetPlayersInRadioChannel

Returns an int array with all player handles that are members of the specified radio channel.

Parameter Type Description
radioChannelName string Name of the radio channel

SetPlayerRadioChannel

Sets a player's radio channel.

Parameter Type Description
netId int Server ID of the player
radioChannelName string Name of the radio channel
isPrimary bool true to set the channel as primary, false to set it as secondary

RemovePlayerRadioChannel

Removes a player from the radio channel.

Parameter Type Description
netId int Server ID of the player
radioChannelName string Name of the radio channel

SetRadioTowers

Sets the radio towers.

Parameter Type Description
towers float[][] Array with radio tower positions and ranges (X, Y, Z, range)