To get automatically notified about SDK changes, you can subscribe to change tracking issue on GitHub.
- Ability to change progress text when using ActivateGlobalProgress
CurrentExtensionDataPathglobal variables for script extensions
- These changes do not break compatibility in current version (mentioned methods are still available in SDK), but they will be made breaking in future major Playnite updates.
Idto extension and theme manifests. This field is currently not mandatory for existing extensions (Playnite 8 will load installed extensions without an ID, but will not install new ones without an ID), but should be provided for better extension installation and update support. Toolbox will not pack new extensions unless
- The way custom menu items are implemented (for main menu and game menu) has been completely changed (the old system still works temporarily). See related documentation page for more information.
- NavigationChanged from IWebView is now obsolete, use new
- Metadata plugins can now provide
- Extensions can now provide custom menu items for game menus, including nested entries.
- Most useful Playnite settings are now exposed in IPlayniteSettingsAPI.
- ActivateGlobalProgress method to show blocking progress dialog.
- LoadingChanged event for WebViews.
- EvaluateScriptAsync method to execute JS code in a WebView.
- GetCookies method to get webview cookies.
- MarkdownToHtml method for converting Markdown markup to HTML.
- Metadata plugins can now provide
- Toolbox utility has been reworked and accepts different arguments then previously.
- Library plugins can now support extra capabilities.
- Added ImportGame methods to more easily add new games to the library.
- Added OpenPluginSettings method to open view with extension settings (also accessible via
OpenSettingsViewmethod inherited from
- Added StartGame.
- Added UriHandler for registering of custom URI method actions.
Featuresgame field and appropriate support for it in metadata plugins.
- Toolbox utility can now generate plugins and scripts.
- Toolbox utility can pack plugins and scripts into
.pextfile that can be used for easier distribution and installation.
- Removed reference to LiteDB package. You can remove it from your plugin project if it's present.
- Extension plugins are no longer created by inheriting plugin interface, but rather extending Plugin and LibraryPlugin abstract classes.
- IGameDatabase interface is completely changed and every object collection (Games, Genres, Tags etc.) is now accessible via appropriate
- Game changed dramatically. Fields like genres, tags and others are no longer part of the model itself but just ID pointers to appropriate database objects.
- Extended several API with new methods.
- Breaking Changes:
- Removed and added new APIs and API members.
- Game files are no longer stored in single database file. All game and media files are now accessible in their raw form even without user of database API.
- In order to unify terminology used in Playnite's UI and that in SDK, some classes and class members were renamed.
- Extensions (both plugins and scripts) have to provide extension manifest otherwise they won't be loaded.
- Various information about extension (author, version etc.) must be now stored in manifest file.
- Both plugins and scripts have to be stored in the same folder called
Extensions(rather then in separate
- Signature for default C# plugins has changed and they now have to implement
IGenericPlugininterface to be loaded.
New Plugin types. There are now two types of plugins that can be implemented:
- Static LogManager for easier log operations.
- Web Views API for creating web view windows or accessing offscreen browser.
- Resources API for getting application resources like localized strings.
- Paths API providing information about Playnite's application paths.
- Application Info API providing information about Playnite.
- GetPluginUserDataPath: Gets path dedicated for plugins to store user data.
- GetPluginConfiguration: Gets plugin configuration if available.
- LoadPluginSettings: Loads plugin settings.
- SavePluginSettings: Saves plugin settings.
- ExpandGameVariables: Expands dynamic game variables in specified game action.
- CreateLogger: Creates new instance of Playnite logger with name of calling class.