I've just made a few changes to the URLs in the first 3 posts. All URLs to "thyth.com" are now "tribesnext.thyth.com", and I have also made a new version of the tournamentNetClient available with this change: http://tribesnext.thyth.com/tn/tournamentNetClient2.zip
All existing API endpoints are now active on this new sub-domain, and behave the exact same way.
In approximately 1 month (probably around 2017/10/21), I will be *deactivating* the API endpoint on the non-sub-domain "thyth.com" endpoint as part of overhauls to my personal website. For multiple reasons (including site-wide default to HTTPS, and a vastly different underlying system design), it isn't tenable to provide these older services on the top-level domain.
Please update your TribesNext installs with the new tournamentNetClient2, and update any remote websites using the TribesNext Community APIs to the new hostname by this time.
Viewing, accepting, and declining invitations were added to the browser API rather than doing it via t-mail (see message #3 in this thread, specifically the userinvites, useraccept, userdecline methods). That's different from the way the game did it originally, but there's no reason it has to work the exact same way as before. There is no in-game UI to do it the new way, but, like I said above: I'm not doing any new development for TribesNext.
Viewing, accepting, and declining invitations were added to the browser API rather than doing it via t-mail (see message #3 in this thread, specifically the userinvites, useraccept, userdecline methods). That's different from the way the game did it originally, but there's no reason it has to work the exact same way as before. There is no in-game UI to do it the new way, but, like I said above: I'm not doing any new development for TribesNext.
Okay, reviewed #3, though I just looked at Teratos site and only thing really missing, is ability to request an invitation to join clans by players.
T-Mail was never completed. The APIs are partly in place, and it's possible that most things are working, but in the time that I was willing to spend on it, I preferred to add the userinvite method the browser API when I did this beta API release 3 years ago.
I've intentionally not documented the Mail JSON API. If you look at the script source code, there is an implementation against the robot API, but I'll actively discourage you from using it. There are probably bugs, and I don't have the time to track them down, or fix any issues that may cause problems with accounts that attempt to use them. Buyer beware if you try using them.
I was actually never going to implement invitation requesting, since I couldn't come up with a satisfactory way to actually do it (i.e. who would you send the request mail to?). In the browser UI code I implemented in the game, I think I removed all references to that capability.
Generally speaking, there are far better ways to communicate and coordinate available today than a crappy half-implemented private messaging system that I never finished. Use Discord, Slack, IRC, or whatever else the gaming community uses nowadays.
As a final point, you're best off using the API references I've already posted, and the T2 script code on GitHub if you want to build on top of this system to do things. Almost all of your questions should be answerable by reading through the information I've already made available. To reiterate: I don't have time to do new development for TribesNext, and that includes answering more than the questions I've already addressed.
You're absolutely free to build on top of my systems, but you'll need to be self-directed in learning and understanding how the existing stuff was put together. I simply don't have the time to say more than this.
Right on, totally understand...was just thinking maybe I overlooking the ability for player to request invite, as that would make it completed, imo, for clan management system, and if tmail was functioning, it would seem like the logical mailer, rather than external social sources or ways, that could be skipped, if request clan invite feature was working....
This is a reminder to update any of your software to use the new "tribesnext.thyth.com" API hostname. If you're using the old tournamentNetClient, be sure to replace it with touernamentNetClient2. If you're using pre-RC3 code from GitHub, make sure you've pulled latest from t2-scripts/master as of September 25th. Sites using the API will need to update themselves too.
I will be making the changes to systems on my end soon without further advanced notice. If you neglect to update and your stuff breaks: you have been warned.
This is a reminder to update any of your software to use the new "tribesnext.thyth.com" API hostname. If you're using the old tournamentNetClient, be sure to replace it with touernamentNetClient2. If you're using pre-RC3 code from GitHub, make sure you've pulled latest from t2-scripts/master as of September 25th. Sites using the API will need to update themselves too.
I will be making the changes to systems on my end soon without further advanced notice. If you neglect to update and your stuff breaks: you have been warned.
This is a reminder to update any of your software to use the new "tribesnext.thyth.com" API hostname. If you're using the old tournamentNetClient, be sure to replace it with touernamentNetClient2. If you're using pre-RC3 code from GitHub, make sure you've pulled latest from t2-scripts/master as of September 25th. Sites using the API will need to update themselves too.
I will be making the changes to systems on my end soon without further advanced notice. If you neglect to update and your stuff breaks: you have been warned.
Thanks for the heads up, although I read it today. Updated the API hostname and now everything works fine.
Turns out it took me closer to 12 months to actually finish these system changes, but they are now live.
As of today, any remaining in-game clients attempting to access old API endpoints on "thyth.com" will fail, as they will receive HTTP 301 redirects to HTTPS. Clients that have been updated to access API endpoints on "tribesnext.thyth.com" will continue to be able to use unencrypted HTTP. As far as I can tell, the support for TLS web requests in Tribes 2 never worked correctly, so both HTTP and HTTPS are enabled on "tribesnext.thyth.com" to maintain compatibility.
With that said, anyone who has written code that targets the TribesNext browser APIs should switch from HTTP to HTTPS protocol for added security (especially since it will protect TribesNext account passwords in flight). I've updated the URLs in the documentation posts at the start of this topic accordingly.
hey @Thyth... hope all is well. was checking again, to see how the clan tags are functioning or not, and status? if there is anything we can do to help, with getting them going again now, let us know!!
You send/receive email from users. Caveat: Users will only be registered if they also have TNBrowser.vl2 installed.
The community browser is working. You can view and create Tribes. You can invite people to Tribes you are a member of. You can request to join a recruiting tribe. You can add a tribe tag to your username.
if you've set a tribe tag (right click on a Tribe you are a member of and select "Make Primary Tribe" your tribe tag will be visible if you join a server which has the "TNBrowserServer.vl2" installed. Join the server "Clan API Test" to test the feature.
I've attached screenshots of all of the features below:
Technical Details
How it works...
The email and community browser works by overriding the functions DatabaseQuery and DatabaseQueryArray which in the old Tribes2 client was a direct Oracle DB call 🤣 originally this was unencrypted! Security back in the day, eh... This is now done over HTTPS with a server that has a "compatible" API. It responds with JSON queries that are deserialised in the client - all encrypted via TLS.
Authentication... (TL;DR same as in the original game).
The server identity verification is done by the clients sending their signed identities to the connecting server. The server validates the username/guid against the TribesNext public key to see that the identity matches. Passwords and secrets are NEVER sent.
If the uid/guid matches, the server requests the Tribe information of the user, which is sent in a separately signed cert. The server checks this cert against a separate "community certificate". Communication with the authorizing service is not necessary to validate a user's identity.
If you want your server to display clan tags you must install the server add-on to GameData/base:
A note about this implementation: While it is perfectly sound from a security perspective, if I had access to the C++ code I would not have implemented this over HTTPS - I would have preffered to use straight TCP/TLS and responded with the same structured output as the original game, perhaps byte-for-byte identical over the wire aside from the encryption. Keen to know your thoughts on how to do this better @Krash. I was working within the limitations of what is available in the scripting language.
I'm open to feedback on how to implement this in a way that's fully in-line with TribesNext. If you'd like to give some structured feedback I'd love to hear it. I know a lot has changed since 2014, Thyth did say in his original post:
I won't have time any time in the near future (or ever?) to complete the in-game UIs for T-Mail or player/clan browser -- if you're interested, capable, and would like to take on the task, you're welcome to try.
I meant no offense by creating this, just trying to contribute to this aweome project.
This is a proof-of-concept working within the limitation of the tools I have available without access to the .DLL. If you tell me the right path for implemting this feature, I would be happy to implement it.
The API https://tribesnext.thyth.com/ is not compatible with the original system. No buddy list, no block list, T-Mail is not fully implemented. I've created a backend which is fully implements these features. I'd be happy to share it with you, or contribute to the PHP code to make it feature complete.
If you had asked, you'd have learned that the community features are already implemented, and the new services API is not compatible. If that weren't the case, you'd have been advised against approaches you've taken and a minefield of issues.
If you want to contribute, do something creative, make new mods, maps, skins, or other content, and post about it on the forums. Schedule events, post them on the forums. Post how many people turned out, post videos. The motivator and thing we're short on is organic interest and awareness of the game's activity. The world and history is blind to anything siloed to disparate Discords and individual game servers.
I'm fully aware of the intent of your server's use here, but just for the sake of clarity of liability to anyone who bundles pre-configured installs and might be tempted: beyond standard IRC clients, it is not permitted under any circumstances to include TribesNEXT installers or code alongside or within any distributions shipping scripts which process client account/profile information or handle messaging between users through third-party services.
If you had asked, you'd have learned that the community features are already implemented, and the new services API is not compatible.
You say the community features have been fully implemented - where have they been implemented? T-Mail and community browser look to not be working at all. I'm happy to be proved wrong, but it looks like I've added a feature that was missing.
If you want to contribute, do something creative
Ouch, I consider what I've done to be quite creative. 😄
it is not permitted under any circumstances to include TribesNEXT installers or code alongside or within any distributions shipping scripts which process client account/profile information or handle messaging between users through third-party services.
Noted and completely agreed. I don't want to host a third-party service, this backend is for you to have if you want it. As I said in the above message, the existing "tribesnext.thyth.com" API is not feature complete, and has bugs - Thyth said as much himself earlier in this thread. To fully implement the clan browser and T-Mail there needs to be a more fleshed-out backend. May I contribute to the backend?
Comments
All existing API endpoints are now active on this new sub-domain, and behave the exact same way.
In approximately 1 month (probably around 2017/10/21), I will be *deactivating* the API endpoint on the non-sub-domain "thyth.com" endpoint as part of overhauls to my personal website. For multiple reasons (including site-wide default to HTTPS, and a vastly different underlying system design), it isn't tenable to provide these older services on the top-level domain.
Please update your TribesNext installs with the new tournamentNetClient2, and update any remote websites using the TribesNext Community APIs to the new hostname by this time.
for windows and linux
I looked at GIt and thought saw Lou credited for coding it, though had not seen it implemented in clan browser anywhere yet.
Okay, reviewed #3, though I just looked at Teratos site and only thing really missing, is ability to request an invitation to join clans by players.
http://tribes2stats.com/browser
I did not see it in the specific list functions, maybe I am missing something...
What would be use for player to request invite to clans?
Also, on tmail, is it not working or is it? Thought Lou got it working.
I've intentionally not documented the Mail JSON API. If you look at the script source code, there is an implementation against the robot API, but I'll actively discourage you from using it. There are probably bugs, and I don't have the time to track them down, or fix any issues that may cause problems with accounts that attempt to use them. Buyer beware if you try using them.
I was actually never going to implement invitation requesting, since I couldn't come up with a satisfactory way to actually do it (i.e. who would you send the request mail to?). In the browser UI code I implemented in the game, I think I removed all references to that capability.
Generally speaking, there are far better ways to communicate and coordinate available today than a crappy half-implemented private messaging system that I never finished. Use Discord, Slack, IRC, or whatever else the gaming community uses nowadays.
As a final point, you're best off using the API references I've already posted, and the T2 script code on GitHub if you want to build on top of this system to do things. Almost all of your questions should be answerable by reading through the information I've already made available. To reiterate: I don't have time to do new development for TribesNext, and that includes answering more than the questions I've already addressed.
You're absolutely free to build on top of my systems, but you'll need to be self-directed in learning and understanding how the existing stuff was put together. I simply don't have the time to say more than this.
Has anyone seen Lou around?
got a link to the FAQ?
if it is in this thread and when posted by thyth?
.... think thyth is no longer available to work on anymore tribesnext projects...
Love to see a patch 3 coming soon...
I will be making the changes to systems on my end soon without further advanced notice. If you neglect to update and your stuff breaks: you have been warned.
Thanks Thyth
Thanks for the heads up, although I read it today. Updated the API hostname and now everything works fine.
As of today, any remaining in-game clients attempting to access old API endpoints on "thyth.com" will fail, as they will receive HTTP 301 redirects to HTTPS. Clients that have been updated to access API endpoints on "tribesnext.thyth.com" will continue to be able to use unencrypted HTTP. As far as I can tell, the support for TLS web requests in Tribes 2 never worked correctly, so both HTTP and HTTPS are enabled on "tribesnext.thyth.com" to maintain compatibility.
With that said, anyone who has written code that targets the TribesNext browser APIs should switch from HTTP to HTTPS protocol for added security (especially since it will protect TribesNext account passwords in flight). I've updated the URLs in the documentation posts at the start of this topic accordingly.
hey @Thyth... hope all is well. was checking again, to see how the clan tags are functioning or not, and status? if there is anything we can do to help, with getting them going again now, let us know!!
Have the greatest, from STAR and all!
bump @thyth
I want to help out with the implementation of t-mail and clans. Is there any way that I can get involved?
Hi everyone. I've implemented the Tribes2 Browser and T-Mail.
Requirements:
You must be running the latest QOL 2025 patch - because this requires TLS, which was added in that patch via the Http object.
How to install:
Simply place TNBrowser.vl2 in your GameData/base directory.
What you will see:
I've attached screenshots of all of the features below:
Technical Details
How it works...
The email and community browser works by overriding the functions
DatabaseQueryandDatabaseQueryArraywhich in the old Tribes2 client was a direct Oracle DB call 🤣 originally this was unencrypted! Security back in the day, eh... This is now done over HTTPS with a server that has a "compatible" API. It responds with JSON queries that are deserialised in the client - all encrypted via TLS.Authentication... (TL;DR same as in the original game).
The server identity verification is done by the clients sending their signed identities to the connecting server. The server validates the username/guid against the TribesNext public key to see that the identity matches. Passwords and secrets are NEVER sent.
If the uid/guid matches, the server requests the Tribe information of the user, which is sent in a separately signed cert. The server checks this cert against a separate "community certificate". Communication with the authorizing service is not necessary to validate a user's identity.
If you want your server to display clan tags you must install the server add-on to GameData/base:
A note about this implementation: While it is perfectly sound from a security perspective, if I had access to the C++ code I would not have implemented this over HTTPS - I would have preffered to use straight TCP/TLS and responded with the same structured output as the original game, perhaps byte-for-byte identical over the wire aside from the encryption. Keen to know your thoughts on how to do this better @Krash. I was working within the limitations of what is available in the scripting language.
I do not advise continuing on this path, and would urge against asking people to install those scripts.
I'm open to feedback on how to implement this in a way that's fully in-line with TribesNext. If you'd like to give some structured feedback I'd love to hear it. I know a lot has changed since 2014, Thyth did say in his original post:
I won't have time any time in the near future (or ever?) to complete the in-game UIs for T-Mail or player/clan browser -- if you're interested, capable, and would like to take on the task, you're welcome to try.
I meant no offense by creating this, just trying to contribute to this aweome project.
This is a proof-of-concept working within the limitation of the tools I have available without access to the .DLL. If you tell me the right path for implemting this feature, I would be happy to implement it.
The API https://tribesnext.thyth.com/ is not compatible with the original system. No buddy list, no block list, T-Mail is not fully implemented. I've created a backend which is fully implements these features. I'd be happy to share it with you, or contribute to the PHP code to make it feature complete.
If you had asked, you'd have learned that the community features are already implemented, and the new services API is not compatible. If that weren't the case, you'd have been advised against approaches you've taken and a minefield of issues.
If you want to contribute, do something creative, make new mods, maps, skins, or other content, and post about it on the forums. Schedule events, post them on the forums. Post how many people turned out, post videos. The motivator and thing we're short on is organic interest and awareness of the game's activity. The world and history is blind to anything siloed to disparate Discords and individual game servers.
I'm fully aware of the intent of your server's use here, but just for the sake of clarity of liability to anyone who bundles pre-configured installs and might be tempted: beyond standard IRC clients, it is not permitted under any circumstances to include TribesNEXT installers or code alongside or within any distributions shipping scripts which process client account/profile information or handle messaging between users through third-party services.
If you had asked, you'd have learned that the community features are already implemented, and the new services API is not compatible.
You say the community features have been fully implemented - where have they been implemented? T-Mail and community browser look to not be working at all. I'm happy to be proved wrong, but it looks like I've added a feature that was missing.
If you want to contribute, do something creative
Ouch, I consider what I've done to be quite creative. 😄
it is not permitted under any circumstances to include TribesNEXT installers or code alongside or within any distributions shipping scripts which process client account/profile information or handle messaging between users through third-party services.
Noted and completely agreed. I don't want to host a third-party service, this backend is for you to have if you want it. As I said in the above message, the existing "tribesnext.thyth.com" API is not feature complete, and has bugs - Thyth said as much himself earlier in this thread. To fully implement the clan browser and T-Mail there needs to be a more fleshed-out backend. May I contribute to the backend?
For what it's worth, here is a diagram explaining how clan verification works:
It does not interfere with TribesNext or require users to share their credentials.
There was no confusion about how it works.