Salty Chat for RedM
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.
- Download the latest release and extract it into your resources
- Add
start saltychat
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 ],
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 |
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, {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 |
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) |