[b]Client Workshop Improvements:[/b] [list] [*]Popular and featured workshop item articles can now be dismissed. If the carousel is empty then the next-most popular item is used. [*]Featured workshop item subscription can be managed from the title menu. [*]Workshop subscriptions changed while in-game are detected and update the maps list. [/list] [b]Server Workshop Improvements:[/b] [list] [*]Moved WorkshopDownloadIDs.json into WorkshopDownloadConfig.json. Server now caches query results and will retry when query fails. [*]Whitelist/blacklist download restrictions are now enforced during connection. [/list] [b]Quality of Life:[/b] [list] [*]Flashbangs can no longer be used in safezones or around friendly sentry guns. [*]Teleport command and NPC teleport rewards now report when destination was obstructed. [*]Oxygen now persists between logins to prevent resetting it at high altitudes. [*]Stockpile new label is now dismissed when the button is clicked. [/list] [b]Map Creation:[/b] [list] [*]Added support for per-level tips, enabled by setting "Tips" to a number in Config.json, and then adding Tip_0, Tip_1, Tip_# to localization file. [*]Added level Allow_Skills and Allow_Information config. [*]Added Prevent_Building_Near_Spawnpoint_Radius to level config (default 16.0). [/list] [b]Asset Creation:[/b] [list] [*]Custom objects can specify Add_Kill_Triggers true to cause Triggers children with name "Kill" to kill players. [*]Added Can_Use_Underwater true/false for equipable items which defaults to false for primaries. [/list] [b]Plugin Development:[/b] [list] [*]Added questCompleted event for plugins. [*]Added updateReplicatedState barricade function for plugins. [*]Added helper functions for plugins to easily spawn replicated buildables. [*]Added onPerformingAid and onPerformedAid events to UseableConsumeable for plugins. Individual stats are best compared by using both, as theys always occur in pairs. [*]Disabled many missing asset related errors when -SkipAssets is enabled. [*]Replaced serversideSetPluginModal with EPluginWidgetFlags granting more control of UI. [*]Tidied up some of the damage events by moving parameters into structs, and tracking the damage instigator. [/list] [b]Game Config:[/b] [list] [*]Added gameplay config for disabling structure, barricade and vehicle zombie targeting. [*]Added Use_Airdrops to gameplay config. [*]Added Enable_Kick_Input_Spam and Enable_Kick_Input_Timeout config. [/list] [b]Server Console:[/b] [list] [*]Hosts can now specify -NoWin32Console on the command line to prevent the Windows server from manually allocating/freeing a console window. [*]Separated Windows-specific console input/output from shared console code, and allowed plugins to override IO handling by implementing ICommandInputOutput and calling setIOHandler. When using a custom handler you can specify -NoDefaultConsole on the command line. [/list] [b]Fixes:[/b] [list] [*]Fixed Paddle repair blueprint. [*]Fixed clothes not respecting Should_Drop_On_Death option. [*]Vehicles in safezones now properly ignore all damage. [*]Fixed not loading per-map .content files from workshop during connection. [*]Fixed log files not sharing read access. [*]Fixed several plugin network events not wrapped in try-catch blocks. [*]Fixed cancelling pending exchange notification. [*]Fixed Spread_Aim between 0.8 and 1 visually increasing crosshair size. [/list] [b]Miscellaneous:[/b] [list] [*]Menu notification system which was added back in 2017 but never used now supports timed windows and dismissing it, so today it links to the Short Film Contest voting stages. I expect we'll see it again for future community events. [*]Accepted three new outfit bundles. [/list]