Skip to content
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
81 lines (61 sloc) 5.42 KB

To get automatically notified about SDK changes, you can subscribe to change tracking issue on GitHub.


  • Breaking Changes:

    • Toolbox utility has been reworked and accepts different arguments then previously.
  • New

    • 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 OpenSettingsView method inherited from Plugin class).
    • Added StartGame.
    • Added UriHandler for registering of custom URI method actions.
    • Added option settings when creating offscreen web view (currently only option to disable JavaScript execution).
    • Added OnGameSelected, OnApplicationStopped and OnLibraryUpdated events.
    • Added Features game 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 .pext file that can be used for easier distribution and installation.


  • New
    • Added support for creating metadata providers via plugins.
    • ChooseImageFile method for dialogs API. Only available in Desktop mode.
    • ChooseItemWithSearch method for dialogs API. Only available in Desktop mode.


  • Removed reference to LiteDB package. You can remove it from your plugin project if it's present.


  • Breaking Changes:

    • 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 IItemCollection property.
    • 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.
  • New

    • 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.


  • Breaking Changes:

    • 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 Plugins or Scripts folders).
    • Signature for default C# plugins has changed and they now have to implement IGenericPlugin interface to be loaded.
  • New Plugin types. There are now two types of plugins that can be implemented:

    • Generic Plugin: Same as the old plugins.
    • Library Plugin: Used to add new library providers responsible for automatic game import from various sources.
      • All existing supported library importers (Steam, GOG etc.) are now distributed as library plugins.
  • New APIs:

    • 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.
  • New Methods

    • 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.


  • Breaking Change: Scripts and Plugins must be place in subfolders rather then directly inside of Scripts or Plugins folders.
  • New: OnGameStarting event that will execute before game is started. See events for use from scripts.
  • New: ShowErrorMessage method in IDialogsFactory
You can’t perform that action at this time.