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.
- Download the latest release and extract it into your resources
- Add
start saltychat
(and start saltyhud
) into your server.cfg
- Open
config.json
and adjust the variables
"VoiceEnabled": true,
"ServerUniqueIdentifier": "NMjxHW5psWaLNmFh0+kjnQik7Qc=",
"MinimumPluginVersion": "",
"SoundPack": "default",
"IngameChannelId" : 25,
"IngameChannelPassword": "5V88FWWME615",
"SwissChannelIds": [ 61, 62 ],
- (Optional) Change keybinds in
config.json
, see default values below
- (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
:
- Open
Windows Command Prompt
by searching cmd
- 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) |