[Nexgen] Nexgen Teamspeak 3 Connector

Share interesting stuff you have found or created yourself.
User avatar
Sp0ngeb0b
Adept
Posts: 376
Joined: Wed Feb 13, 2008 9:16 pm
Location: Cologne
Contact:

[Nexgen] Nexgen Teamspeak 3 Connector

Post by Sp0ngeb0b »

Version 2 released. See here




.. this plugin boosts player communication and teamgaming tactics for UT99 to a complete new level!


Nexgen Teamspeak 3 Connector ~ by Sp0ngeb0b


Introduction
For 15 years, our beloved UnrealTournament has drastically impacted the evolution of FPS gaming and still fascinates with it's one of a kind gameplay and unique player base. We can't deny today's games outclass UT in many ways - but when it comes to teamgaming, there's one feature UT is lacking the most: Build-In voice communication. Implementing such a feature requires lots of effort and knowledge, and is hardly possible. Fortunately, there have been 3rd party-programs such as the wellknown Teamspeak software, which offer the ability to talk to fellow gamers. The latest version, Teamspeak 3, has once again made huge improvements and is widely used. Although you can use it to talk to your fellow UT gamers, it's indeed uncomfortable to do so: Starting with finding a right server, coordinating with others, getting a free channel, not getting disturbed by others to remembering confusing passwords. Or in short: Even though it's possible, you won't find any player of a gameserver hanging around in a Teamspeak server waiting for other gameserver visitors to accidentally step into the same Teamspeak server. Comfortable and open voice communication is not possible.

And this is, where the Nexgen Teamspeak 3 Connector comes into the game!


