The GoZen modular system is designed to allow developers and users to extend the editing experience and feel without having to alter the project’s core source code. Modules can give you new UI panels, visual/audio effects, transitions, custom scenes (PCK clips), and UI themes.
Modules are loaded from two primary locations:
res://modules/ - Modules shipped with the editor;user://modules/ - Modules installed by the user via .pck files.GoZenModule ResourceEvery module is defined by a module.tres file at its root, which uses the GoZenModule class. This resource acts as the config file for the module and contains:
name, description, author, version, and settings.custom_panels: Array of GoZenModulePanel (injects UI into the WorkspaceManager);custom_scenes: Array of GoZenModuleScene (allows PCK clips to run custom Godot scenes on the timeline);custom_themes: Array of GoZenModuleTheme (adds custom look-and-feel themes);custom_effects: Array of GoZenModuleEffect (injects new Audio/Visual effects);custom_transitions: Array of GoZenModuleTransition (injects custom transitions);ModuleManager.gd)During the editor’s startup (_enter_tree), the ModuleManager autoload takes care of following tasks:
user://modules_config.json file to check which user-installed modules are enabled/disabled;ProjectSettings.load_resource_pack() to mount the PCK into the virtual res:// file system;res://modules/ for any directories containing a module.tres file and stores them in memory;WorkspaceManager;EffectsHandler;Settings.custom_themes;Users can install external modules via the Module Manager UI (Preferences > Module manager). When a .pck is selected:
user://modules/;modules_config.json and marked as enabled;