EngineModuleManager
Static manager for creating, retrieving, and removing engine modules. Persists module configuration to ProjectSettings/EngineModuleSettings.asset and initializes all modules on editor load.
Definition
Namespace: Paragon.Editor.ModuleManager Assembly: Paragon.Editor.dll
internal static class EngineModuleManagerRemarks
EngineModuleManager is the central coordinator for the ModuleManager system. It owns the EngineModuleSettings asset and provides CRUD operations for engine modules.
Initialization
The static constructor calls Initialize(), which:
Loads (or creates) the
EngineModuleSettingsfromProjectSettings/EngineModuleSettings.assetResolves the project's Plastic SCM workspace via
PlasticSCM.GetWorkspace()Calls
Initialize()on every registered EngineModule
Settings Persistence
Settings are stored using Unity's InternalEditorUtility.SaveToSerializedFileAndForget / LoadSerializedFileAndForget, which serializes ScriptableObject instances to a file outside the Assets folder. This prevents the settings asset from appearing in the Project window while keeping it in the ProjectSettings/ folder (where version control typically tracks it).
Quick Lookup
Register a new module
EngineModuleManager.CreateModule(repository)
Get a module by name
EngineModuleManager.GetModule("ParagonCore")
Remove a module
EngineModuleManager.RemoveModule("ParagonCore")
Get all settings
EngineModuleManager.GetSettings()
Save settings to disk
EngineModuleManager.SaveSettings()
Get project workspace
EngineModuleManager.ProjectWorkspace
Properties
ProjectWorkspace
Workspace
public static
The Plastic SCM workspace for the current Unity project
Fields
moduleSettings
EngineModuleSettings
private static
The loaded settings asset
projectWorkspace
Workspace
private static
The project's Plastic SCM workspace
initialized
bool
private static
Initialization guard
Methods
CreateModule
Creates a new engine module from a repository, adds it to settings, initializes it, and saves.
repository
Repository
The Plastic SCM repository to register as a module
GetModule
Returns the engine module with the specified name.
RemoveModule
Removes the engine module with the specified name and saves settings.
GetSettings
Returns the EngineModuleSettings asset, loading or creating it if necessary.
SaveSettings
Serializes the current settings to ProjectSettings/EngineModuleSettings.asset.
Constants
asset_path
string
"ProjectSettings/EngineModuleSettings.asset"
Serialized settings file location
Common Pitfalls
Static constructor triggers Plastic SCM initialization The static constructor calls Initialize(), which connects to the Plastic SCM server. If Plastic SCM is not configured or the server is unreachable, this will fail during editor startup.
SaveSettings must be called manually After modifying module properties (e.g., SetMountPath, SetTargetPath, SwitchWorkspace), you must call SaveSettings() to persist changes. CreateModule and RemoveModule save automatically.
Settings file location The settings file is in ProjectSettings/, not Assets/. This means it won't appear in the Unity Project window and requires explicit file operations to manage. It is serialized using Unity's internal binary format.
See Also
EngineModule — individual module representation
EngineModuleSettings — settings storage
PlasticSCM — repository/workspace discovery
ModuleManager Overview — system overview
Last updated