Added first version of plugin manifests; this replaces having many different *.sig files in a plugin with a single .manifest file, and is a stepping stone towards bigger features to come
Added first version of competition profiles; this allows competitions to explicitly define allow- and block-lists (in coordination with the Openplanet team)
Added Openplanet-Old.log for the previous session log file
Added export_dependencies to plugin info file which is useful for nested dependencies (eg. A depends on B depends on C, where B's exports contains types from C)
Added the ability to use the core API audience in the NadeoServices dependency
Added the ability to display descriptions for screenshots in the Plugin Manager (thanks MisfitMaid)
Added the ability to display screenshots at arbitrary aspect ratios in the Plugin Manager (thanks MisfitMaid)
Added signature modes: you can now load the game with only a specific set of plugins; all signed and unsigned plugins, all signed plugins, all TMGL-approved plugins, and all official plugins. (Previously TMGL-approved plugins were available as a separate Openplanet build, but is now released publicly!)
Added "enable window docking with shift" option to new "overlay" settings menu
Added ability to create custom overlay styles
Added experimental JIT compiler to speed up script execution with about 30% (must be enabled in the settings)
Json::Value is now a reference type instead of a value type, allowing more efficiently passing around objects
Added void RenderEarly() callback to handle early rendering. This is useful for dependency plugins such as Camera that need to execute some logic during rendering, but don't necessarily have to render something.
Added sanity check warnings for get_Property() method calls instead of .Property
Added sanity check warnings for class methods that are missing override keywords
Added sanity check warnings for string parameters in functions that are unnecessarily copied
Fixed multi threaded plugin execution to be a little bit safer (but not completely safe)
Fixed crash when calling Discord::GetUser before Discord is actually ready
The Compatibility.as script is now only added to packaged .op plugins (to make sure developers don't use deprecated functionality during development)
Upgraded some script imports to built-in API's: Permissions, Time, Formatting (importing them manually is now deprecated)
Deprecated script imports are now skipped and throw warnings instead of importing an empty script
Deprecated void RenderSettings() without [SettingsTab]