[Release] SaltyNUI - Discourage Users without Temspeak running when using SaltyChat! (Updated for 2.2.x!)

SaltyNUI

Discourage Users without Temspeak running when using ■■■■■■■■■!

The goal of this simple Lua scirpt is to block Player from moving & display a black screen when your Server is using the ■■■■■■■■■ System but the the Player isnt online on your Teamspeak Server similar to ■■■■■■■■’s one.

What is ■■■■■■■■■?

■■■■■■■■■ is an Open-Source Community Supported Proximity Chat system using a Teamspeak Server instead of the GTA-V Voice Chat.
It offers many features besides the Proximity Chat like Radio Channels and Private Phone Calls.

Download ■■■■■■■■■

Download

GET IT HERE

How to Install?

Basic Installation

  • Download the latest Release of SaltyNUI
  • Rename the Downloaded Folder to “saltynui”
  • Copy the Folder into your ressources/ folder
  • Add ensure saltynui to your server.cfg and make sure the NUI is started AFTER ■■■■■■■■■.

On the Basic Installation SaltyNUI only gets triggered when u mute your Microphone. To get triggered when Player is in Wrong Server/Channel or isnt even Online you need the Advanced Installation!

Advanced Installation

For ■■■■■■■■■ 2.2.x (LATEST)

  • Open the ■■■■■■■■■ C# solution in VS
  • Open SaltyClient/VoiceManager.cs
  • Goto Line ~640 and add
if (this.PlguinState == GameInstanceState.Ingame){
BaseScript.TriggerEvent("SaltyNUI:TsActive");
}else{
BaseScript.TriggerEvent("SaltyNUI:TsNotActive");
}

to the OnMessage Event (under case Command.InstanceState)
It should look somethings like THIS

  • !!IMPORTANT!! COMPILE ■■■■■■■■■ AGAIN AND RE-UPLAOD IT!

These events gets triggered when Players close their Teamspeak Client and connect to a server / switch Channels

For ■■■■■■■■■ 2.0.x - 2.1.2

  • Open the ■■■■■■■■■ C# solution in VS
  • Open SaltyClient/VoiceManager.cs
  • Goto Line ~564 and add
if(instanceState.IsReady){
   BaseScript.TriggerEvent("SaltyNUI:TsActive");
 }else{
   BaseScript.TriggerEvent("SaltyNUI:TsNotActive");
 } 

to the OnMessage Event (under case Command.InstanceState)
It should look somethings like THIS

  • Goto Line 500 and add BaseScript.TriggerEvent("SaltyNUI:TsNotActive"); to the OnDisconnected Event (It should look like THIS)

  • !!IMPORTANT!! COMPILE ■■■■■■■■■ AGAIN AND RE-UPLAOD IT!

These events gets triggered when Players close their Teamspeak Client and connect to a server / switch Channels

For ■■■■■■■■■ 1.x.x

  • Open the ■■■■■■■■■ C# solution in VS
  • Open SaltyClient/VoiceManager.cs
  • Goto Line ~560 and add
if(pluginState.IsReady){
   BaseScript.TriggerEvent("SaltyNUI:TsActive");
 }else{
   BaseScript.TriggerEvent("SaltyNUI:TsNotActive");
 } 

to the OnMessage Event (under case Command.StateUpdate)
It should look somethings like THIS

  • Goto Line 500 and add BaseScript.TriggerEvent("SaltyNUI:TsNotActive"); to the OnDisconnected Event (It should look like THIS)

  • !!IMPORTANT!! COMPILE ■■■■■■■■■ AGAIN AND RE-UPLAOD IT!

These events gets triggered when Players close their Teamspeak Client and connect to a server / switch Channels

What if i want to Whitelist Swiss-Channels in SaltyNUI

!!IMPORTANT!! If you have added every channel beside the “Join here to get moved into ingame channel” People WILL be able to Play on your Server by just joining your Teamspeak Server and sitting in ANY channel they like. Even if its not the “Ingame” channel thus defeting this script’s purpose.

If you want to have People be able to go into Support & have them still able to play on the Server, just move the out of the “ingame” channel. Moving the player wont trigger saltynnui to be displayed.

Also setting up every channel besides the “waiting” channel as a Swiss-Channel is NOT recommended!

  • Instead of adding the above code to Line ~640 add this one:
if (this.PlguinState == GameInstanceState.Ingame || this.PlguinState == GameInstanceState.InSwissChannel){
BaseScript.TriggerEvent("SaltyNUI:TsActive");
}else{
BaseScript.TriggerEvent("SaltyNUI:TsNotActive");
}

Support

You can join our Discord - Offizieller EgoPvP.com Community Discord

A lot of u guys seem to have problems READING the Readme. Make shure u read it carefully and didnt miss anything and added the Event-Triggers like you should. I dont Provide a screenshot for you to not use it. Its supposed to be a helping thing.

Be aware that the Official ■■■■■■■■■ Devs wont give you support of any kind for 3rd party ressources and only reffer to asking me.

Make sure, u provide ur ■■■■■■■■■ version and a Screenshot of the Code that you have added so i can do some proper bugfixxing!

Other Scripts

We now offer Custom Script creations at our Store: CLICK ME

  • SaltyNUI - Discourage Users without Temspeak running when using ■■■■■■■■■!

  • erp_saltycircle - A basic Circle, visualizing your current voice range when using ■■■■■■■■■

  • erp_weaponrange - Have people do some shooting excersise before gaining the Weapons License.

  • erp_towscript - Highly Customisable and top working Vehicle Towing Script for FiveM

  • erp_antifalldown - Stop your Player from falling into the dark void.

  • erp_antiwhipping - Stop Players from hitting others when standing close.

  • erp_racing - Battle your Friends in epic 1 vs 1 races across LosSantos!

  • sitdown - Sitting made easy!

