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!
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
(andstart saltyhud
) into yourserver.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 searchingcmd
- 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.
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 |
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 |
Parameter | Type | Description |
---|---|---|
pluginState | int |
Current state of the plugin (e.g. client is in a swiss channel), see GameInstanceState for possible values |
Parameter | Type | Description |
---|---|---|
isTalking | bool |
true when player starts talking, false when the player stops talking |
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 |
Parameter | Type | Description |
---|---|---|
isMicrophoneMuted | bool |
true when player mutes mic, false when the player unmutes mic |
Parameter | Type | Description |
---|---|---|
isMicrophoneEnabled | bool |
false when player disabled mic, true when the player enabled mic |
Parameter | Type | Description |
---|---|---|
isSoundMuted | bool |
true when player mutes sound, false when the player unmutes sound |
Parameter | Type | Description |
---|---|---|
isSoundEnabled | bool |
false when player disabled sound, true when the player enabled sound |
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 |
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 |
Returns the current voice range as float.
Get the current radio channel.
Parameter | Type | Description |
---|---|---|
primary | bool |
Whether to get the primary or secondary channel |
Returns the current radio volume as float (0.0f - 1.6f).
Returns the current state of the radio speaker as bool (true
speaker on, false
speaker off).
Returns the current state of radio mic clicks as bool (true
enabled, false
disabled).
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 |
Adjust the radio's volume
Parameter | Type | Description |
---|---|---|
volumeLevel | float |
Overrides the volume in percent (0f - 1.6f / 0 - 160%) |
Turn the radio speaker on (true
) or off (false
).
Parameter | Type | Description |
---|---|---|
isRadioSpeakEnabled | bool |
true to enable speaker, false to disable speaker |
Turn radio mic clicks on (true
) or off (false
).
Parameter | Type | Description |
---|---|---|
isMicClickEnabled | bool |
true to enable mic clicks, false to disable mic clicks |
Returns player IsAlive
flag as bool
.
Parameter | Type | Description |
---|---|---|
netId | int |
Server ID of the player |
Sets player IsAlive
flag.
Parameter | Type | Description |
---|---|---|
netId | int |
Server ID of the player |
isAlive | bool |
true if player is alive, otherwise false |
Returns player voice range as float
.
Parameter | Type | Description |
---|---|---|
netId | int |
Server ID of the player |
Sets player voice range.
Parameter | Type | Description |
---|---|---|
netId | int |
Server ID of the player |
voiceRange | float |
Voice range that should be set |
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 |
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 |
Removes a player from a call.
Parameter | Type | Description |
---|---|---|
callIdentifier | string |
Identifier of the call |
playerHandle | int |
Server ID of the player |
Removes an array of players from a call.
Parameter | Type | Description |
---|---|---|
callIdentifier | string |
Identifier of the call |
playerHandles | int[] |
Server IDs of the players |
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 |
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 |
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 |
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 |
Removes a player from the radio channel.
Parameter | Type | Description |
---|---|---|
netId | int |
Server ID of the player |
radioChannelName | string |
Name of the radio channel |
Sets the radio towers.
Parameter | Type | Description |
---|---|---|
towers | float[][] |
Array with radio tower positions and ranges (X, Y, Z, range) |