Features
Using it's own TCP querying link to the Teamspeak Server, this plugin can handle and offer anything you want!
  • Auto-Channel Moving:
    NTSC will automatically move each player to the right channel. Teamchannels for the Red and Blue Team (if it's a Teamgame), a channel for the Spectators and a Mixed Channel for all players are available.
  • Live Channel querying:
    You'll find anything you need in the NTSC ingame-tab: Live Channel querying will show you in one look all players who are currently connected to the TS server, splitted into 4 lists representing their respective channel.
  • Client-specific settings:
    The ingame tab contains some usefull settings for each client to optimize his TS experience.
  • Other useful stuff in the GUI:
    A complete connection control panel to watch over everying, and - of course, if you are new to TS - a button to download the TeamSpeak 3 Client.
  • Exclusive gaming TS channels:
    If you decide to set a password for your gaming channels, they will be exclusive to the players on your server. NTSC makes sure only active players are in the channels - as soon as one leaves, they will be moved to a Disconnected Players channel, preventing possible lamers from spoiling the fun for others.
  • Ideal for clanwars/pugs/teamgaming:
    The protected Team channels with auto-sort will make competetive teamgaming even more comfortable
    to handle.

Preview
Image
A possible setup of the Teamspeak Channels

Image
The actual in-game tab


Client Manual

Code: Select all

To use this mod, the Teamspeak 3 Client needs to be installed on your computer. You can
download it for any operating system for FREE from their official site:

http://www.teamspeak.com/?page=downloads

Follow their instructions to install it and set it up correctly. I won't provide any further
information or support on this matter, since this is only related to the Teamspeak 3 software and
not to this plugin. If you need any help, look around on their homepage and/or post in their forum.

The following manual assumes that you have installed and configured Teamspeak 3 correctly.

As soon as you are connected to a UT99 gameserver running this plugin, you'll find the NTSC in-game
tab in Nexgen. Say '!open' to bring up the Nexgen Window and click on the tab 'Teamspeak' on the
upper end of the window. Alternatively, you can directly bring up the tab by saying '!ts'.

You'll now see 4 lists on the left half of the tab, and 3 panels on the right half.
The former are the live channel query lists and display the current players connected
to the TS server in their respective channel.
The first panel on the right allows you to control your connection to the TS server. By clicking the
button 'Connect', it will start up your Teamspeak 3 Client and lets it connect to the gameserver's
specific Teamspeak server. NOTE: Due to the nature UT and Teamspeak are programmed, UT will ALWAYS
MINIMIZE during this process. You can either switch back to UT manually, or use the setting
'Connect in windowed Mode' (see further below for more info). You might get a message from your
Operating System that the link 'ts3server' is not yet connected to a program; if so, continue by
selecting the Teamspeak 3 Client in the pop up window and click OK. If setup right, your
Teamspeak 3 Client will start up now and automatically connect to the Teamspeak server. As soon as
you are connected, NTSC will move you to your desired channel according to your 'Default TS Channel'
setting. Hint: You can perform this action quickly by saying '!tsjoin'.

Clicking the 'Disconnect' button will close your connection to the TS server. Teamspeak will tell
you that you have been kicked from the server - don't worry, that's how it's supposed to be and you
are neither kicked or banned for good. Hint: You can perform this action quickly by saying '!tsleave'.

'Change Channel' - as the name suggests, this button allows you to switch between the Mixed Channel
and your specifc Team Channel. Hint: You can perform this action quickly by saying '!tsswitch'.

The last button of the control panel carries the name 'Check Connection'. It is only supposed
to function as a problem fixer and therefore shouldn't be neccessary to use normally. However, if
you feel like something is wrong with your connection to the TS server, e.g. NTSC didn't detect your
TS join, click this button. Hint: You can perform this action quickly by saying '!tsstatus'.

Underneath the Control panel you'll find 4 personal client-settings to optimize your Teamspeak
experience. The first setting, called 'Auto connect to TS on join', will automatically run the
'Connect' action on your server join, of course only if you are not connected to TS yet.

'Connect in windowed mode' has been mentioned before, and is relevant when your client initially
connects to the TS server. UT will minimize during this process. However, you can minimize
the impact on your gameplay by enabling this option: As soon as you press the 'Connect' button, UT
will switch to windowed mode, preventing the game from minimizing completely and allows you to still
take part in the game for these seconds. As soon as your connection was successfull, your UT will
toggle itself back to fullscreen mode.

Next comes a setting to modify your in-game notifications: By disabling 'Message on channel
joins/leaves', NTSC will stop from informing you on new TS clients in your channel and left clients
of your channel. Note that this will only stop the UT messages on the top left side of your screen;
the voice notifications (e.g. 'User joined your channel') are a feature of your Teamspeak 3 Client
and therefore have to be disabled in it.

The last client setting determines which 'Default TS channel' you want to use. This is the channel
you will always be moved to when you join the TS server / reconnect to the gameserver. You can
decide between the Mixed Channel, or your specific Team Channel. You can always switch the channels
afterwards using the 'Switch channel' button.

For your convenience, you can directly open the Teamspeak 3 Downloadpage by clicking the button on
the last panel.

Server Requirements

Code: Select all

Teamspeak:
  - A functional Teamspeak 3 server with a static IP and/or a DNS adress
  - Channel setup as described below
  - Server Query login credentials (serveradmin password)
  - Access to the white_list.txt
  
UnrealTournament:
  - Nexgen 112

Download
NexgenTeamSpeakConnector100 (For Nexgen 112)
NexgenTeamSpeakConnector100N (For Nexgen 112N)


Changelog

Code: Select all

- Version 1.00:
  [Misc]: - First public release.
Detailed setup instructions can be found in the Readme! I appreciate all feedback and I'm available for further assistance, just reply to this thread or send me a pm/mail.
Last edited by Sp0ngeb0b on Fri Dec 20, 2019 12:25 pm, edited 5 times in total.
Website, Forum & UTStats

Image
******************************************************************************
Nexgen Server Controller || My plugins & mods on GitHub
******************************************************************************
User avatar
papercoffee
Godlike
Posts: 10441
Joined: Wed Jul 15, 2009 11:36 am
Personal rank: coffee addicted !!!
Location: Cologne, the city with the big cathedral.
Contact:

Re: [Nexgen] Nexgen Teamspeak 3 Connector

Post by papercoffee »

Ok ...this is interesting.
RocketJedi
Inhuman
Posts: 850
Joined: Wed Mar 12, 2008 7:14 pm
Personal rank: I.T Master
Location: New York
Contact:

Re: [Nexgen] Nexgen Teamspeak 3 Connector

Post by RocketJedi »

PIMP status achieved! thanks for this!
https://www.vulpinemission.com
Image ROCKET-X8 Server
Image MONSTERHUNT w/ NALI WEAPONS 3 + RX8
Image BUNNYTRACK NY
Image SNIPER DEATHMATCH
Image InstaGib + ComboGib + Jailbreak
Image ROSEBUM ROCKET-X RB
User avatar
UTPe
Masterful
Posts: 582
Joined: Sun Jul 12, 2009 7:10 pm
Personal rank: Dude
Location: Trieste, Italy
Contact:

Re: [Nexgen] Nexgen Teamspeak 3 Connector

Post by UTPe »

thank you very much, it looks like very interesting ! :tu:
Personal map database: http://www.ut99maps.net

"These are the days that we will return to one day in the future only in memories." (The Midnight)
User avatar
TheDane
Masterful
Posts: 660
Joined: Tue Feb 12, 2008 2:47 pm
Personal rank: Happy fool :-)