5 Likes

OMG, ITS SO BEAUTIFUL AND IT ISNT A FAKE OR BAD COPY. NO, ITS THE ORGINIAL!!! :star_struck:

1 Like

Might want to remove the website link before the mods do.

Sir can you add if temspaek 3 is not open that the NUI Triggers ?

if you installed saltynui correctly (advanced installation) then it shows up whenever your saltychat isnt ready to play ingame.

thats not true i test it

have you compiled it properly?

Hundreds of other server use this exact script and it works for them.

yes i have

the problem is if i join the server with saltychat but my teamspeak3.exe is not open i can play without the NUI if i have my ts3 open im background and iam not connectet than the nui block my screen i just wannt that you cann add the NUI is block directly if the player does not have ts3 open

Thats literally the point.

If you have coded it the right way & compiled it properly

Anytime Saltychat is NOT ready to play ingame its displaying the nui…

Please show the lines you edited in the SaltyChat script & check for any error logs in teamspeak client & fivem client. Also provide which version ur using

What about swiss Channels? You got an idea how to implement them? So lets say, you have a developement Channel or maybe support channel or some stuff, and you want to let players still play when inside of some kind of those channels. Would it be possible to do so?

curerntly no.

Due to Swiss Channels not making Saltychat be in the “Ready to Play” mode its not possible.
however one of the last few updates added some changes to the script state which could change some stuff.
I personally didnt got the time and will to look into it so far. Maybe in the next days i’ll do it tho.

A workaround is to move players out of the Ingame channels. This procedure is not triggering saltychat’s switched channel stuff thus still being able to play ingame when moved.

how to change the code in new saltychat 2.2.4 like this

because your guid is outdatet

                case Command.InstanceState:
                    {
                        if (pluginCommand.TryGetPayload(out InstanceState instanceState))
                            this.PlguinState = instanceState.State;

                        if (instanceState.IsReady)
                        {
                            BaseScript.TriggerEvent("SaltyNUI:TsActive");
                        }
                        else
                        {
                            BaseScript.TriggerEvent("SaltyNUI:TsNotActive");
                        }

                        break;
                    }

for mic mute use that in your client.lua

-- SaltyChat Events --- 
AddEventHandler('SaltyChat_MicStateChanged', function(muted) 

if (muted) then
	
	SendNUIMessage({action = "toggleWindow", value = "true"})
	ismuted = true
		
	else
	ismuted = false
	SendNUIMessage({action = "toggleWindow", value = "false"})
	
	end
end)

did i need to change

 if (instanceState.IsReady)

to

if (instanceState.State)

because Visual Studio 2019 saying me

if (instanceState.IsReady)

is outdatet

the guide IS Up-To-Date if you check the one for 2.x.x

Even tho your VSS is telling you its “Outdated”. What deos “Outdated” even mean. Defenitly not, that it is not working cause it does.

VSS might be telling you that the method used is outdated, yeah. but it will still work. And as i said
“I personally didnt got the time and will to look into it so far. Maybe in the next days i’ll do it tho.”(for the new version)

also these saltychat events are in the normal version of SaltyNUI so nothing new :man_facepalming:

UPDATES

  • Added tutorial for 2.2.x - LATEST
  • Added tutorial for Swiss-Channels

Advanced Installation

For Saltychat 2.2.x (LATEST)

  • Open the SaltyChat C# solution in VS
  • Open SaltyClient/VoiceManager.cs
  • Goto Line ~640 and add
if (this.PlguinState == GameInstanceState.Ingame){
BaseScript.TriggerEvent("SaltyNUI:TsActive");
}else{
BaseScript.TriggerEvent("SaltyNUI:TsNotActive");
}

to the OnMessage Event (under case Command.InstanceState)
It should look somethings like THIS

  • !!IMPORTANT!! COMPILE SALTYCHAT AGAIN AND RE-UPLAOD IT!

These events gets triggered when Players close their Teamspeak Client and connect to a server / switch Channels

What if i want to Whitelist Swiss-Channels in SaltyNUI

!!IMPORTANT!! If you have added every channel beside the “Join here to get moved into ingame channel” People WILL be able to Play on your Server by just joining your Teamspeak Server and sitting in ANY channel they like. Even if its not the “Ingame” channel thus defeting this script’s purpose.

If you want to have People be able to go into Support & have them still able to play on the Server, just move the out of the “ingame” channel. Moving the player wont trigger saltynnui to be displayed.

Also setting up every channel besides the “waiting” channel as a Swiss-Channel is NOT recommended!

  • Instead of adding the above code to Line ~640 add this one:
if (this.PlguinState == GameInstanceState.Ingame || this.PlguinState == GameInstanceState.InSwissChannel){
BaseScript.TriggerEvent("SaltyNUI:TsActive");
}else{
BaseScript.TriggerEvent("SaltyNUI:TsNotActive");
}
1 Like

With this Updated client.lua is the Installation Simply Drag and Drop and it works.
This Works only for the newest Saltychat Versions!!!

AddEventHandler('SaltyChat_PluginStateChanged', function(PluginState) 
    if PluginState == 2 or PluginState == 3 then 
        SendNUIMessage({action = "toggleWindow", value = "false"})
    else
        SendNUIMessage({action = "toggleWindow", value = "true"})
    end
end)

client.lua (382 Bytes)

1 Like

when this version of sc gets more popular, ill use integrate it. currently there are not enough servers to put it in there or otherwise players will have errors all the time.

Can people help me set Radio Tower?.. i’use ls-radio for SaltyChat.
I’ve read the README but i don’t understand how i have to do…

1 Like