SRB2 Message Board  

Go Back   SRB2 Message Board > Sonic Robo Blast 2 > Releases > Lua

Reply
 
Thread Tools
Terminal - a netplay enhancement plugin Details »»
Terminal - a netplay enhancement plugin
Version: 1.2, by Wolfy (wolfs) Wolfy is offline
Developer Last Online: Oct 2017

Category: Version: SRB2 Rating: (4 votes - 4.20 average)
Released: 05-29-2014 Last Update: Never Installs: 6
Scripts Re-Useable Content

SRB2 is naturally a real fun game to play online. There's always lots of servers up for it, which is nice. SRB2's netcode kind of makes playing on those servers a little harder though, so that can prompt one to put up a dedicated server as people on the MB like ToBeFree have done. Unfortunately, SRB2's dedicated servers are rather dull due to SRB2's lack of multiple admins and other things that are almost always in dedicated servers for other games. These servers often end up dead despite how much more stable and speedy they are in comparison to the other, user hosted servers, which instead contain active administration. By this logic, dedicated servers are practically useless.

Not anymore.


What we have here is Terminal, a mod dedicated to enhancing netplay overall but designed specifically with dedicated servers in mind. Influenced by mods from other games (primarily SourceMod), Terminal incorporates numerous features that we believe improve SRB2's overall netplay experience.

Features:
  • Voting/Polls - Terminal's largest feature by far is without a doubt its voting system. The system gives the players of the server the ability to call a vote on various predefined subjects, or even their own unique ones! This includes changing the map, kicking players, resetting maps, and also changing gametypes. To make things more customizable, the vote system has plenty of modifiable variables to suit the needs of the server. The vote system allows the users to operate the server independently, which is something dedicated servers have desperately needed for a very long time.
  • Permissions - SRB2 has lacked multiple admins on servers for well over eight years and this is a problem. Typically, two users whom the server host trusts with admin privileges will fight for the @ symbol to the left of their names. Those days are gone. Terminal includes a fully featured permissions system that allows for multiple admins, different levels of control, and specialized permission levels. Just in case you're wondering how much we really did, SRB2's original admin system has been scrapped entirely in Terminal. Professionals have standards.
  • Unique Extras - Okay, admit it. Sometimes you like to screw around on your server. We understand this. And for that very reason, Terminal contains a completely optional Cheat module that allows you access to many singleplayer cheats in multiplayer. But wait - there's more! We have our own neat commands put in there too, ranging from warping commands to displaying the locations of all players on your screen. If you like hosting casual servers, this module is probably something you'd enjoy.
  • Modularity - Terminal has lots of stuff. We understand this. Some people might not want as much of the large quantity of stuff as others may. So for this, Terminal is fully modular. You can select which components specifically you would like to load onto your server such as our cheats, help, and login modules. With this, you can make your server more lightweight while still carrying the benefits of Terminal.
  • Customization - Terminal is a mod that we intend for others to modify, and to make that a bit easier, we have a neat splash screen system in place. An example splash screen wad is included with Terminal that includes three graphics that can be used for an automatic joiner splash screen. The difference between the graphics is the levels of transparency, which are settable in Terminal's scripts. This is especially useful for advertising your dedicated servers(or showing off!)

Instructions:
  • 1. Extract Terminal files to your SRB2 folder
  • 2. Rename "term_logins.ex.txt" to "term_logins.txt" if you want to use the login module
  • 3. Host the server
  • 4. "exec loadall.txt" in the console, or manually load whichever modules you want (make sure to load "Terminal_Core.lua" first)
  • 5. DEDICATED SERVERS ONLY: Execute the "iamtheserver" command in the console.
If you find any issues with hosting, make sure to tell us about them. After Terminal is up and running, you can use "term_help" in the console to bring up a help dialog that will cover basic use of the mod.

