SRB2 Message Board  

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

Thread Tools
BIRD Mod v2.1 Details »»
BIRD Mod v2.1
Version: 2, by jameds (James) jameds is offline
Developer Last Online: Mar 2020

Category: Version: SRB2 Kart Rating: (2 votes - 3.60 average)
Released: 09-01-2019 Last Update: 10-12-2019 Installs: 1
Re-Useable Content Code Changes

Formerly Less Battle Votes, I present Bird Mod v2.1!

...A collection of most of my miscellaneous modifications for
Kart. All of these changes are either client-side or
server-side, meaning netplay compatible!

Attached are 32-bit and 64-bit Windows executables, in

A source code archive is also attached. You can find the Git tree here. (Please
ignore by dumb commit names. NETVAR was intentional and makes sense.)

nodes and getplayernum have been replaced, see Everyhing Else, below.


Less Battle Votes:

In addition to kartvoterulechanges, kartgametypechanges and kartencorechance
may be used to control the chances for gametype changes and encore respectively.

Both variables also use the values Always/Frequent/Sometimes/Never.

Setting kartvoterulechangs will also set these variables. The new
variables cannot be used by admins however.
  • lessbattlevotes Yes/No

    When already in Battle, the third vote wall always go to
    Battle, but all others (including random) will go to Race.

  • lessencorevotes Yes/No

    With Encore mode enabled -- from the menu or kartencore --
    only the third vote will ever go to Encore mode. If
    kartgametypechanges is also enabled, a Battle
    vote may override the Encore vote.

Also check out VR_ARENA by Eldog, which was designed with this modification in mind!

Reset Downloads:

The following commands apply only as the server.
  • resetdownloads

    Forcibly close every download. Anyone who is currently
    downloading WILL time out. This recovers most lock
    outs, except for some very rare and nasty ones.

  • autoresetdownloads On/Off

    Automatically reset downloads when anyone disconnects. Enabling
    this has the potential to interrupt downloads too often, hence why
    it's now a toggle, and off by default.

  • downloadnotice Text

    If the text is not empty (""), send a custom download refusal message
    to anyone who attempts to download files, which are prohibited from
    being sent (this includes downloading disabled), from the server. A
    list of files missing is printed in the console of the joiner, but may not
    include every file due to limitations.

Type /resetdownloads in chat, as the first part of your message, to reset
downloads on the server. Normal players can only use this chat command
once per race. Admins do not have this restriction.

Spoiler: My Pain and Suffering

In order to send the refusal message, the final state of normal joining must be reached. In order to reach this state, the client must finish all downloads successfully. One byte stub files are sent by the server instead of the real files to accomplish this. Downloading joiners will see errors in their consoles from the game attempting to add these stub files, but these errors are benign. In order to print the list of files in the console only, as not to clutter the screen, the text box (what refusal messages display within) is intentionally given text to draw that causes the drawing function to fail, which causes further drawing to cease, and then print the whole message in the console. Due to the steps necessary to fail the function, the background that would normally draw behind the text box's text is offset far off screen. So text may be less legible.

Improved Map Searching:

I have overhauled the map command to support warping to maps by
name and keyword (e.g. map Hills would likely take you to Green
Hills Zone). Two character map names are also supported (e.g. XV
from MAPXV), as well as the Base-10 map number (though why would
you use this). Parameters such as -force and -gametype may be
abbreviated. You'll have to actually use the map command to discover
what the abbreviations actually are!

Standalone Music Loading:

You can now load an infinite number of standalone music files via the addfile command
or -file parameter. These files do not contribute to the WAD limit. The first six characters
of the file name are used as the music name. I.e. after adding a file named "some_song.ogg",
you could execute tunes some_s in console to play it. "O_" is also prepended to the six
character name, in order to make a lump name, meaning that these standalone music
files may replace map music.

The addmusic command and -musicfile parameter both take two arguments. A file name.
And a music name to use instead of the first six characters of the file name.

If you add a music file that would have the same name as a
previously added music file, the new file replaces it.

If the music you add replaces a song that is already playing,
the new new music plays from the start.

Playing music from the standalone file requires opening the file each
time. This CAN be slow, but not usually more than, at most, a second

MY Audio:

growmusic and supermusic may be used to toggle Grow
and Invincibility music. The values are Yes and No.

