Learned the cause of the seemingly random crashes it causes; doesn't seem easy to fix, so it can stay a relatively-unknown console command until it does
* Fixed the conditionals for `suicide` and `retry` commands - `suicide` is now allowed in singleplayer, and `retry` no longer checks your lives (for now).
* Disable the "traditional" level reload method (which `retry` tried to use), since it was completely broken with the other changes we've made. Mapchanges only.
* Made retries cause a mapchange, per the above.
* Disable the last source of skincolor trampling in the game - loading a level while not netgame or record attacking.
The Menu Queen is in the house~ ✨
* Magical, single-page player select and general netgamey stuff, while still remaining both pretty and functional.
* Death to NOFOURPLAYER, now that the cat's out the bag.
* Clean up NONET, assuming people try to make DD builds on release.
* Minor tweaks across the board, mostly places where I wanted to pilfer minor code from and realised it wasn't done optimally originally.
* Multiplied rain speed by 3, per Oni's request.
* Disable weather density - force to 1 if weather draw distance, otherwise zero
* Move the ceilingpic check into a more convenient part of the weather spawning loop.
* `drawdist_precip_cons_t` - replaces "Infinite" with "None".
* Disable the lowest normal draw distance (256), given... both kart and srb2 are basically unplayable like that.
* Disable cv_drawdist_nights entirely.
Also: temporarily cleaned up the M_CanShowLevelInList record attack conditions to automatically match what we want, instead of requiring us to apply a bunch of vanilla flags just to emulate our "available unless explicitly hidden" MP mechanism like is currently in maps.kart.
You can now remap Change Viewpoint, Screenshot, and Toggle GIF Recording to other keys, mainly for gamepads
They also pushed me to my breaking point and I couldn't tolerate the control menu anymore, thanks to toaster for the scrolling backport
* Add `kartvoterulechanges`, or "Voting Rule Changes" on the menu, to allow some user control over event frequency.
* "Never" - does what it says on the tin.
* "Sometimes" - 1/8 chance of Encore if host has unlocked it, only gametype change when buffer is full
* "Frequent" - 1/2 chance of Encore if host has unlocked it, gametype change every 5 maps
* "Always" - If host has unlocked Encore, alternates between Encore and Gametype. Otherwise, always a gametype change
* There's probably room for a setting between "Sometimes" and "Frequent", but I didn't want to overload the host with options and these were the ones that made sense.
* Better handling of buffer refreshes, to prevent two of the same map appearing next to each other in the voting unless there literally aren't that many maps.
* Mostly unrelated: Minor bugfix for Y_SetupVoteFinish, preventing music changes/random sounds playing on the You Will Join Next Race screen. (Branch-appropriate, at least.)