SRB2 Message Board  

Go Back   SRB2 Message Board > Sonic Robo Blast 2 > Kart Releases & Mods > Miscellaneous

Reply
 
Thread Tools
SPB Attack + HOSTMOD V6 Details »»
SPB Attack + HOSTMOD V6
Version: 6, by TyroneSama (now "Tyron") TyroneSama is offline
Developer Last Online: Mar 2020

Category: Version: SRB2 Kart Rating: (8 votes - 4.00 average)
Released: 06-24-2019 Last Update: 03-26-2020 Installs: 4
Scripts Re-Useable Content

This is two things in one file, because there's way too much high-quality community content and everyone's hurting for file limit. They serve the same purpose, though—stuff you'll be glad to have on a 24/7 server.

HOSTMOD

This is a collection of scripts that I've been running on my server for a while, cleaned up for general use with some added configuration options. Some scripts are adapted from code written by Snu and wolfs, used and distributed with permission.

V2: Added extra configuration options to the joinbug handler.
V3: SPB Attack + Joinguard
V4: hostmod_joinguardpanic, fixes for SPB Attack cosmetic errors, and fixes the ancient issue where players affected by antispecbomb would still be visible on the minimap.
V5: New battle features (hostmod_timelimit, hostmod_bail) and various SPB Attack fixes; see below.
V6: Restat, Alternate Powerup Timers, and MOTD Banner. Also fixes an SPB Attack issue where controls could softlock when you were killed on a dash panel, and significantly relaxes banana rates on high-lapcount courses during Expert Mode.

Spoiler: Latency Viewer

hostmod_lagview: Client-side, not a netvar, off by default to reduce clutter. When on, displays a color-coded latency readout to help players identify who's responsible for lag spikes. When hostmod_lagviewclean is on (default), this will only show players that reach maximum latency. When off, it will show all players—this provides more information but can get a little crowded during play (see video below). Note that this is not limited to admins, to allow resourceful players to diagnose issues even when the host is away.



Spoiler: Spectate Blocker

