An example implementation of Salty Chat for RedM 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.
start saltychat
into your server.cfg
config.json
and adjust the variables
"VoiceEnabled": true,
"ServerUniqueIdentifier": "NMjxHW5psWaLNmFh0+kjnQik7Qc=",
"MinimumPluginVersion": "",
"SoundPack": "default",
"IngameChannelId" : 25,
"IngameChannelPassword": "5V88FWWME615",
"SwissChannelIds": [ 61, 62 ],
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
:
Windows Command Prompt
by searching cmd
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 |
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) |
NamePattern | string |
Naming schema of TeamSpeak clients, {serverid} will be replaced by the RedM server ID of the client and {guid} will be replaced by a generated GUID |
RequestTalkStates | bool |
Enables/disables TalkState's |
RequestRadioTrafficStates | bool |
Enables/disables RadioTrafficState's |
Description | Control | Default QWERTY |
---|---|---|
Toggle voice range | OpenJournal | J |
Talk on primary radio | PushToTalk | N |
Talk on secondary radio | OpenSatchelMenu | 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 |
---|---|---|
name | string |
TeamSpeak name of the player |
isSending | bool |
true when radio traffic is received, false when radio traffic breaks or ends |
isPrimaryChannel | bool |
true radio traffic is received on primary channel, false when radio traffic is received on secondary channel |
activeRelay | string |
TeamSpeak name of the active relay (only if someone near you has the speaker enabled) |
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).
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 |
Sets player IsAlive
flag.
Parameter | Type | Description |
---|---|---|
netId | int |
Server ID of the player |
isAlive | bool |
true if player is alive, otherwise false
|
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 |
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) |