Re: [Nexgen] Nexgen Teamspeak 3 Connector

Post by TheDane »

This is quality stuff SpongeBob - I wish this kind of tool was available back in the days where I was actively playing matches.....

:gj:
Retired.
User avatar
Sp0ngeb0b
Adept
Posts: 376
Joined: Wed Feb 13, 2008 9:16 pm
Location: Cologne
Contact:

Re: [Nexgen] Nexgen Teamspeak 3 Connector

Post by Sp0ngeb0b »

TheDane wrote:I wish this kind of tool was available back in the days where I was actively playing matches.....
Agreed, It's probably 15 years to late - but yeah, better late than never :D

Thanks for your feedback so far!
Website, Forum & UTStats

Image
******************************************************************************
Nexgen Server Controller || My plugins & mods on GitHub
******************************************************************************
RocketJedi
Inhuman
Posts: 850
Joined: Wed Mar 12, 2008 7:14 pm
Personal rank: I.T Master
Location: New York
Contact:

Re: [Nexgen] Nexgen Teamspeak 3 Connector

Post by RocketJedi »

I had to reverse the passwords for it to work. it works though!
https://www.vulpinemission.com
Image ROCKET-X8 Server
Image MONSTERHUNT w/ NALI WEAPONS 3 + RX8
Image BUNNYTRACK NY
Image SNIPER DEATHMATCH
Image InstaGib + ComboGib + Jailbreak
Image ROSEBUM ROCKET-X RB
User avatar
Sp0ngeb0b
Adept
Posts: 376
Joined: Wed Feb 13, 2008 9:16 pm
Location: Cologne
Contact:

Re: [Nexgen] Nexgen Teamspeak 3 Connector

Post by Sp0ngeb0b »

Qwerty wrote:I had to reverse the passwords for it to work. it works though!
What do you mean with "reverse" exactly?
Website, Forum & UTStats

Image
******************************************************************************
Nexgen Server Controller || My plugins & mods on GitHub
******************************************************************************
User avatar
Wises
Godlike
Posts: 1089
Joined: Sun Sep 07, 2008 10:59 am
Personal rank: ...

Re: [Nexgen] Nexgen Teamspeak 3 Connector

Post by Wises »

that ^ is an impressive looking/sounding mod indeed SB

could have used this also several years ago..
UT99.org

Re: [Nexgen] Nexgen Teamspeak 3 Connector

Post by UT99.org »

billybill wrote:like the idea. Maybe some of the many other chat clients could be done. If I guess correctly a net connection is made from each client, or from the server and values of team names and players online are replicated over to the players. And the connection is made using a ts:// type link. I wonder how you used the ts link if the protocol is not recognized on that system. I would imagine the game would minimize or something?