Spoiler: Changelog
Changelog:
  • v1.2
    • Use server instead of dediServer, since 2.1.15 has fixes for the former variable on dedicated servers.
    • Fixed showplayers for 2.1.15
    • charability and charability2 commands take lowercase input and allow omitting prefixes
    • destroyallenemies command only iterates through mobjs once
    • Minor changes in commands to prevent errors
  • v1.1
    • Countless fixes to countless features
    • Code has been completely refactored
    • findmap command, get map numbers by inputting level title
    • Players are not renamed to add symbols, PlayerMsg hook is used to make symbols appear next to names instead
    • Terminal_Help.lua has been merged into Core
    • Symbol colors can be changed locally with permissioncolor cvar
    • Moved showplayers command into Core
    • Lots of sanity checks added
    • addflags/removeflags added, simple method for manipulating player flags
    • charability and charability2 commands now accept CA_ and CA2_ constants as inputs
    • runonwater command added
    • destroyallenemies command added
    • spawnobject command added, spawns the given object 100 fracunits in front of the player
    • Polls with custom strings have been separated into the startpoll command
    • Maplists are generated automatically through mapheaderinfo, SRB1 maps are a manual override
    • Terminal_Maplist.lua has been removed
    • Voting, Login, and Cheats scripts will throw errors if Core is not added first
    Detailed changelog showing the locations of these changes can be found here. Revision history can be found on GitHub.
  • v1.0
    Initial Release.


LightDash.org Mirror
GitHub Repository


Notes:
Terminal is a rather large mod, so we've assembled our own temporary documentation for it here. We'll be moving this onto the wiki soon enough, however.

Terminal, while perfectly stable by itself, is meant to be a framework for servers. It is intended for others to modify Terminal to fit the needs of the server and as such, we strongly recommend that before you host a server with a modified branch of Terminal, you prefix any modified scripts or rename them entirely to avoid conflicts with scripts from other servers. As an example of this, I am hosting a 24/7 dedicated Terminal server with my own uniquely modified scripts to fit my (sort of) needs. If you really want, you can connect to this server at lightdash.org and I'll try to get a webpage up for it soon.

Some parts of Terminal can be really (and I mean really, really) dangerous if certain checks are removed. We advise you not to remove them for the sake of your server's security.

Remember, Terminal doesn't make any modifications to the way SRB2's information handling is done. You still shouldn't send sensitive information over SRB2 or expect things like your passwords to be 100% secure. Be careful and don't use any passwords that you use for other services as well.

Feedback is wonderful, we want plenty of it! Also make sure to report the usual stuff like odd tendencies and bugs. If you have any questions to ask or suggestions to push, the best place to ask is our channel, #SRB2Terminal on irc.esper.net.

The full credits for this mod are located in our external documentation link, for those interested. Everyone listed in the co-authors here has made a significant contribution or is an active main developer of the mod.

Terminal is, as previously stated, free to be modified and reused by anyone as long as proper credit is given. Unique server modules based on Terminal are something great that we specifically want to see.


Have fun!

Download Now

File Type: zip Terminal-v1.2.zip (22.0 KB, 707 views)

Screenshots

Click image for larger version

Name:	srb20133.png
Views:	1484
Size:	74.7 KB
ID:	5102   Click image for larger version

Name:	srb20014.jpg
Views:	1854
Size:	183.9 KB
ID:	5103   Click image for larger version

Name:	srb20125.png
Views:	1486
Size:	44.8 KB
ID:	5104   Click image for larger version

Name:	srb20124.png
Views:	1451
Size:	48.3 KB
ID:	5105   Click image for larger version

Name:	srb20132.png
Views:	1241
Size:	53.3 KB
ID:	5106  

Supporters / CoAuthors

Show Your Support

  • The author of this addon has given explicit permission for its content to be re-used and/or reproduced.

Comments
Old 07-20-2015   #42
Wolfy
wolfs
Developer
 
Wolfy's Avatar
Default

Apologies for the double post, but Terminal v1.1 has been released.

This is quite a huge update, as it incorporates many features from Git that we've developed over the course of many months. You can read the update changelog here. Please let us know if anything breaks, and have fun!
__________________
Quote:
[23:56:36] <SM-MaxX> prisma illya is a gift to this impure earth and a shining beacon for all anime
Wolfy is offline   Reply With Quote
Old 08-26-2015   #43
Stormey
 
Stormey's Avatar
Default

I actually have a problem. I try to host a dedicated server, which works fine, but the only thing I've been trying to test is the login system, but it doesn't seem to work properly. Sometimes the Registration works fine, and then it shows like "loadhash "Stormey" 9464399 0" and I put it in the text file called "term_logins.txt" I'm not so sure what to do now because I get an error after I try to login. If you can make detailed instructions it'd be really nice :)

Error:

Registering
WARNING: ./Terminal_Login.lua:105: bad argument #1 to 'CONS_Printf' <PLAYER_T* expected, got nil>

Logging in
WARNING: ./Terminal_Login.lua:65: bad argument #1 to 'CONS_Printf' <PLAYER_T* expected, got nil>

