### Get InstallationStatus Property in C# Source: https://api.playnite.link/docs/api/Playnite.SDK.Models.Game Gets the installation state of the game. This property returns a value of type InstallationStatus, representing the current installation status. ```csharp public InstallationStatus InstallationStatus { get; } ``` -------------------------------- ### PlayniteGame: PreScript Property Source: https://api.playnite.link/docs/api/Playnite.SDK.Models.Game Gets or sets the pre-action script to be executed before a game starts. This enables custom setup or initialization logic. ```APIDOC PreScript: Gets or sets pre-action script. Signature: public string PreScript { get; set; } Parameters: PreScript (string): The script content to execute pre-game. ``` -------------------------------- ### Playnite SDK Plugin: InstallController Source: https://api.playnite.link/docs/api/Playnite.SDK.Plugins Represents an installation controller for managing game installations. This class handles the logic for installing games. ```APIDOC Playnite.SDK.Plugins.InstallController: Represents installation controller. ``` -------------------------------- ### Playnite SDK Plugin: InstallActionArgs Source: https://api.playnite.link/docs/api/Playnite.SDK.Plugins Represents arguments for an installation action. This class provides context and data for actions performed during game installation. ```APIDOC Playnite.SDK.Plugins.InstallActionArgs: Represents arguments for installation action. ``` -------------------------------- ### InstallGame Method Source: https://api.playnite.link/docs/api/Playnite.SDK.IPlayniteAPI Initiates the installation process for a specific game identified by its unique database ID. ```APIDOC InstallGame(Guid gameId) - Installs game. - Parameters: - gameId: Guid - Game's database ID. ``` -------------------------------- ### Playnite SDK Plugin: GetInstallActionsArgs Source: https://api.playnite.link/docs/api/Playnite.SDK.Plugins Arguments for retrieving installation actions. This class is used to request actions related to installing or managing game installations. ```APIDOC Playnite.SDK.Plugins.GetInstallActionsArgs: Represents arguments for getting install actions. ``` -------------------------------- ### GameInstallationData Class Source: https://api.playnite.link/docs/api/Playnite.SDK.Plugins.GameInstallationData Represents data for game installation, including installation directory and associated ROMs. ```APIDOC GameInstallationData: Namespace: Playnite.SDK.Plugins Assembly: Playnite.SDK.dll Description: Represents data for game installation. Inheritance: object -> GameInstallationData Properties: InstallDirectory: Type: string Description: Gets or sets installation directory. Access: public { get; set; } Roms: Type: List Description: Gets or sets Roms. Access: public { get; set; } ``` -------------------------------- ### IsInstalled Property Source: https://api.playnite.link/docs/api/Playnite.SDK.Models.GameMetadata Gets or sets whether the game is installed. This property indicates the installation status of a game. ```C# public bool IsInstalled { get; set; } ``` -------------------------------- ### Get InstallSizeGroup Property in C# Source: https://api.playnite.link/docs/api/Playnite.SDK.Models.Game Gets the install size group of the game. This property returns a value of type InstallSizeGroup, indicating a categorized size. ```csharp public InstallSizeGroup InstallSizeGroup { get; } ``` -------------------------------- ### Playnite SDK InstallController Class Source: https://api.playnite.link/docs/api/Playnite.SDK.Plugins.InstallController Documentation for the abstract InstallController class in the Playnite SDK. It inherits from ControllerBase and implements IDisposable, providing methods for managing game installations. ```APIDOC InstallController: Namespace: Playnite.SDK.Plugins Assembly: Playnite.SDK.dll Description: Represents installation controller. Inheritance: - object - ControllerBase - InstallController Implements: - IDisposable Inherited Members: - ControllerBase.Name - ControllerBase.Game - ControllerBase.Dispose() - object.ToString() - object.Equals(object) - object.Equals(object, object) - object.ReferenceEquals(object, object) - object.GetHashCode() - object.GetType() - object.MemberwiseClone() Constructors: InstallController(Game game) Description: Creates new instance of InstallController. Parameters: game [Game]: The game object. Methods: Install(InstallActionArgs args) Description: Start installation. Parameters: args [InstallActionArgs]: Arguments for the installation action. InvokeOnInstalled(GameInstalledEventArgs args) Description: Invoke to signal that installation completed. Parameters: args [GameInstalledEventArgs]: Event arguments for when the game is installed. ``` -------------------------------- ### Get/Set IsInstalling Property in C# Source: https://api.playnite.link/docs/api/Playnite.SDK.Models.Game Gets or sets a boolean value indicating whether a game is currently being installed. This property reflects and controls the installation process state. ```csharp public bool IsInstalling { get; set; } ``` -------------------------------- ### StartGame Method Source: https://api.playnite.link/docs/api/Playnite.SDK.IPlayniteAPI Launches a specific game identified by its unique database ID. ```APIDOC StartGame(Guid gameId) - Starts game. - Parameters: - gameId: Guid - Game's database ID. ``` -------------------------------- ### Get/Set PlatformIds Property in C# Source: https://api.playnite.link/docs/api/Playnite.SDK.Models.Game Gets or sets a list of platform identifiers for the game. This property is a List of Guid objects. ```csharp public List PlatformIds { get; set; } ``` -------------------------------- ### Playnite SDK Platform Class Source: https://api.playnite.link/docs/api/Playnite.SDK.Models.Platform Detailed API documentation for the Platform class in Playnite SDK. Includes constructors, fields, properties, and methods with parameter and return value descriptions. ```C# public class Platform : DatabaseObject, INotifyPropertyChanged, IComparable, IIdentifiable ``` ```APIDOC Class Platform Namespace: Playnite.SDK.Models Assembly: Playnite.SDK.dll Represents game's platform. Inheritance: object ObservableObject DatabaseObject Platform Implements: INotifyPropertyChanged IComparable IIdentifiable Constructors: Platform() Creates new instance of Platform. Platform(string name) Creates new instance of Platform with specific name. Parameters: name [string]: Platform name. Fields: Empty: Platform Gets empty platform. Field Value: [Platform] Properties: Background: string Gets or sets default game background image. Property Value: [string] Cover: string Gets or sets default game cover. Property Value: [string] Icon: string Gets or sets platform icon. Property Value: [string] SpecificationId: string Gets or sets specification identifier. Property Value: [string] Methods: CopyDiffTo(object target): void Copies differential properties to target object instance. Parameters: target [object]: Target object instance to receive new data. ToString(): string Returns a string that represents the current object. Returns: [string]: A string that represents the current object. ``` -------------------------------- ### AutomaticPlayController API Documentation Source: https://api.playnite.link/docs/api/Playnite.SDK.Plugins.AutomaticPlayController Provides detailed information about the AutomaticPlayController class, including its purpose, inheritance, constructors, properties, and methods for managing automatic game startup and tracking within the Playnite SDK. ```APIDOC Class: AutomaticPlayController Namespace: Playnite.SDK.Plugins Assembly: Playnite.SDK.dll Description: Represents controller for automatic handling of game startup. Inheritance: object ControllerBase PlayController AutomaticPlayController Implements: IDisposable Constructors: AutomaticPlayController(Game game) Parameters: game [Game]: The game object to associate with the controller. Properties: Arguments: string { get; set; } Description: Gets or sets executable arguments for File type tasks. InitialTrackingDelay: int { get; set; } Description: Gets or sets delay in milliseconds before tracking actually starts. Path: string { get; set; } Description: Gets or sets executable path for File action type or URL for URL action type. TrackingFrequency: int { get; set; } Description: Gets or sets tracking frequency in milliseconds. TrackingMode: TrackingMode { get; set; } Description: Gets or sets the tracking mode. TrackingPath: string { get; set; } Description: Gets or sets the path for tracking. Type: AutomaticPlayActionType { get; set; } Description: Gets or sets the task type. WorkingDir: string { get; set; } Description: Gets or sets working directory for File action type executable. Methods: Play(PlayActionArgs args): void (override) Description: Executes the play action for the game. Parameters: args [PlayActionArgs]: Arguments for the play action. ``` -------------------------------- ### Get/Set InstallDirectory Property in C# Source: https://api.playnite.link/docs/api/Playnite.SDK.Models.Game Gets or sets the game installation directory path. This property is of type string and allows for modification. ```csharp public string InstallDirectory { get; set; } ``` -------------------------------- ### Get/Set IsInstalled Property in C# Source: https://api.playnite.link/docs/api/Playnite.SDK.Models.Game Gets or sets a boolean value indicating whether a game is installed. This property can be read and modified. ```csharp public bool IsInstalled { get; set; } ``` -------------------------------- ### Get/Set InstallSize Property in C# Source: https://api.playnite.link/docs/api/Playnite.SDK.Models.Game Gets or sets the install size of the game in bytes. This property is of type nullable unsigned 64-bit integer (ulong?). ```csharp public ulong? InstallSize { get; set; } ``` -------------------------------- ### GetInstallActionsArgs Class Source: https://api.playnite.link/docs/api/Playnite.SDK.Plugins.GetInstallActionsArgs Provides arguments for methods related to retrieving installation actions for games within the Playnite SDK. It includes details about the associated game. ```APIDOC Playnite SDK GetInstallActionsArgs Class Namespace: Playnite.SDK.Plugins Assembly: Playnite.SDK.dll Inheritance: object Description: Arguments class for retrieving installation actions. Properties: Game: Signature: public Game Game { get; set; } Description: Represents the Game object associated with the installation actions. Type: Playnite.SDK.Models.Game ``` -------------------------------- ### Playnite IMainViewAPI Interface Documentation Source: https://api.playnite.link/docs/api/Playnite.SDK.IMainViewAPI Comprehensive API documentation for the IMainViewAPI interface, covering its properties and methods for interacting with Playnite's main UI. ```APIDOC Interface IMainViewAPI Namespace: Playnite.SDK Assembly: Playnite.SDK.dll Description: Describes object providing API for main UI view. Properties: ActiveDesktopView: DesktopView ActiveDesktopView { get; set; } Description: Gets currently active Desktop mode view. Type: DesktopView ActiveFullscreenView: FullscreenView ActiveFullscreenView { get; } Description: Gets currently active Fullscreen mode view. Type: FullscreenView FilteredGames: List FilteredGames { get; } Description: Gets list of games currently available in game list. Type: List Grouping: GroupableField Grouping { get; set; } Description: Gets currently active grouping field. Type: GroupableField SelectedGames: IEnumerable SelectedGames { get; } Description: Gets list of currently selected games. Type: IEnumerable SortOrder: SortOrder SortOrder { get; } Description: Gets currently active sorting order. Type: SortOrder SortOrderDirection: SortOrderDirection SortOrderDirection { get; set; } Description: Gets currently active sorting order direction. Type: SortOrderDirection UIDispatcher: Dispatcher UIDispatcher { get; } Description: Gets UI thread dispatcher. Type: Dispatcher Methods: ApplyFilterPreset(FilterPreset preset) Description: Applies filter preset. Parameters: preset: FilterPreset - Filter preset. Returns: void ApplyFilterPreset(Guid filterId) Description: Applies filter preset. Parameters: filterId: Guid - Filter ID. Returns: void GetActiveFilterPreset() Description: Gets ID of currently active filter preset. Returns: Guid GetCurrentFilterSettings() Description: Gets current filter settings. Returns: FilterPresetSettings OpenPluginSettings(Guid pluginId) Description: Opens settings view for specified plugin. Parameters: pluginId: Guid - Plugin ID. Returns: bool - True if user saved any changes, False if dialog was canceled. OpenSearch(SearchContext context, string searchTerm) Description: Opens global search view. Parameters: context: SearchContext - Search context to be activated after opening the view. searchTerm: string - Default search term. Returns: void OpenSearch(string searchTerm) Description: Opens global search view. Parameters: searchTerm: string - Default search term. Returns: void SelectGame(Guid gameId) Description: Selects game. Parameters: gameId: Guid - Game's database ID. Returns: void SelectGames(IEnumerable gameIds) Description: Selects multiple games. Parameters: gameIds: IEnumerable - List of game IDs to select. Returns: void SwitchToLibraryView() Description: Switches Playnite to Library view. Returns: void ``` -------------------------------- ### PlayniteGame: SourceId Property Source: https://api.playnite.link/docs/api/Playnite.SDK.Models.Game Gets or sets the unique identifier (GUID) of the source of the game. This property is used to link the game to its original data source. ```APIDOC SourceId: Gets or sets source of the game. Signature: public Guid SourceId { get; set; } Parameters: SourceId (Guid): The unique identifier of the game's source. ``` -------------------------------- ### PlayniteGame: SeriesIds Property Source: https://api.playnite.link/docs/api/Playnite.SDK.Models.Game Gets or sets a list of unique identifiers (GUIDs) for the series the game belongs to. This property is used for managing series associations. ```APIDOC SeriesIds: Gets or sets game series. Signature: public List SeriesIds { get; set; } Parameters: SeriesIds (List): A list of GUIDs representing the game's series. ``` -------------------------------- ### Playnite SDK LibraryClient Class Source: https://api.playnite.link/docs/api/Playnite.SDK.LibraryClient Documentation for the abstract LibraryClient class, which describes library client applications. It includes details on its inheritance, properties like Icon and IsInstalled, and abstract/virtual methods such as Open and Shutdown. ```APIDOC Playnite SDK LibraryClient Class: Namespace: Playnite.SDK Assembly: Playnite.SDK.dll Description: Describes library client application. Inheritance: object LibraryClient Inherited Members: object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() Properties: Icon: Signature: public virtual string Icon { get; } Description: Gets the icon for the library client. Property Value: string IsInstalled: Signature: public abstract bool IsInstalled { get; } Description: Gets value indicating whether the client is installed. Property Value: bool Methods: Open(): Signature: public abstract void Open() Description: Open client application. Shutdown(): Signature: public virtual void Shutdown() Description: Shuts down client application. ``` -------------------------------- ### System.Object Methods Source: https://api.playnite.link/docs/api/Playnite.SDK.Plugins.MetadataPlugin Documentation for fundamental methods inherited from the base System.Object class in .NET, including ToString, Equals, ReferenceEquals, GetHashCode, GetType, and MemberwiseClone. ```APIDOC System.Object Methods: ToString(): string - Returns a string that represents the current object. Equals(object obj): bool - Determines whether the specified object is equal to the current object. Equals(object objA, object objB): bool - Determines whether the specified objects are equal. ReferenceEquals(object objA, object objB): bool - Determines whether the specified instances of Object are the same instance. GetHashCode(): int - Serves as the default hash function. GetType(): Type - Gets the type of the current instance. MemberwiseClone(): object - Creates a shallow copy of the current Object. ``` -------------------------------- ### PlayniteGame: RegionIds Property Source: https://api.playnite.link/docs/api/Playnite.SDK.Models.Game Gets or sets a list of unique identifiers (GUIDs) for the regions associated with the game. This property is used to manage regional information. ```APIDOC RegionIds: Gets or sets game region. Signature: public List RegionIds { get; set; } Parameters: RegionIds (List): A list of GUIDs representing the game's regions. ``` -------------------------------- ### Publisher Class Constructors Source: https://api.playnite.link/docs/api/Playnite.SDK.Models.Publisher Provides documentation for the constructors of the Publisher class in the Playnite SDK. Includes details on the default constructor and the constructor that accepts a name parameter. ```APIDOC Publisher Class Documentation: Namespace: Playnite.SDK.Models Assembly: Playnite.SDK.dll Inherits: Company, DatabaseObject, ObservableObject, object Implements: INotifyPropertyChanged, IComparable, IIdentifiable Constructors: Publisher() - Creates a new instance of the Publisher class. Publisher(string name) - Creates a new instance of the Publisher class. - Parameters: - name [string]: The name for the publisher. ``` -------------------------------- ### PlayniteGame: PublisherIds Property Source: https://api.playnite.link/docs/api/Playnite.SDK.Models.Game Gets or sets a list of unique identifiers (GUIDs) for the publishers associated with the game. This property allows managing publisher relationships. ```APIDOC PublisherIds: Gets or sets list of publishers. Signature: public List PublisherIds { get; set; } Parameters: PublisherIds (List): A list of GUIDs representing the game's publishers. ``` -------------------------------- ### Playnite SDK WebViewFactory API Source: https://api.playnite.link/docs/api/Playnite.SDK.IWebViewFactory Documentation for the IWebViewFactory interface, detailing methods for creating web views with different configurations. ```APIDOC IWebViewFactory API Documentation: This interface provides methods for creating web views within the Playnite SDK. Methods: 1. CreateOffscreenView() - Description: Creates a new offscreen web view. - Returns: IWebView - The created offscreen web view. 2. CreateOffscreenView(WebViewSettings settings) - Description: Creates a new offscreen web view with specific settings. - Parameters: - settings [WebViewSettings]: Browser view settings. - Returns: IWebView - The created offscreen web view. 3. CreateView(WebViewSettings settings) - Description: Creates a new web view with specific settings. - Parameters: - settings [WebViewSettings]: Browser view settings. - Returns: IWebView - The created web view. 4. CreateView(int width, int height) - Description: Creates a new web view with specified dimensions. - Parameters: - width [int]: View width. - height [int]: View height. - Returns: IWebView - The created web view. 5. CreateView(int width, int height, Color background) - Description: Creates a new web view with specified dimensions and background color. - Parameters: - width [int]: View width. - height [int]: View height. - background [Color]: View background color. - Returns: IWebView - The created web view. ``` -------------------------------- ### PlayniteGame: UseGlobalPreScript Property Source: https://api.playnite.link/docs/api/Playnite.SDK.Models.Game Gets or sets a boolean value indicating whether a global pre-script should be executed before a game starts. This allows for system-wide pre-game actions. ```APIDOC UseGlobalPreScript: Gets or sets value indicating whether global pre script should be executed. Signature: public bool UseGlobalPreScript { get; set; } Parameters: UseGlobalPreScript (bool): True to execute global pre-script, false otherwise. ``` -------------------------------- ### IPlayniteSettingsAPI Interface Documentation Source: https://api.playnite.link/docs/api/Playnite.SDK.IPlayniteSettingsAPI Provides access to various application settings within the Playnite SDK. Includes properties for UI themes, import settings, game exclusion checks, and more. ```APIDOC Interface IPlayniteSettingsAPI Namespace: Playnite.SDK Assembly: Playnite.SDK.dll Description: Describes application settings API. Properties: AgeRatingOrgPriority: AgeRatingOrg { get; } Description: Gets the priority order for age rating organizations. Returns: The AgeRatingOrg enum value. AsyncImageLoading: bool { get; } Description: Indicates if asynchronous image loading is enabled. Returns: True if async image loading is enabled, false otherwise. CloseToTray: bool { get; } Description: Indicates if the application should close to the system tray. Returns: True if closing to tray is enabled, false otherwise. CompletionStatus: ICompletionStatusSettignsApi { get; } Description: Gets completion status related settings. Returns: An interface for managing completion status settings. DatabasePath: string { get; } Description: Gets the path to the Playnite database file. Returns: The absolute path to the database. DesktopTheme: string { get; } Description: Gets the name of the currently active desktop theme. Returns: The name of the desktop theme. DisableHwAcceleration: bool { get; } Description: Indicates if hardware acceleration is disabled. Returns: True if hardware acceleration is disabled, false otherwise. DiscordPresenceEnabled: bool { get; } Description: Indicates if Discord Rich Presence is enabled. Returns: True if Discord presence is enabled, false otherwise. DownloadMetadataOnImport: bool { get; } Description: Indicates if metadata should be downloaded automatically during import. Returns: True if metadata download on import is enabled, false otherwise. EnableTray: bool { get; } Description: Indicates if the system tray icon is enabled. Returns: True if the tray icon is enabled, false otherwise. FirstTimeWizardComplete: bool { get; } Description: Indicates if the first-time user wizard has been completed. Returns: True if the wizard is complete, false otherwise. FontFamilyName: string { get; } Description: Gets the name of the font family used in the application. Returns: The font family name. ForcePlayTimeSync: bool { get; } Description: Obsolete. Use new PlaytimeImportMode property instead. Returns: The status of forced playtime synchronization. Fullscreen: IFullscreenSettingsAPI { get; } Description: Gets Fullscreen mode related settings. Returns: An interface for managing fullscreen settings. FullscreenTheme: string { get; } Description: Gets the name of the currently active fullscreen theme. Returns: The name of the fullscreen theme. GridItemHeightRatio: int { get; } Description: Gets the height ratio for grid items. Returns: The height ratio as an integer. GridItemWidthRatio: int { get; } Description: Gets the width ratio for grid items. Returns: The width ratio as an integer. Language: string { get; } Description: Gets the current application language. Returns: The language code (e.g., "en-US"). MinimizeToTray: bool { get; } Description: Indicates if the application should minimize to the system tray when closed. Returns: True if minimize to tray is enabled, false otherwise. PlaytimeImportMode: PlaytimeImportMode { get; } Description: Gets the mode for importing playtime data. Returns: The PlaytimeImportMode enum value. SidebarPosition: Dock { get; } Description: Gets the current position of the sidebar. Returns: The Dock enum value indicating the sidebar position. SidebarVisible: bool { get; } Description: Indicates if the sidebar is currently visible. Returns: True if the sidebar is visible, false otherwise. StartInFullscreen: bool { get; } Description: Indicates if the application should start in fullscreen mode. Returns: True if starting in fullscreen is enabled, false otherwise. StartMinimized: bool { get; } Description: Indicates if the application should start minimized. Returns: True if starting minimized is enabled, false otherwise. StartOnBoot: bool { get; } Description: Indicates if the application should start automatically when the system boots. Returns: True if starting on boot is enabled, false otherwise. UpdateLibStartup: bool { get; } Description: Indicates if library updates should be performed on startup. Returns: True if library updates on startup are enabled, false otherwise. Version: int { get; } Description: Gets the current version of the Playnite application. Returns: The application version number. Methods: GetGameExcludedFromImport(string gameId, Guid libraryId): bool Description: Checks if a game is added on the import exclusion list. Parameters: gameId [string]: Game ID. libraryId [Guid]: Library plugin ID. Returns: [bool]: True if the game is on the exclusion list, false otherwise. ``` -------------------------------- ### PlayniteGame: UseGlobalGameStartedScript Property Source: https://api.playnite.link/docs/api/Playnite.SDK.Models.Game Gets or sets a boolean value indicating whether a global pre-script should be executed when the game starts. This allows for system-wide script execution. ```APIDOC UseGlobalGameStartedScript: Gets or sets value indicating whether global pre script should be executed. Signature: public bool UseGlobalGameStartedScript { get; set; } Parameters: UseGlobalGameStartedScript (bool): True to execute global pre-script, false otherwise. ``` -------------------------------- ### SearchSupport Class API Source: https://api.playnite.link/docs/api/Playnite.SDK.Plugins.SearchSupport API documentation for the SearchSupport class, detailing its constructor and properties. ```csharp Namespace: Playnite.SDK.Plugins Assembly: Playnite.SDK.dll /// /// Represents plugin search support. /// public class SearchSupport { /// /// Creates new instance of SearchSupport. /// /// The default keyword for search. /// The name of the search support. /// The search context. public SearchSupport(string defaultKeyword, string name, SearchContext context) { // Implementation details not provided in source } /// /// Gets or sets search context. /// public SearchContext Context { get; set; } /// /// Gets or sets default keyword. /// public string DefaultKeyword { get; set; } /// /// Gets or sets search name. /// public string Name { get; set; } } ``` -------------------------------- ### Get/Set GameStartedScript Property (C#) Source: https://api.playnite.link/docs/api/Playnite.SDK.Models.Game Gets or sets a script to be executed automatically after the game has started. This is useful for applying game-specific configurations or launching companion applications. ```csharp public string GameStartedScript { get; set; } ``` -------------------------------- ### PlayniteGame: TagIds Property Source: https://api.playnite.link/docs/api/Playnite.SDK.Models.Game Gets or sets a list of unique identifiers (GUIDs) for the tags associated with the game. This property allows for managing and applying tags to games. ```APIDOC TagIds: Gets or sets list of tags. Signature: public List TagIds { get; set; } Parameters: TagIds (List): A list of GUIDs representing the game's tags. ``` -------------------------------- ### Playnite Namespace and Classes Source: https://api.playnite.link/docs/api/Playnite This section details the Playnite API structure, including namespaces and classes. It serves as an entry point for understanding the available components. ```APIDOC Namespace: Playnite Description: Core namespace for Playnite API elements. Class: ImportExclusionItem Description: Represents an item that is excluded from import. Purpose: To define and manage items that should not be imported into Playnite. Dependencies: None explicitly mentioned. Inputs: None specified. Outputs: None specified. Limitations: No specific limitations mentioned. ``` -------------------------------- ### PlayniteGame: PluginId Property Source: https://api.playnite.link/docs/api/Playnite.SDK.Models.Game Gets or sets the unique identifier (GUID) of the plugin responsible for handling this game. This is crucial for associating game data with its managing plugin. ```APIDOC PluginId: Gets or sets id of plugin responsible for handling this game. Signature: public Guid PluginId { get; set; } Parameters: PluginId (Guid): The unique identifier of the plugin. ``` -------------------------------- ### ComparableDbItemList Class Source: https://api.playnite.link/docs/api/System.Collections.Generic.ComparableDbItemList-1 Documentation for the ComparableDbItemList class, covering its constructor for initializing with a collection and its CompareTo method for object comparison. ```APIDOC ComparableDbItemList: __ctor__(collection: IEnumerable) Creates new instance of ComparableDbItemList. Parameters: collection [IEnumerable]: Intial collection. CompareTo(obj: object) Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. Parameters: obj [object]: An object to compare with this instance. Returns: [int]: A value that indicates the relative order of the objects being compared. The return value has these meanings: Value Meaning Less than zero This instance precedes `obj` in the sort order. Zero This instance occurs in the same position in the sort order as `obj`. Greater than zero This instance follows `obj` in the sort order. Exceptions: [ArgumentException]: `obj` is not the same type as this instance. ``` -------------------------------- ### Get/Set LastSizeScanDate Property in C# Source: https://api.playnite.link/docs/api/Playnite.SDK.Models.Game Gets or sets the date of the last scan performed to determine the game's install size. This property holds a nullable DateTime. ```csharp public DateTime? LastSizeScanDate { get; set; } ``` -------------------------------- ### Playnite Game Lifecycle Events Source: https://api.playnite.link/docs/api/Playnite.SDK.Plugins.Plugin Documentation for events triggered by the Playnite SDK during the game lifecycle, including starting, stopping, and uninstallation. ```APIDOC OnGameStarted(OnGameStartedEventArgs args) Called when game has started. Parameters: args [OnGameStartedEventArgs]: Event arguments containing details about the started game. OnGameStarting(OnGameStartingEventArgs args) Called before game is started. Parameters: args [OnGameStartingEventArgs]: Event arguments containing details about the game about to start. OnGameStartupCancelled(OnGameStartupCancelledEventArgs args) Called when game startup is cancelled. Parameters: args [OnGameStartupCancelledEventArgs]: Event arguments containing details about the cancelled game startup. OnGameStopped(OnGameStoppedEventArgs args) Called when game stopped running. Parameters: args [OnGameStoppedEventArgs]: Event arguments containing details about the stopped game. OnGameUninstalled(OnGameUninstalledEventArgs args) Called when game has been uninstalled. Parameters: args [OnGameUninstalledEventArgs]: Event arguments containing details about the uninstalled game. OnLibraryUpdated(OnLibraryUpdatedEventArgs args) Called when library update has been finished. Parameters: args [OnLibraryUpdatedEventArgs]: Event arguments containing details about the library update. ``` ```C# public virtual void OnGameStarted(OnGameStartedEventArgs args) public virtual void OnGameStarting(OnGameStartingEventArgs args) public virtual void OnGameStartupCancelled(OnGameStartupCancelledEventArgs args) public virtual void OnGameStopped(OnGameStoppedEventArgs args) public virtual void OnGameUninstalled(OnGameUninstalledEventArgs args) public virtual void OnLibraryUpdated(OnLibraryUpdatedEventArgs args) ``` -------------------------------- ### Get/Set GenreIds Property (C#) Source: https://api.playnite.link/docs/api/Playnite.SDK.Models.Game Gets or sets a list of unique identifiers (Guids) for the game's genres. This property links games to their associated genre classifications. ```csharp public List GenreIds { get; set; } ``` -------------------------------- ### CustomEmulatorProfile Methods Source: https://api.playnite.link/docs/api/Playnite.SDK.Models.CustomEmulatorProfile Provides documentation for core methods of the CustomEmulatorProfile class, including equality checks, copying, and string representation. ```APIDOC CustomEmulatorProfile: Equals(other: CustomEmulatorProfile) Description: Indicates whether the current object is equal to another object of the same type. Parameters: other (CustomEmulatorProfile): An object to compare with this object. Returns: bool: true if the current object is equal to the `other` parameter; otherwise, false. GetCopy() Description: Creates and returns a copy of the current CustomEmulatorProfile object. Returns: CustomEmulatorProfile: A new CustomEmulatorProfile object that is a copy of the current one. ToString() Description: Returns a string that represents the current CustomEmulatorProfile object. Returns: string: A string representation of the object. ``` ```C# public bool Equals(CustomEmulatorProfile other) public CustomEmulatorProfile GetCopy() public override string ToString() ``` -------------------------------- ### Emulator Class API Documentation Source: https://api.playnite.link/docs/api/Playnite.SDK.Models.Emulator Provides comprehensive documentation for the Emulator class in Playnite SDK. This includes its inheritance hierarchy, implemented interfaces, constructors, properties with their types and accessors, and methods with their signatures and parameter descriptions. ```APIDOC Class Emulator Namespace: Playnite.SDK.Models Assembly: Playnite.SDK.dll Description: Represents system emulator. Inheritance: object -> ObservableObject -> DatabaseObject -> Emulator Implements: INotifyPropertyChanged, IComparable, IIdentifiable Constructors: Emulator() Description: Creates new instance of Emulator. Emulator(string name) Description: Creates new instance of Emulator with specific name. Parameters: name [string]: Emulator name. Properties: AllProfiles: List { get; } Description: Gets list of all profiles. Returns: List of EmulatorProfile objects. BuiltInConfigId: string { get; set; } Description: Gets id of built-in emulator profile. Returns: The ID of the built-in configuration. BuiltinProfiles: ObservableCollection { get; set; } Description: Gets or sets list of emulator profiles. Returns: An ObservableCollection of BuiltInEmulatorProfile objects. CustomProfiles: ObservableCollection { get; set; } Description: Gets or sets list of emulator profiles. Returns: An ObservableCollection of CustomEmulatorProfile objects. InstallDir: string { get; set; } Description: Gets emulator installation directory. Returns: The installation directory path. SelectableProfiles: List { get; } Description: Gets list of all profiles including option for profile auto-select. Returns: List of EmulatorProfile objects suitable for selection. Methods: CopyDiffTo(object target): void Description: Copies differential properties to target object instance. Parameters: target [object]: Target object instance to receive new data. GetCopy(): Emulator Description: Creates and returns a copy of the Emulator instance. Returns: A new Emulator instance that is a copy of the current one. ``` -------------------------------- ### Get/Set DeveloperIds Property (C#) Source: https://api.playnite.link/docs/api/Playnite.SDK.Models.Game Gets or sets a list of unique identifiers (Guids) for the game's developers. This property links games to their associated developer entries. ```csharp public List DeveloperIds { get; set; } ``` -------------------------------- ### IItemCollection Indexer Source: https://api.playnite.link/docs/api/Playnite.SDK.IItemCollection-1 Provides indexed access to items within the collection using their unique GUID. It allows getting or setting an item based on its identifier. ```csharp TItem this[Guid id] { get; set; } ``` -------------------------------- ### IGameDatabaseAPI Interface Documentation Source: https://api.playnite.link/docs/api/Playnite.SDK.IGameDatabaseAPI Comprehensive documentation for the IGameDatabaseAPI interface, including its properties, methods, parameters, and return values. ```APIDOC Interface: IGameDatabaseAPI Namespace: Playnite.SDK Assembly: Playnite.SDK.dll Description: Describes object providing game database API. Inherits from: IGameDatabase Properties: DatabasePath: Type: string Description: Gets full path to database directory location. Access: Read-only Methods: AddFile(string path, Guid parentId): Description: Add file to data storage. Parameters: - path (string): Path of the file to be added. - parentId (Guid): Database item parent containing the file. Returns: Type: string Description: Database id of added file. BeginBufferUpdate(): Description: Begins buffered update. Suppresses all notification events until buffering is stopped. Returns: void BufferedUpdate(): Description: Switches database to buffered mode. Suppresses all notification events until buffering is stopped. Returns: Type: IDisposable Description: Buffer object. EndBufferUpdate(): Description: Ends buffered update. Returns: void GetFileStoragePath(Guid parentId): Description: Returns full path to directory storing files for specified parent. Parameters: - parentId (Guid): Id of parent object. Returns: Type: string Description: Full path to directory. GetFullFilePath(string databasePath): Description: Returns full path to a file based on database path. Parameters: - databasePath (string): Path relative to the database directory. Returns: Type: string Description: Full path to the file. ```