Anyway, when you are happy with it then it needs to be stand-alone. Sorry but nexgen offers nothing I'd be interested in. Other mods have been released simultaneously as plugins for nexgen and stand-alone. I don't even think nexgen is being developed any more. (Not that I knew the coder or ever trusted it, so many security flaws. Then theres the server lag.) So as cool as the plugin system is, (yeah I do like that part!), stand-alone would be very nice
User avatar
Sp0ngeb0b
Adept
Posts: 376
Joined: Wed Feb 13, 2008 9:16 pm
Location: Cologne
Contact:

Re: [Nexgen] Nexgen Teamspeak 3 Connector

Post by Sp0ngeb0b »

billybill wrote:like the idea. Maybe some of the many other chat clients could be done. If I guess correctly a net connection is made from each client, or from the server and values of team names and players online are replicated over to the players. And the connection is made using a ts:// type link.
You are indeed right about the ts:// link - that's the only way without going native to launch the Teamspeak 3 software. And that initially connection URL is the main thing processed client-side; all the rest is handled by the gameserver's own TCP link to the TS server. The fact that UT offers the ability to create buffered TCP links to remote hosts, plus the availablity of a solid TCP query interface of the TS server made this mod possible. Using this link, the gameserver recognizes successfull TS connections and handles the complete channel movement of the clients.
billybill wrote:I wonder how you used the ts link if the protocol is not recognized on that system. I would imagine the game would minimize or something?
All what the plugin does on the clientside is performing the console command "start ts3server://ip.to.ts.server:port?additionalparamaters". It doesn't even matter what link you use for that command - UT will always minimize. In my opinion, that's a real shame but there's simply no way avoiding this (except going native); it's how UT was designed. To lower the impact on the gameplay, I added the client-option to auto toggle UT to windowed mode during the connection phase - this will prevent UT from minimizing completely, so you are still able to take part in the game (even though it's in a window for that time). After a (un)successfull connection attempt, UT will toggle back to fullscreen. If the link is not recognized by the OS, it will bring up the system's default methods on handling unknown links - usually a window asking for the program the link should be connected with.
billybill wrote: Anyway, when you are happy with it then it needs to be stand-alone. Sorry but nexgen offers nothing I'd be interested in. Other mods have been released simultaneously as plugins for nexgen and stand-alone. I don't even think nexgen is being developed any more. (Not that I knew the coder or ever trusted it, so many security flaws. Then theres the server lag.) So as cool as the plugin system is, (yeah I do like that part!), stand-alone would be very nice
That's point I expected to pop up sooner or later. I follow a more or less contrary view on this matter: Although I do know that there are people who won't use Nexgen, and though it hurts me not to serve them with this mod, a stand-alone version from my side is not an option. That's due to some reasons: In my mind, Nexgen neither lacks in trustworthiness / reliability since it's completely Open Source and I've spent dozens of hours empathizing into the system (that much that I even consider myself as some kind of Co-Author by now; I don't take anything away from Defrost though). If you follow some simple guidelines, security aspects are nothing to be worried about either - keeping sensitive data serverside when it comes to programming methods, and - at all times - be aware that your client-key can possibly be read by other servers so using it only on your server will 100% prevent thefts from getting their hands on it.
Besides that, Nexgen simply offers so many advantages as a program environment compared to the default UT engine; that creating a stand-alone version is nothing but highly inefficient and not logical.
Website, Forum & UTStats

Image
******************************************************************************
Nexgen Server Controller || My plugins & mods on GitHub
******************************************************************************
UT99.org

Re: [Nexgen] Nexgen Teamspeak 3 Connector

Post by UT99.org »

billybill wrote:I know Nexgen plugin system has some shortcuts and pre-built infastructure. It's not overly complicated. If you don't want to mess around with rebuilding the basic stuff like server-player replication, UWindows and all of that it's no problem. I'll now kindly ask that when you are happy with a final one you would give permission to use parts of your code

Wouldn't be hard to add other clients right? Have a whole new way of connecting and getting channels (teams) and connected players. Is it a simple UDP request or is the UT server making a TCP connection the same way a client would to the server. Further info on how you are retrieving the available information about the TS server

