logo SERENITY
Game Systems Foundation
Search Results for

    Show / Hide Table of Contents

    Class SerenityInstallableSystem

    One Install*() method the "create a new game" flow can offer for selective installation, resolved from a SerenityInstallableSystemAttribute declaration by SerenityInstallableSystemCatalog. Immutable — a snapshot of the attribute's data plus the method's discovery order.

    Inheritance
    object
    SerenityInstallableSystem
    Inherited Members
    object.ToString()
    object.Equals(object)
    object.Equals(object, object)
    object.ReferenceEquals(object, object)
    object.GetHashCode()
    object.GetType()
    Namespace: Serenity.CreateGame.Infrastructure.Editor.Systems
    Assembly: Serenity.UnityCreateGame.Infrastructure.Editor.dll
    Syntax
    public sealed class SerenityInstallableSystem

    Constructors

    SerenityInstallableSystem(string, string, string, string, SerenityInstallableSystemTier, string, int, string[], bool, SerenityInstallableSystemSettingsCardinality, bool, string)

    Declaration
    public SerenityInstallableSystem(string installMethodName, string moduleLabel, string settingsTypeName, string hubToolId, SerenityInstallableSystemTier tier, string displayName, int declarationIndex, string[] dependsOn = null, bool installsAtBootstrap = false, SerenityInstallableSystemSettingsCardinality settingsCardinality = 0, bool createsSettingsViaHubTool = true, string settingsFieldName = null)
    Parameters
    Type Name Description
    string installMethodName
    string moduleLabel
    string settingsTypeName
    string hubToolId
    SerenityInstallableSystemTier tier
    string displayName
    int declarationIndex
    string[] dependsOn
    bool installsAtBootstrap
    SerenityInstallableSystemSettingsCardinality settingsCardinality
    bool createsSettingsViaHubTool
    string settingsFieldName

    Properties

    CreatesSettingsViaHubTool

    Declaration
    public bool CreatesSettingsViaHubTool { get; }
    Property Value
    Type Description
    bool

    Whether HubToolId reliably authors a SettingsTypeName asset — see SerenityInstallableSystemAttribute.CreatesSettingsViaHubTool.

    DeclarationIndex

    Declaration
    public int DeclarationIndex { get; }
    Property Value
    Type Description
    int

    This system's position in the catalog's dependency-ordered result, as computed by SerenityInstallableSystemCatalog; for a gameplay module, its position in BootTaskDescriptors (after every settings-owning system).

    DependsOn

    Declaration
    public string[] DependsOn { get; }
    Property Value
    Type Description
    string[]

    The InstallMethodName of every other system this one depends on. Empty when this system has no prerequisites.

    DisplayName

    Declaration
    public string DisplayName { get; }
    Property Value
    Type Description
    string

    Human-readable name for this system, derived from InstallMethodName when the attribute did not supply one explicitly.

    HubToolId

    Declaration
    public string HubToolId { get; }
    Property Value
    Type Description
    string

    The SerenityHubToolCatalog tool id that authors the settings asset for this system, or null when InstallsAtBootstrap is true and no single Hub entry authors it.

    InstallMethodName

    Declaration
    public string InstallMethodName { get; }
    Property Value
    Type Description
    string

    The installer method name this system was declared on, e.g. "InstallGameCamera".

    InstallsAtBootstrap

    Declaration
    public bool InstallsAtBootstrap { get; }
    Property Value
    Type Description
    bool

    True when this system installs unconditionally during bootstrap rather than through an individually selectable wizard step.

    ModuleLabel

    Declaration
    public string ModuleLabel { get; }
    Property Value
    Type Description
    string

    The ModuleLabels constant identifying this system's Addressables module.

    SettingsCardinality

    Declaration
    public SerenityInstallableSystemSettingsCardinality SettingsCardinality { get; }
    Property Value
    Type Description
    SerenityInstallableSystemSettingsCardinality

    How many settings assets of SettingsTypeName belong in a project at once — see SerenityInstallableSystemSettingsCardinality.

    SettingsFieldName

    Declaration
    public string SettingsFieldName { get; }
    Property Value
    Type Description
    string

    The composition-root field a designer wires this system's settings asset into, or null when the system declares none — see SerenityInstallableSystemAttribute.SettingsFieldName.

    SettingsTypeName

    Declaration
    public string SettingsTypeName { get; }
    Property Value
    Type Description
    string

    The simple name of the settings type a wizard resolves to configure this system.

    Tier

    Declaration
    public SerenityInstallableSystemTier Tier { get; }
    Property Value
    Type Description
    SerenityInstallableSystemTier

    The adoption order this system's checklist row is grouped and sorted by.

    Methods

    ResolveDisplayName(string, string)

    The display name a system named installMethodName resolves to: the explicit explicitDisplayName when given, otherwise one derived from the method name. Shared by the constructor and by callers (the catalog's tie-break sort) that need the name before a SerenityInstallableSystem instance exists.

    Declaration
    public static string ResolveDisplayName(string installMethodName, string explicitDisplayName)
    Parameters
    Type Name Description
    string installMethodName
    string explicitDisplayName
    Returns
    Type Description
    string
    In this article
    © 2026 Serenity. All Rights Reserved