Skip to content

GameFeatures

5 tools. Back to the index.

activate_game_feature_plugin

Destructive, idempotent.

Load and activate a Game Feature Plugin by name or URL. ASYNC + honest-headless: the state transition runs on the subsystem's own ticker, so this fires the activation (logging the eventual result) and returns immediately with the current state -- poll get_game_feature_plugin_state until state == "Active". Idempotent: if already active, no-ops with already_active=true.

Parameter Type Required Description
plugin_name string no Name of the Game Feature Plugin (resolved to a URL via the subsystem registry). Provide this OR plugin_url.
plugin_url string no The plugin URL directly (e.g. a file: protocol URL). Takes precedence over plugin_name.

Returns: { url: string, already_active: bool, state: string, is_active: bool, is_loaded: bool, is_registered: bool, note: string }

deactivate_game_feature_plugin

Destructive, idempotent.

Deactivate an active Game Feature Plugin by name or URL. ASYNC + honest-headless (same fire-and-return pattern as activate): returns immediately with the current state; poll get_game_feature_plugin_state. Idempotent: if not active, no-ops with already_inactive=true.

Parameter Type Required Description
plugin_name string no Name of the Game Feature Plugin (resolved to a URL). Provide this OR plugin_url.
plugin_url string no The plugin URL directly. Takes precedence over plugin_name.

Returns: { url: string, already_inactive: bool, state: string, is_active: bool, is_loaded: bool, is_registered: bool, note: string }

get_game_feature_plugin_state

Read-only.

Read the current lifecycle state of a Game Feature Plugin by name or URL (synchronous). The engine's EGameFeaturePluginState enum is non-reflective, so this is the canonical way to observe/poll a plugin's state after an async activate/deactivate.

Parameter Type Required Description
plugin_name string no Name of the Game Feature Plugin (resolved to a URL). Provide this OR plugin_url.
plugin_url string no The plugin URL directly. Takes precedence over plugin_name. An unknown URL reports state "UnknownStatus".

Returns: { url: string, state: string, is_active: bool, is_loaded: bool, is_registered: bool, is_installed: bool, is_in_error_state: bool }

list_game_feature_plugins

Read-only.

Enumerate every Game Feature Plugin the subsystem knows about (built-in + registered), with each one's current state. Read-only, synchronous.

No parameters.

Returns: { plugins: [{ name: string, url: string, loaded_as_built_in: bool, state: string }], count: int }

unload_game_feature_plugin

Destructive, idempotent.

Unload a Game Feature Plugin by name or URL (complement of activate/deactivate). ASYNC + honest-headless (same fire-and-return pattern): returns immediately with the current state; poll get_game_feature_plugin_state. Idempotent: if not loaded, no-ops with already_unloaded=true. Note: an active plugin is still loaded, so this unloads it regardless of active state.

Parameter Type Required Description
plugin_name string no Name of the Game Feature Plugin (resolved to a URL). Provide this OR plugin_url.
plugin_url string no The plugin URL directly. Takes precedence over plugin_name.
keep_registered boolean no If true, the plugin stays registered after unloading (unwinds to the Registered state instead of fully unregistering). Optional, default false.

Returns: { url: string, already_unloaded: bool, keep_registered: bool, state: string, is_active: bool, is_loaded: bool, is_registered: bool, note: string }