The auto-connect could be manually turned off by people who don't have the client or don't want to partake. The reconnecting each round could be bypassed too with some kind of configuration in memory somewhere
User avatar
Sp0ngeb0b
Adept
Posts: 376
Joined: Wed Feb 13, 2008 9:16 pm
Location: Cologne
Contact:

Re: [Nexgen] Nexgen Teamspeak 3 Connector

Post by Sp0ngeb0b »

billybill wrote:I'll now kindly ask that when you are happy with a final one you would give permission to use parts of your code
As stated in the Readme, as well as in the .uc files, one can use the entire source code / parts of it without my permission. It's completely open source and well documented to allow fellow programmers to use it comfortably. The only limit I stipulate is to leave the Credits intact if you do a full a re-release, and if you do, make sure you use your own unique Filename (e.g., NexgenTeamSpeakConnectorConnector101 is not allowed). Creating a stand-alone version is not like re-inventing the wheel, since the complete logical base is already available and some stuff just has to be converted. Nonetheless it's time consuming and annoying, but if anyone out there wants to do it, it's highly appreciated by me and I would also offer limited support.
billybill wrote: Wouldn't be hard to add other clients right? Have a whole new way of connecting and getting channels (teams) and connected players. Is it a simple UDP request or is the UT server making a TCP connection the same way a client would to the server. Further info on how you are retrieving the available information about the TS server
You mean other Voice Communication clients like Mumble or Ventrilo? This question has already been asked over at unrealadmin.org, the system itself is structured that it can possibly handle any voice software with some small adjustments, as long as the Voice Server offers a TCP query interface with basic admin functions. As I said above, the UT server opens up its own TCP link to the Teamspeak Server's TCP Query Interface (available through its query port). This link stays connected for the whole game and is used to communicate with the TS server. At the startup of the game, the UT server opens up the initially connection to the TS server, loggs in as ServerAdmin (to later move clients between channels) and collects the ChannelIDs belonging to each TS Channel specified by the Server Admin. When all data is collected, the system is ready to be used; whenever a player joins, the gameserver checks whether the client is connected to TS aswell, if yes, it registers the client's TS client ID and then moves him to the right channel. When a player decides to connect to TS (using the 'Connect' button in the tab), the system performs timed queries to detect the player in the TS server, and the same process as before is performed. You can find all the magic in the 'NexgenTeamSpeakConnectorTCP.uc' file, including the TCP commands send to the TS server and the ReceivedLine() function to process answers by the TS server. If you want to know more about the internal TCP process, enable bInternalDebugging and check your server's ucc.log file. Alternatively, download a free TCP client and connect to your TS server IP + query port, and perform the commands from the plugin's source code or have a look at all TS3 Query commands.
billybill wrote: The auto-connect could be manually turned off by people who don't have the client or don't want to partake. The reconnecting each round could be bypassed too with some kind of configuration in memory somewhere
As you can see in the screenshot of the in-game tab, auto-connect is always turned off by default and can be activated by the client if desired.
Indeed, it's possible to avoid reconnecting during mapchange by simply removing all clients in the TS channels who are not on the server after the mapchange. Or generally performing timed queries to always keep the TS channels in sync with the online players, this would erease the need of the whole Disconnected Players channel at all. I decided not to go this way and I'll leave the system like this, if you want to change it in your work try it out :)
Website, Forum & UTStats

Image
******************************************************************************
Nexgen Server Controller || My plugins & mods on GitHub
******************************************************************************
User avatar
Sp0ngeb0b
Adept
Posts: 376
Joined: Wed Feb 13, 2008 9:16 pm
Location: Cologne
Contact:

Re: [Nexgen] Nexgen Teamspeak 3 Connector

Post by Sp0ngeb0b »

Test server now available!
Website, Forum & UTStats

Image
******************************************************************************
Nexgen Server Controller || My plugins & mods on GitHub
******************************************************************************
User avatar
Tater
Average
Posts: 69
Joined: Sat May 25, 2013 3:28 pm

Re: [Nexgen] Nexgen Teamspeak 3 Connector

Post by Tater »

Does a match need to be started through nexgen or will this read and change channel when a team game is voted through the mapvote?
Post Reply