reckfellENGINE

ReckfellExtensionManager

Native extension loading and lifecycle.

On this page
class ReckfellExtensionManagerReckfellSharp

Pass a .reckfellextension descriptor path, check LoadStatus and use consistent path spelling for queries. Automatic loading can precede _Ready, making AlreadyLoaded a separate normal result.

Manager registry membership, an open library resource and an individual ABI call’s correctness are distinct states. UnloadExtension removes the registration and classes, but a held resource can extend library lifetime. Do not unload code while its objects and callbacks remain in use.

Editor-build load/unload events occur within state transitions. In particular, first-load ExtensionLoaded fires before registry insertion. Reloading requires separate support and does not guarantee rollback after failure.

Extension descriptor and diagnostics.

Declarations checked against C# SDK 1.0.0. Expand a name to see declarations and documentation.

Properties1

SingletonProperty
# Singleton
C#
public static ReckfellExtensionManagerInstance Singleton { get; }

Object access to the same manager used by static methods. Does not create another registry. Do not Dispose/Free the global singleton.

Methods6

GetExtensionReckfellExtension
# GetExtension
C#
public static ReckfellExtension GetExtension(string path);

Returns the object for an already-registered path. Check IsExtensionLoaded first: an absent path produces native diagnostics and an empty result. Holding the reference can keep the library open after manager registry removal.

Parameters
NameTypeDefault
pathstring—
path

Descriptor path, not a DLL path. Use the same path spelling as the registered entry for later queries and unloading.

Returns ReckfellExtension

Registered ReckfellExtension; an absent path returns null with native diagnostics, not a guaranteed C# exception.

GetLoadedExtensionsstring[]
# GetLoadedExtensions
C#
public static string[] GetLoadedExtensions();

Returns a snapshot of current registry paths. It neither scans directories nor lists every discovered descriptor. Array order is not dependency or initialization order.

Returns string[]

string[] snapshot of current registry paths, not a live editable manager collection.

IsExtensionLoadedbool
# IsExtensionLoaded
C#
public static bool IsExtensionLoaded(string path);

Checks exact-path membership in the manager registry. This does not check file existence, every ABI call’s compatibility or extension-function health.

Parameters
NameTypeDefault
pathstring—
path

Descriptor path, not a DLL path. Use the same path spelling as the registered entry for later queries and unloading.

Returns bool

true for an exact registered path; false after its entry is successfully removed.

LoadExtensionReckfellExtensionManager.LoadStatus
# LoadExtension
C#
public static ReckfellExtensionManager.LoadStatus LoadExtension(string path);

Loads a .reckfellextension descriptor and initializes its selected library. Check LoadStatus; automatic loading may precede _Ready. Repeating the same registered path returns AlreadyLoaded without reinitializing. Recovery mode rejects loading.

Parameters
NameTypeDefault
pathstring—
path

Descriptor path, not a DLL path. Use the same path spelling as the registered entry for later queries and unloading.

Returns ReckfellExtensionManager.LoadStatus

LoadStatus: Ok means loaded; AlreadyLoaded means an existing entry; NotLoaded can indicate a feature-tag skip; Failed means failure. Do not treat NeedsRestart as call readiness.

ReloadExtensionReckfellExtensionManager.LoadStatus
# ReloadExtension
C#
public static ReckfellExtensionManager.LoadStatus ReloadExtension(string path);

Attempts to reload an already-registered library. Requires an editor build, enabled reloading and extension support. Not transactional: failure after closing the old library does not guarantee restoration. Check the status and the specific required classes/methods.

Parameters
NameTypeDefault
pathstring—
path

Descriptor path, not a DLL path. Use the same path spelling as the registered entry for later queries and unloading.

Returns ReckfellExtensionManager.LoadStatus

Attempt result as LoadStatus. NotLoaded means no entry or a loader skip; NeedsRestart means current initialization cannot finish without restarting. Failed requires checking logs and state.

UnloadExtensionReckfellExtensionManager.LoadStatus
# UnloadExtension
C#
public static ReckfellExtensionManager.LoadStatus UnloadExtension(string path);

Deinitializes the extension and removes its manager entry. Finish using extension objects and callbacks first. Ok does not establish immediate physical DLL closure: a held ReckfellExtension reference can keep it open. Recovery mode rejects the operation.

Parameters
NameTypeDefault
pathstring—
path

Descriptor path, not a DLL path. Use the same path spelling as the registered entry for later queries and unloading.

Returns ReckfellExtensionManager.LoadStatus

Ok after deinitialization and registry removal; NotLoaded for an unregistered path; Failed on rejection, such as recovery mode.

Signals and events3

ExtensionLoadedEvent
# ExtensionLoaded
C#
public static event ReckfellExtensionManager.ExtensionLoadedEventHandler ExtensionLoaded;

Editor-build event after library initialization. In the current first-load path it fires before registry insertion; do not call GetExtension(path) in the handler assuming the entry already exists. Use the supplied object; the event does not certify every native method.

Handler parameters
NameTypeDefault
extensionReckfellExtension—
extension

Extension object supplied by the event. Use it for observation; the event does not transfer ownership of the manager lifecycle.

ExtensionUnloadingEvent
# ExtensionUnloading
C#
public static event ReckfellExtensionManager.ExtensionUnloadingEventHandler ExtensionUnloading;

Editor-build event before class deinitialization and registry removal. The supplied extension is still available; this does not report completed DLL closure. Do not recursively unload it from this handler.

Handler parameters
NameTypeDefault
extensionReckfellExtension—
extension

Extension object supplied by the event. Use it for observation; the event does not transfer ownership of the manager lifecycle.

ExtensionsReloadedEvent
# ExtensionsReloaded
C#
public static event Action ExtensionsReloaded;

Notification from the editor’s changed-reloadable-library scan. Not a separate event for every direct ReloadExtension and not proof that every attempt succeeded. Ordinary LoadExtension/UnloadExtension do not emit it.

ReckfellExtensionManager.LoadStatus

ValueDescription
AlreadyLoaded = 2

The extension has already been loaded.

Failed = 1

The extension has failed to load, possibly because it does not exist or has missing dependencies.

NeedsRestart = 4

The extension requires the application to restart to fully load.

NotLoaded = 3

The extension has not been loaded.

Ok = 0

The extension has loaded successfully.

Reckfell Engine documentationBack to top ↑
QUICK LINKSGetting startedEntity hierarchyC# & .NET 10Scenes and prefabs
Reckfell guides and full API K
reckfellENGINE
RECKFELL ACCOUNT

Sign in

Sign in to your Reckfell account.

One account for the entire Reckfell platform.