Install a C# editor plugin
Addon structure, compilation, activation, and deactivation checks.
Install an EditorPlugin into the project, not engine sources. It executes code in the editor: inspect its contents, dependencies, and API-version requirements before enabling.
Install the checked example
- Create
asset://addons/docs_scene_audit/. - Save
SceneAuditPlugin.csand plugin.cfg from the complete example. The configured script path is relative to that directory. - Build the C# project and resolve errors. The class must derive from
EditorPlugin, bepartial, and have[Tool]. - Open project settings, the plugins section, and enable it. The list should discover
plugin.cfg; mouse operations were not tested here. - Check the Scene audit panel and Docs scene audit command. Disable the plugin: both should disappear.
- Enable again. Expect one panel and one command, with no doubled calls.
Programmatic checks use EditorInterface.Singleton.SetPluginEnabled("docs_scene_audit", true) and IsPluginEnabled("docs_scene_audit"). The argument is the addons folder name, not the displayed config name or C# class name. Check state before enabling an already enabled plugin.
Diagnose loading failures
Missing from the list: inspect directory nesting and exact plugin.cfg filename. Script cannot load: inspect relative path and successful compilation. Wrong base type: use EditorPlugin, not ordinary Entity. Not a tool script: add [Tool] and rebuild.
For updates, disable the plugin, replace a consistent set of its files, build, and enable again. Do not copy another project's .reckfell, bin, or obj as an installation method. Hot replacement of a running C# plugin was not tested.
Programmatic activation by folder name, callbacks, disabling, and reinstallation without duplicate UI were checked. Third-party addons/dependencies, restart-after-update behavior, and game exports were not.