hostmod_antispecbomb: Off by default to avoid breakage (haven't found anything yet, but this messes with the TIMEOVER flag and could conceivably screw with the behavior of other scripts). When on, players who attempt to spectate during a race will blow up instead, and won't join the spectators until the race has completed. This is meant to prevent a bug where midrace spectating forces a resync, but also acts as a minor incentive against rage-spectating.
V3 hostmod_antispecbombdebug: Prints the softlock timer to server console. After 32 seconds where all players appear to be finished, dead, or spectating, this script will forcibly end the round, assuming that a softlock of some kind occurred: if you're running into issues with this behavior, turn this on and provide a log when reporting.


Spoiler: Joinbug Handler

DEPRECATED. No longer necessary or helpful, off by default. Use Fickle's antifreeze instead.

hostmod_legacyantijoinbug: On by default. When on, players can type "j" to start a vote to temporarily disable joins; this helps mitigate a glitch where players will repeatedly join, timeout and rejoin, slowing the game to a crawl. If enough players type "j" to agree, joins will be disabled until the start of the next race. Joins will automatically reenable if all players leave the server.
V2 hostmod_antijoinbugrage: Prints a secondary message, angrily warning everyone to only use this when repeated timeouts have taken place.
V2 hostmod_antijoinbugmajority: Percentage of players required to vote before joins will be disabled, from 1 to 100.
V2 hostmod_antijoinbugmin: The minimum number of players that can ever trigger a vote to disable joins.
V2 hostmod_antijoinbugforceint: Forcibly reenables joins on frame 1 of intermission, to allow for a wider window for potential joiners.


Spoiler: Autokick

hostmod_cannon: Automatically kicks or bans players whose names match strings defined by the host. The list is empty by default: add a string using something like hostmod_cannon Sonic. Any players whose names contain that string (case-insensitive) will be kicked; hostmod_cannonmode can be changed to "Print" to just print the offending player's name (useful for testing), or "Ban" to immediately ban instead of simply kicking. This is intended for the occasional Internet cryptid who (poorly) evades normal moderation with a mobile connection.


Spoiler: Random Encore Mode

hostmod_encorechance: Default 0, can be set from 0 to 100. Specifies the percentage chance that the server will turn on Encore Mode between rounds. This is provided as a replacement for kartvoterulechanges for servers that don't wish to allow Battle mode.


Spoiler: Joinguard

DEPRECATED. No longer necessary or helpful, off by default. Use Fickle's antifreeze instead.

Don't use this with the joinbug handler. Will not be useful if intermission is disabled.
V3 hostmod_legacyjoinguard: Off by default. When on, joins will automatically be turned off during races and on during intermission.
V3 hostmod_joinguardservername: When not empty, will be used as a partial server name, adding join status to the end: for instance, setting this to "Cool Server" will display "Cool Server 1/3" on lap 1 of 3, "Cool Server 3/3" on lap 3 of 3, and "Cool Server OK" during intermission. This can be used to let players know when joins are enabled.
V4 hostmod_joinguardpanic: Timer in seconds. If a round hasn't finished for this long, joins will be forcibly enabled until a round has finished. (If a new round starts without the previous round finishing, the timer will persist, and will only be reset after long periods of inactivity.)


Spoiler: Battle Features

V5 hostmod_timelimit: The base game cvar "timelimit" will be set to this value whenever a Battle match starts. This is provided as a workaround for servers that allow both Race and Battle mode, since switching to Race will unset the timelimit.
V5 hostmod_bail: When on, allows players to type "bail" to end a Battle match if no one else is playing, preventing a server from being stuck on Battle mode until another player joins.


Spoiler: MOTD Banner



V6 hostmod_motd: Off by default, controls whether to show the MOTD banner.
V6 hostmod_motdalways: Off by default. Off = show once on join, On = show for all players on every map.
V6 hostmod_motdname: Server name. \123 format color codes supported.
V6 hostmod_motdcontact: Server owner / point of contact. \123 format color codes supported.
V6 hostmod_motddesc: What you'd probably normally put in the MOTD. Scrolls if it goes offscreen, but add too much and you'll NetxCmd overflow anyway because this game is made of tissue paper. \123 format color codes supported.
V6 hostmod_motdbackground: Takes a skincolor name. Controls the color of the banner background.

V6 hostmod_motddebug: Print debug information for help in diagnosing bugs. Also pins the banner to the bottom of the screen.


Spoiler: Alternate Powerup Warnings

V6 hostmod_powerupsound: Off by default, local. Plays a 3-second warning sound when Grow or Invincibility are about to expire. Intended for players with sounds off or custom grow/invinc theme replacements.
V6 hostmod_powerupflash: Off by default, local. Makes Grow's blue flash faster when it's close to expiring.


Spoiler: Restat

Inspired by Lucario's Engine Swap, but designed according to my personal neuroses. Allows players to adjust their stats independently from their character.

V6 hostmod_restat: Off by default. Controls whether Restat is available to players.
V6 hostmod_restatnotify: On by default. When off, will not print stat changes to chat.

V6 hostmod_restatdebug: Print debug information for help in diagnosing bugs.


V3 SPB ATTACK

A frontrunning practice mode. Works locally, but also works in multiplayer, turning off when more than one player is active. I personally think this is way more interesting than watered-down Record Attack—give players something to entertain themselves with while they wait for competition. :>

Includes extra visual and audio feedback for SPB distance, some basic stats display, the ability for solo players to select their desired map even without op, and a few hidden/not-so-hidden features.

Spoiler: Configuration

V3 hostmod_spba: On by default. When off, SPB Attack won't trigger. Use this on servers with single-player gameplay mods, like Wipezones.
V3 hostmod_spbadebug: Vomits large amounts of debug print.
V3 hostmod_spbatimeout: Default 30. If a player idles at the result screen for this many seconds, the round will end.
V3 hostmod_spbawaitmsg: A configurable message displayed at the bottom of the screen.
V3 hostmod_spbaplugmsg: A configurable message displayed at the bottom of the screen. If you make additional changes to the mode, please change this to make it clear that whatever happens is not my responsibility to fix.


Download Now

File Type: pk3 KL_HOSTMOD_V6-superiscoolactually.pk3 (1.32 MB, 68 views)

Screenshots

Click image for larger version

Name:	mb_please_take_my_image.png
Views:	394
Size:	254.2 KB
ID:	20361  

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 06-25-2019   #2
D00D64
Worst Ranked 'Kart Player
Moderator
 
D00D64's Avatar
Default

Although I have not been able to fully test this myself, I feel confident in letting this into releases after seeing your server at work. My only question; is this Kart only? I put it in Kart releases for now, but if it is compatable with Vanilla SRB2, I'd like to put it int hat section instead. It seems only Encore Mode options are Kart specific?
__________________
The least skilled player on the Kart Krew dev team, but I try my best. Maybe someday...

My awful Twitter account

My also awful YouTube channel
D00D64 is offline   Reply With Quote
Old 06-26-2019   #3
TyroneSama
now "Tyron"
Default

I marked it as Kart because I can't guarantee it wouldn't blow up in vanilla SRB2, but as long as p.cmd.latency is exposed and exit conditions work the same, it could potentially work there as well? Encore mode stuff shouldn't even visibly error, since it just attempts to set the cvar as server. Might test at a later date, though it's not a priority for me right now. If anyone else feels like giving it a run, report back?

Update: IntermissionThinkers make most of these scripts vanilla-incompatible, and p.cmd.latency isn't exposed in vanilla SRB2. Unlucky.

Last edited by TyroneSama; 06-26-2019 at 12:33 AM.
TyroneSama is offline   Reply With Quote
Old 06-26-2019   #4
ThatAzazelFire
The Ghost
 
ThatAzazelFire's Avatar
Default

seems really neat. i like it. good job.
__________________
Oh, i posted. cool.
I Own over 20 Characters.

My pretty empty twitter account
ThatAzazelFire is offline   Reply With Quote
Old 07-01-2019   #5
KashiKakes
Default

Thanks so much for this, these commands are a godsend!
KashiKakes is offline   Reply With Quote
Old 08-03-2019   #6
TyroneSama
now "Tyron"
Default

V2 is out, adds some configuration options for the joinbug handler. GANBARE, RACE DX
TyroneSama is offline   Reply With Quote
Old 01-12-2020   #7
TyroneSama
now "Tyron"
Default

V3 is out. Details in OP. Enjoy frontrunning hell.
TyroneSama is offline   Reply With Quote
Old 01-21-2020   #8
TyroneSama
now "Tyron"
Default

V4 is out, includes a few minor fixes. The nature of Joinguard makes it impossible to preemptively prevent all abuse, but this should significantly mitigate it, so normal play can continue without the host intervening.

(I really should have seen this coming.)
TyroneSama is offline   Reply With Quote
Old 02-07-2020   #9
TyroneSama
now "Tyron"
Default

V5 is out, includes two features intended for Race+Battle servers and some SPB Attack changes:

- You can now cancel SPB Attack and return to freeplay by holding Brake during the countdown.
- Distance tracking now takes the SPB's physical extent into account.
- Various HUD alignment fixes.
- Closest Call "blue star" threshold made more lenient—it was previously impossible on a large number of courses.
- Peril "blue star" and "red star" thresholds made significantly more lenient—they were previously impossible almost everywhere and unnecessarily annoying, respectively.
TyroneSama is offline   Reply With Quote
Old 02-24-2020   #10
Cramoisi
Default

Hello, i am currently mad at this mod, because the cancel method isn't working anymore, In fact, the message for how to do it dosen't show up anymore, either.
Cramoisi is offline   Reply With Quote
Old 3 Weeks Ago   #11
TyroneSama
now "Tyron"
Default

Quote:
Originally Posted by Cramoisi View Post
Hello, i am currently mad at this mod, because the cancel method isn't working anymore, In fact, the message for how to do it dosen't show up anymore, either.
Cannot reproduce. Check which version you're running?
TyroneSama is offline   Reply With Quote
Old 5 Days Ago   #12
TyroneSama
now "Tyron"
Default

V6 released. Includes MOTD Banner, Alternate Powerup Warnings and Restat. Also includes SPB Attack bug fixes and Expert Mode nerfs on high lapcounts.



Restat is probably the weirdest addition here—inspired by Lucario's Engine Swap, but designed according to my personal neuroses, it's a bit of a stretch to call it "QoL for dedicated servers". However, I see this hosted enough on highly modded servers (most of which use HOSTMOD) that I figured my own implementation could give them back a file slot—Lucario's implementation is marked as non-reusable and forbidden in repacks, plus repacks suck anyway. I also just really like the concept and wanted to try my own take.

There's enough of a difference between the two that neither replaces the other; Engine Swap has extremely in-depth help text, a different stat input format, and allows hosts to unlock the stat range to set "impossible" stats. Restat doesn't have any of these things—it's very lean, so if you're already comfortable with Engine Swap you can leave it off and let Engine Swap do its thing. Its primary gains are full replay support and slightly better conveyance for stat changes, since by default the server is notified when you switch stats—this isn't a perfect solution, but should marginally reduce the number of times you get power-bombed by a 9/9 Tails.

This is a bunch of new stuff, and while it's been tested a lot, it's only been tested inhouse. Let me know if you run into issues, and thanks for reading.

Last edited by TyroneSama; 5 Days Ago at 08:58 AM.
TyroneSama is offline   Reply With Quote
Old 5 Days Ago   #13
ThatAzazelFire
The Ghost
 
ThatAzazelFire's Avatar
Default

Seems Pretty interesting and well made

maybe I'll use it when i host a server again.
__________________
Oh, i posted. cool.
I Own over 20 Characters.

My pretty empty twitter account
ThatAzazelFire is offline   Reply With Quote
Old 5 Days Ago   #14
Callmore
Default

When loading HOSTMOD from either the main menu (through the console) or through the addons menu, the game will throw a warning that the file has errors. After checking console it shows a warning saying:
Code:
WARNING: ./DOWNLOAD/KL_HOSTMOD_V6.pk3|lua/neomotd.lua:74: attempt to index global 'server' (a nil value)
Starting a server after this error occurs seems to run HOSTMOD like normal but the MOTD will not display (even after turning on hostmod_motddebug and changing map)
Here the window on the left is the server, while the window on the right is connected though localhost. The MOTD does not display on the server but is displayed on the client.

In this image, i have loaded HOSTMOD while inside the server instead of on the main menu, the MOTD displays like normal.
Callmore is offline   Reply With Quote
Old 5 Days Ago   #15
TyroneSama
now "Tyron"
Default

Thanks for this, didn't test under those conditions because I'm always hosting dedicated. Uploaded a quick hotfix.

E: "KL_HOSTMOD_V6-dumbidiotfix.pk3" contained an extremely unfinished feature that wasn't intended to be in release—this is what happens when you update right before bed. My apologies to Super and anyone else who had it misfire on them—that will be coming back later, when I've actually finished programming more than a quarter of it. "KL_HOSTMOD_V6-superiscoolactually.pk3" is the fixed version, linked above.

Last edited by TyroneSama; 4 Days Ago at 02:39 AM.
TyroneSama is offline   Reply With Quote
Old 4 Days Ago   #16
Callmore
Default

HOSTMOD seems to conflict with elimination. When either is loaded after the other the game crashes with this error:
Attached Thumbnails
Click image for larger version

Name:	Elim+HOSTMOD.png
Views:	184
Size:	7.0 KB
ID:	28881  
Callmore is offline   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 Off
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 01:03 AM.


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