* New skincolors, color grid view for skincolor selection (!2027)
* Single-player files can now save when using mods! (!1749)
* Emblems and unlockables now work in Coop mode! (!1756)
* These are handled per-player, but the gamestate for unlockables is based on what the server has. (what levels are available in level select, linedef executor triggers, etc...)
* The multiplayer pause menu now displays the same stats as singleplayer, and use Emblem Hints + Emblem Radar.
* Modders: Added the "ShareEmblems" option to MainCfg, which makes Emblems collected by clients share with the server host, intended for progression-based level packs.
* Several new skincolor features: (!2027)
* Added 44 new base skincolor options.
* Updated the default colors for Knuckles, Amy, and Fang.
* Added color grid view for skincolor selection. Press Enter on the Color selector!
* Added the ability to press PageUp/PageDown to scroll through colors faster.
* Added some extra keys to the Player Setup menu for modders:
* Press Pause/Break to pause the character's walking animation.
* Press Insert to preview the current skincolor's opposite color shade on the background.
* Added the `renderhitbox` console variable, for modders to debug & fine-tune custom object hitboxes.
* UDMF: Implement per-texture offsets. (!2018)
* SOC: Added A_Shockwave, which spawns a ring of objects like Sea Egg's attack. (!1777)
* Lua: Added player power `pw_strong`. This allows for fine-tuning of player attack interactions. (!1366)
* Lua: Added time/date functions from the `os` library. (!2060)
* Christmas Mode will nevah die.
* Lua: Add `dispoffset` as a property for `mobj_t` userdata. This allows you to edit this directly instead of being tied to their `mobjinfo`. (!1708)
* Lua: Added access to floor/ceiling plane offsets, angle, and lighting. (!1884)
* Lua: Added R_TextureNameForNum and R_CheckTextureNameForNum, for getting strings from texture IDs. (!1880)
* Lua: Added `ping` as a read-only property for `player_t` userdata. (!2025)
* Dedicated servers: Added the "dedicatedidletime" console variable. This stops game logic from running when your server has no players interacting with it after the specified amount of time. Defaults to 10 seconds, can be turned back off by setting to 0. (!2019)
## Improvements
* Turn dispoffset into a mobj field (!1708)
* LUA_EnumLib optimizations for constant value access (!1721, !2017)
* Interpolate console animation, make con_height update on the fly (!1878)
* Allow targeting invulnerable bosses & don't break targeting when they take damage (!1917)
* Add HUD icons for timed NiGHTS powerups (!1949)
* Don't attract bomb spheres with Attraction shield (!1953)
* Small text colormap tweaks (!1971)
* Optimize field lookups in Lua metatables (!2024)
* Simplified the way invcolor works (!2027)
* Using an unlockable Level Select now gives you the option to use it again from the pause menu. (!1756)
* Raised several unlockable-related limits. (!1988)
* Allow targeting invulnerable bosses. (!1917)
* Don't break targeting when bosses take damage. (!1917)
* Added HUD icons for timed NiGHTS powerups if powerup display is enabled. (!1949)
* Bomb spheres are no longer attracted by the Attraction shield. (!1953)
* Score chains can be gotten from rolling again. (!1833)
* Interpolated console animation. (!1878)
* Drop shadows are now interpolated while their caster is scaling. (!1986)
* Added extra colors to the NiGHTS Link palette cycle past 600. (!1811)
* 3D model improvements: (!1840)
* Support sprite x/y offset, adjusts the model position sideways relative to the camera.
* Support sprite x/y scale; x scale adjusts model horizontal scale, y scale adjusts model vertical scale.
* Sprite roll angle is now handled like Software, where the roll is done relative to the camera.
* Note for modders: `rotaxis` in spriteinfo has been deprecated, as it is now handled automatically.
* Console improvements:
* Added "true" and "false" as possible values for console variables. (!2049)
* Show list of aliases when typing "alias" alone. (!2055)
* Replace existing aliases if there's already one with the same name. (!2055)
* Changed function key behaviors:
* F10 now toggles fullscreen and windowed mode. There is also now a separate resolution used for windowed mode.
* F11 now toggles the current renderer.
* Netcode improvements:
* Drastically improved input pacing when connected as a client with interpolation turned on. (!2046)
* The game puts you in a "waiting for next level" state when trying to join on intermission, avoiding a desync. (!2019)
* Prevent connection timeouts during fade transitions. (!2019)
* Clients are now consistently given a connection timeout when their delay reaches past the end of the backup buffer. (!2019)
* Refresh all character sprites when new Sprite2s are added. This makes characters able to supply animations for level packs without being load order dependent. (!1750)
* Adds new linedef actions 516-518, 526-528 and 536-538, for scrolling/carrying both floors and ceilings simultaneously.
* Checking the Effect 6 flag on these actions allows setting the scrolling/carrying/pushing speed/strength via the front X offset, instead of the linedef's length.
* SOC: Custom gametypes with both teams and lives now shows your lives count. (!1579)
* SOC: Simplified the way the `invcolor` property for skincolors works. (!2027)
* Lua: Overriding SOC actions using `super` now respects other loaded mods. (!1737)
* Lua: Optimized `LUA_EnumLib` constant value access. (!1721, !2017, !2034)
* Lua: Optimized field lookups in metatables. (!2024)
* Small tweaks were made to text colormaps for custom graphics. (!1971)
* Crash handler messages were made more descriptive. (!2042)
## Bugfixes
* Fix IPv6 (!1612)
* Allow adding cosmetic addons mid-save (!1877)
* Handle other sidedef correctly when attaching to a wall to climb it (!1908)
* Refactor P_CheckSector to prevent crushing oddities with multiple players (!1946)
* Fix linedef action 420 being unable to lower light levels properly by default (!1977)
* Fix segfault when P_RemoveMobj is called within A_FaceTarget action (!1974)
* Fix segfault when shields are removed after thinking (!1975)
* Fix segfault when going up steep slopes in rare cases (!1978)
* Fix segfault when Crushstaceans hit a player with Armageddon shield (!1980)
* Fix I_GetFreeMem for 64-bit platforms (!1982)
* Fix scrolling backgrounds (!1985)
* Interpolate shadows when scaling mobjs (!1986)
* Fix flung spheres not using the blue sphere collection effect (!1995)
* Fix camera interpolation never being reset (!2008)
* Fix collision issues with thinner and wider players (!2013)
* Fix segfault when ghost dies from a death pit (!2026)
* Fixed Mario mode's invincibility & NiGHTS score sprite color cycling (!2027)