EDIT:
I am also loading the Terminal scripts in order. Core then everything else. I just use the loadall.txt.

EDIT #2: (Just to be safe)
I am running v. 2.1.14

EDIT #3:
Nothing works. I did a fresh install of SRB2 and tried all of the Terminal addons, they didn't work. I'm just getting errors like the ones above.

Last edited by Stormey; 08-27-2015 at 12:26 AM.
Stormey is offline   Reply With Quote
Old 08-27-2015   #44
RedEnchilada
happy, pretty, lovely!
Developer
 
RedEnchilada's Avatar
Default

Did you enter "iamtheserver" (without quotes) in the dedicated server's console? It sets an important data field that's needed to run a lot of Terminal's inner workings on a dedicated server. (Listen servers don't need it since they have the information readily available, but due to a bug in the current release we need to grab the server pointer ourself for dedicated servers.)
__________________
Quote:
<@toaster> '"sonic robot explosion 2", the hot new sensation for teens looking for a good time, tempts many children away from god each year'
av src
RedEnchilada is offline   Reply With Quote
Old 08-29-2015   #45
Stormey
 
Stormey's Avatar
Default

Quote:
Originally Posted by RedEnchilada View Post
Did you enter "iamtheserver" (without quotes) in the dedicated server's console? It sets an important data field that's needed to run a lot of Terminal's inner workings on a dedicated server. (Listen servers don't need it since they have the information readily available, but due to a bug in the current release we need to grab the server pointer ourself for dedicated servers.)
Yes I do type iamtheserver but after I try to do a command it still says I need admin rights to do commands.
__________________
I don't know what to put for my signature......
Uhm....
Hi :)
Stormey is offline   Reply With Quote
Old 10-18-2015   #46
Blaze The Cat
& Knuckles
 
Blaze The Cat's Avatar
Default

He's not the only one. Kitoko needs to make his server log into his account too, because the server itself is not given any permissions when it's the dedicated host, even after typing iamtheserver into the console.

In addition, we are forced to reboot SRB2 after leaving the game or getting kicked, because the login system gets a nil error when trying to login a second time (And even spams it a couple times)
Blaze The Cat is offline   Reply With Quote
Old 11-05-2015   #47
Kitoko
Click on me for help! YAHOO
 
Kitoko's Avatar
Default

WARNING: ./DOWNLOAD/Terminal_Login.lua:11: accessed player_t doesn't exist anymore, please check 'valid' before using player_t.
Hook removed.

These errors (and others) are prodding me to remove Terminal from my VPS. I hope you can resolve this.

I also believe that a thoroughly extensive list of what every single additional (or replacement) command does would be nice.
__________________
<Chaos> go hitneo
<Chaos> she can walk on lava

Last edited by Kitoko; 11-05-2015 at 12:56 AM.
Kitoko is offline   Reply With Quote
Old 05-28-2016   #48
BASHDUP
 
BASHDUP's Avatar
Default

Uh recently I've been getting this error message in my servers? Is there someway I can fix it, it keeps spamming in the chat. ERROR: NetXCmd buffer full, cannot add netcmd 21! (size: 237, needed: 37) I assume this tool is gonna need an update for 2.1.15 huh?

Last edited by BASHDUP; 05-28-2016 at 09:47 PM.
BASHDUP is offline   Reply With Quote
Old 05-28-2016   #49
Wolfy
wolfs
Developer
 
Wolfy's Avatar
Default

Terminal v1.2 has been released, check the release post for the changelog.
__________________
Quote:
[23:56:36] <SM-MaxX> prisma illya is a gift to this impure earth and a shining beacon for all anime
Wolfy is offline   Reply With Quote
Old 05-29-2016   #50
CalebM
Look at this placed Comment
Permanently Banned
Default

Everytime I exec loadall.txt, it does term_logins.txt.

Its annoying after a while.
CalebM is offline   Reply With Quote
Old 07-03-2016   #51
MosaicMario
Possessed User Title
 
MosaicMario's Avatar
Default

I accidently gave the wrong person all permissions and when I tried to undo this action I got the following error:
Quote:
>removepermission 2 all
WARNING: ./Terminal_Core.lua:271: attempt to call global 'A_MServ_getPlayerFromString' (a nil value)
However, I achieved my goal in removing all permissions from that person.
__________________
Possessed signature!
MosaicMario is online now   Reply With Quote
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 01:41 PM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2017, vBulletin Solutions, Inc.