TokoVoip is a TeamSpeak plugin used along a FiveM script to add a custom proximity chat and radio system to FiveM
It includes radio effects thanks to the integration of the RadioFX plugin
The TS3 plugin does not require any extra setting up, you just have to install it
The tokovoip_script must be running on the server with the right configuration
A documentation for the FiveM script is available here
Downloads are available here
This system was originally developed for Revolution RP by https://rmog.us, check it out for some FiveM RP ;)
If you like TokoVOIP, give it a star ! It'd be much appreciated <3
I require only the following to anyone that plan on using this system: to leave the copyrights included as is, and not alter the displays of the TokoVOIP name in any other way than changing their position on screen.
For the rest, refer to the license
TS3 has an extensive and accessible API that allows the manipulation of the local clients. The issue was to access this API via FiveM, and allow a script to pass data to TS3
FiveM scripts run in a fairly contained sandbox, to the exception of one part: NUI
With NUI
, we have access to a full browser, which opens a lot of possibilities
One of them: websockets
The TS3 plugin runs a local websocket server, to which the FiveM script connects to via javascript.
The lua script handles all the processing of positions, volume, muting, enabling/disabling radio effects and then sends it to NUI as JSON, following that, NUI simply sends the data to the TS3 plugin via websockets over the local network.
To be completely honest, I have never refactored the code since my very first prototypes
Ideally, I would like to build the system in a way to allow direct access to TS3's API in the lua script itself (with limitations of course)
But that never happened
It works, and that's enough for now
I am open to pull requests, feel free to build upon my work and improve it
Mind you, this is my only project done in C++ and have only done low level C projects, so I am certain a lot of improvements can be made
You will need the following installed:
Clone the repo and don't forget to initialize the submodules:
git submodule update --init --recursive`
Then move to the ts3_plugin
folder, and generate the Visual Studio solution: (set the correct path to Qt)
mkdir build32
cd build32
cmake -G "Visual Studio 15 2017" -DCMAKE_PREFIX_PATH="<PATH_TO>/Qt/5.6/msvc2015" ..
cd ..
mkdir build64
cd build64
cmake -G "Visual Studio 15 2017 Win64" -DCMAKE_PREFIX_PATH="<PATH_TO>/Qt/5.6/msvc2015_64" ..
The visual studio solutions are available in their platform specific folders. You're ready to go !
Making a TS3 plugin package is very easy, you can use the template in ts3_package
if you want.
You will need:
package.ini
file which gives some info about the plugin.dll
files in aplugin
folder
The .dll
should have a suffix _win32
or _win64
matching their target platforms.
Then, archive the whole thing as a .zip
file, and rename it to .ts3_plugin
.
It's that simple.
Archive tree example:
.
+-- package.ini
+-- plugin
| +-- assets
| +-- img1.png
| +-- img2.png
| +-- plugin_win32.dll
| +-- plugin_win64.dll
- RadioFX by Thorwe
- Simple-Web-Server by eidheim
- JSON for Modern C++ by nlohmann
- CURL
- Task Force Arma 3 Radio by michail-nikolaev for the base concept and helping in figuring out a lot of TS3's stuff