growmusicfadein and supermusicfadein measure, in milliseconds, how long of a
fade in should occur when level music is switched back to after Grow and Invincibility
music. defaultmusicfadein has the same effect, but for any other music that may
interrupt level music. (Most likely Lua music changes.)
  • playendingmusic Always/Never/Race/Battle

    Choose when end of Race/Battle music may play.

  • playenginesounds Always/Rev/Race/Finish/Rev+Race/Rev+Finish/Race+Finish/Never

    Choose when engine sounds may play.
    "Rev" refers to the time before race.

  • resumemusic Yes/No

    Resume level music at the position that it left off.
    WARNING: Module music will start over anyway.

  • crossovermusic On/Off

    Start playing level music at the start of a level from
    the point it left off last level, if the level is the same.

Everything Else:

The nodes and getplayernum commands have been replaced
by listplayers. The new command also shows player's colors!
  • showviewpoint Yes/No

    Toggle "VIEWPOINT:" text on the HUD in replays.

  • showfreeplay Yes/No

    Toggle "FREE PLAY" text when you're alone.

-bindaddr now affects the Master Server connection as well. If you actually have multiple
IP addresses, you can now host multiple servers from your network. (Hi Tyrone!)

You may use caret codes (^0 to ^9 and ^A to ^F) to color the server name and
custom download refusal message.

Instances of "node" instead of "playernum" have been corrected. Instances of
node being included where it may be confusing, such as player join messages,
have been removed as well.

These changes also include everything from master. (That means mserv fix too!)

Changelog for master so far (11 Oct 2019):

  • Master Server connection "fixes" have been reverted, old bandaid fixes for *nix replace them.
  • Fixed view command off by one indexing error.
  •'s web view and Doomseeker are now compatible with Kart, and will display player info--name, score, time--without error.
  • OpenGL previously treated turning precipitation off as "draw precipitation at infinite distance". This has been fixed!
  • Fixed returning to modified game alert when not having selected a room.
  • Fixed a buffer overflow in fileneeded that could cause some files to always be downloaded, due to the md5sum being corrupted.
  • Corrected "foward" to "forward" in the replay controls.
  • Correct OpenGL wall render clipping to match Software.
  • Fixed a segmentation fault that could occur upon saving a replay, due to a mishandled file offset.
  • OpenGL skywalls should render almost identical to Software.
  • Connecting to an address without specifying a port too would use the port from the -port parameter as a default. This has been fixed.
  • CV_FLOAT console variables now work with the add command. (This means camera variables most notably.)

Reset Downloads also included a fix for downloads consistently ceasing after a certain number of files.

Download Now

File Type: zip (3.42 MB, 862 views)
File Type: zip (3.65 MB, 126 views)

Show Your Support

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

Old 09-01-2019   #2
Worst Ranked 'Kart Player
D00D64's Avatar

I haven't been able to test how this truly works in a netgame, but I place enough faith in jameds to have gotten this working. However, do feel free to post if any issues crop up.
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 10-12-2019   #3

BIRD Mod replaces Less Battle Votes. Just read the original post. There's no changelog, because everything is new!
Originally Posted by AlamTaz
please directly any issues about to NOTGIVINGAFULLFUCK
jameds is offline   Reply With Quote
Old 10-12-2019   #4

BIRD Mod V2 released!

These are the changes at a glance (read the OP for details):
  • listplayers command replaces nodes and getplayernum.
  • Instances of "node" where it may be confusing have been replaced.
  • Level music resuming, optionally disabled via resumemusic. Also see crossovermusic.
  • Level music fade in via growmusicfadein, supermusicfadein, and defaultmusicfadein.
  • showfreeplay toggles "FREE PLAY" HUD text.

The version of BIRD Mod is also identified on the menu and window title.
Originally Posted by AlamTaz
please directly any issues about to NOTGIVINGAFULLFUCK
jameds is offline   Reply With Quote
Old 10-13-2019   #5

BIRD Mod 2.1 is released.

I added back kartvoterulechanges. It now sets the other two variables. Those two variables also can't be changed by admins. Sorry!

This update resolves "Netvar not found" warnings in console. If you don't mind seeing those, I guess you may not need to update, assuming the netcode plays nice.
Originally Posted by AlamTaz
please directly any issues about to NOTGIVINGAFULLFUCK
jameds is offline   Reply With Quote

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 09:59 AM.

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