ArMaTeC / TokoVOIP_TS3

TokoVoip is a TeamSpeak plugin used along a FiveM script to add a custom proximity chat and radio system to FiveM

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

TokoVoip

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

If you're feeling generous
Donate

Terms and conditions

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

How does it work ?

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

Contributing

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

Building the TS3 plugin

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 !

Packaging the TS3 plugin

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 a plugin 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

Dependencies and sources

About

TokoVoip is a TeamSpeak plugin used along a FiveM script to add a custom proximity chat and radio system to FiveM

License:Other


Languages

Language:C 82.1%Language:C++ 14.9%Language:Lua 2.1%Language:JavaScript 0.6%Language:CMake 0.2%Language:HTML 0.2%Language:Objective-C 0.1%