# Docs ## automation - [Automation](/docs/automation): Run SoulFire's current native automation modes, tune the key settings, and inspect what the coordinator is doing. ## concepts - [Concepts](/docs/concepts): Understand the ideas behind SoulFire before you choose a deployment model or extend it. - [Operation Modes](/docs/concepts/operation-modes): Understand how local integrated servers and remote dedicated servers fit into the SoulFire model. - [Plugins](/docs/concepts/plugins): Understand why SoulFire plugins are Fabric mods and what that means for compatibility and extension. ## development - [Architecture And Protocols](/docs/development/architecture-and-protocols): Understand how SoulFire boots, loads plugins, manages instances and bots, and translates GUI or CLI actions into low-level bot behavior. - [Bot Control And Direct Access](/docs/development/bot-control-and-direct-access): Use ControlState, ControllingTask, BotConnection, and direct Minecraft access when you need in-process control beyond the public scripting surface. - [Developer Resources](/docs/development/developer-resources): Jump directly to the current Javadocs, source trees, artifact coordinates, built-in plugin references, and other official SoulFire development entry points. - [Environment Setup](/docs/development/environment-setup): Set up Java, Gradle, IntelliJ, and a source checkout that matches the SoulFire version your plugin targets. - [Event System](/docs/development/event-system): Understand how SoulFire events are registered, what the current event hierarchy looks like, and which mutable hooks exist before you reach for Mixins. - [Build Your First Plugin](/docs/development/first-plugin): Create a working SoulFire plugin from the official template and load it into SoulFire as a Fabric mod. - [Gradle And Project Layout](/docs/development/gradle-and-project-layout): Configure Fabric Loom, SoulFire dependencies, Maven repositories, and the required project files for a SoulFire plugin. - [Development](/docs/development): Build advanced SoulFire plugins when scripting is not enough and you need low-level access to Minecraft or SoulFire internals. - [Mixins And Access Wideners](/docs/development/mixins-and-access-wideners): Use Fabric Mixins and access wideners to inject into Minecraft or SoulFire internals when the public event surface is not enough. - [Settings And Metadata](/docs/development/settings-and-metadata): Define typed settings, expose plugin pages to the UI, and store transient or persistent plugin state in the SoulFire runtime. ## how-to - [AI Support](/docs/how-to/ai-support): Configure SoulFire's built-in AI integrations, choose compatible providers, and pick sensible models for chat, scripting, and captcha flows. - [Auto Register](/docs/how-to/auto-register): Configure SoulFire's auto-register plugin to respond to AuthMe-style register and login prompts automatically. - [Dedicated Mode](/docs/how-to/dedicated-mode): Learn how to use SoulFire in dedicated mode. - [Docker](/docs/how-to/docker): SoulFire + Docker = ❤️ - [Fake Virtual Host](/docs/how-to/fake-virtual-host): Override the hostname and port SoulFire sends in the login handshake when a target network routes players based on the virtual host. - [Forwarding Bypass](/docs/how-to/forwarding-bypass): Configure SoulFire's forwarding-bypass plugin, including Modern, BungeeGuard, legacy forwarding, and SoulFireBypass for online-mode proxy networks. - [GUI Navigation](/docs/how-to/gui-navigation): Find the main areas of the SoulFire interface and where common tasks live. - [Import Accounts](/docs/how-to/import-accounts): Add offline or Microsoft accounts to an instance and choose how SoulFire should use them. - [Import Proxies](/docs/how-to/import-proxies): Add HTTP, SOCKS4, or SOCKS5 proxies to an instance and control how SoulFire distributes bots across them. - [How-to Guides](/docs/how-to): Complete specific SoulFire tasks such as importing data, enabling plugins, and using integrations. - [Install Plugins](/docs/how-to/install-plugins): Enable built-in plugins and install compatible community Fabric mods in SoulFire. - [Kill Aura](/docs/how-to/kill-aura): Configure SoulFire's kill-aura plugin for combat testing with sane ranges, cooldown behavior, whitelist protection, and wall checks. - [MCP (AI Integration)](/docs/how-to/mcp): Connect AI assistants like Claude, ChatGPT, and others to SoulFire using the Model Context Protocol. - [Server List Bypass](/docs/how-to/server-list-bypass): Use SoulFire's server-list-bypass plugin to ping the server list before join attempts on networks that expect that pre-login behavior. - [WebDAV](/docs/how-to/webdav): Learn how to use WebDAV with SoulFire on Windows, Linux, and macOS. ## overview - [Docs](/docs): Install SoulFire, run your first session, automate bots, and look up product details. ## reference - [Account Formats](/docs/reference/account-formats): Reference for supported account types, import formats, and account settings in SoulFire. - [Built-in Plugins](/docs/reference/built-in-plugins): Reference for the built-in plugins that ship with SoulFire. - [Command line flags](/docs/reference/cli-flags): Learn how to configure the SoulFire client with command line flags. - [Commands](/docs/reference/commands): Learn how to use commands with SoulFire. - [Reference](/docs/reference): Look up SoulFire commands, flags, formats, versions, and other product facts. - [Proxy Formats](/docs/reference/proxy-formats): Reference for supported proxy types, import formats, and proxy settings in SoulFire. - [Terminology](/docs/reference/terminology): Reference for common terms used throughout the SoulFire documentation and API. - [Supported Versions](/docs/reference/versions): A list of all versions that are supported by SoulFire. ## scripting - [Examples](/docs/scripting/examples): Practical SoulFire scripting examples built with the current node set. - [Scripting](/docs/scripting): Build visual automation for SoulFire bots with the current node-based scripting system. - [Node Reference](/docs/scripting/node-reference): Reference for every built-in SoulFire scripting node, grouped by category. - [Triggers](/docs/scripting/triggers): Reference for the current SoulFire scripting triggers, including what each one outputs and when to use it. ## start-here - [Choose Your Setup](/docs/start-here/choose-your-setup): Decide whether you should start with the local GUI, CLI automation, or a remote dedicated server. - [CLI Mode](/docs/start-here/cli-mode): Run SoulFire from the terminal for automation, SSH workflows, or headless environments. - [Deploy a Dedicated Server (Automated Setup)](/docs/start-here/dedicated-server): Deploy SoulFire on a remote Linux server with the automated Docker-based setup script. - [Run Your First Session in GUI Mode](/docs/start-here/gui-mode): Start an instance, configure it, and launch your first SoulFire session from the GUI. - [Start Here](/docs/start-here): Choose the right SoulFire setup, install it, and complete your first successful run. - [Installation on Linux (.flatpak)](/docs/start-here/linux): Learn how to install SoulFire on your Linux PC. - [Installation on macOS (.dmg)](/docs/start-here/macos): Learn how to install SoulFire on your macOS PC. - [Installation on Windows (.exe)](/docs/start-here/windows): Learn how to install SoulFire on your Windows PC. ## troubleshooting - [Accounts And Authentication](/docs/troubleshooting/accounts-and-authentication): Diagnose Minecraft account import and authentication failures without mixing them up with remote-server access tokens. - [Cannot Connect Or Times Out](/docs/troubleshooting/cannot-connect-or-times-out): Diagnose remote-login failures, session disconnects, and timeout errors without changing everything at once. - [Dedicated Server And Docker](/docs/troubleshooting/dedicated-server-and-docker): Diagnose remote-server, Docker, Cloudflared, and Traefik problems before you start changing client-side settings. - [Troubleshooting](/docs/troubleshooting): Diagnose common SoulFire problems by symptom instead of guessing. - [Proxies](/docs/troubleshooting/proxies): Diagnose proxy import, validation, and connection failures without blaming the whole setup too early. - [Scripts And Automation](/docs/troubleshooting/scripts-and-automation): Diagnose visual scripting and native automation issues by shrinking the problem to the smallest failing flow. ## openapi - [API Reference](/docs/openapi): Browse the generated SoulFire HTTP API surface from the published OpenAPI schema. - [Apply automation preset](/docs/openapi/automationservice/soulfire_v1_AutomationService_ApplyAutomationPreset_POST): - [Get automation bot state](/docs/openapi/automationservice/soulfire_v1_AutomationService_GetAutomationBotState_GET): - [Get automation coordination state](/docs/openapi/automationservice/soulfire_v1_AutomationService_GetAutomationCoordinationState_GET): - [Get automation memory state](/docs/openapi/automationservice/soulfire_v1_AutomationService_GetAutomationMemoryState_GET): - [Get automation team state](/docs/openapi/automationservice/soulfire_v1_AutomationService_GetAutomationTeamState_GET): - [Pause automation](/docs/openapi/automationservice/soulfire_v1_AutomationService_PauseAutomation_POST): - [Release automation bot claims](/docs/openapi/automationservice/soulfire_v1_AutomationService_ReleaseAutomationBotClaims_POST): - [Release automation claim](/docs/openapi/automationservice/soulfire_v1_AutomationService_ReleaseAutomationClaim_POST): - [Reset automation coordination state](/docs/openapi/automationservice/soulfire_v1_AutomationService_ResetAutomationCoordinationState_POST): - [Reset automation memory](/docs/openapi/automationservice/soulfire_v1_AutomationService_ResetAutomationMemory_POST): - [Resume automation](/docs/openapi/automationservice/soulfire_v1_AutomationService_ResumeAutomation_POST): - [Set automation collaboration](/docs/openapi/automationservice/soulfire_v1_AutomationService_SetAutomationCollaboration_POST): - [Set automation max End bots](/docs/openapi/automationservice/soulfire_v1_AutomationService_SetAutomationMaxEndBots_POST): - [Set automation objective override](/docs/openapi/automationservice/soulfire_v1_AutomationService_SetAutomationObjectiveOverride_POST): - [Set automation quota override](/docs/openapi/automationservice/soulfire_v1_AutomationService_SetAutomationQuotaOverride_POST): - [Set automation role override](/docs/openapi/automationservice/soulfire_v1_AutomationService_SetAutomationRoleOverride_POST): - [Set automation role policy](/docs/openapi/automationservice/soulfire_v1_AutomationService_SetAutomationRolePolicy_POST): - [Set automation shared claims](/docs/openapi/automationservice/soulfire_v1_AutomationService_SetAutomationSharedClaims_POST): - [Set automation shared End entry](/docs/openapi/automationservice/soulfire_v1_AutomationService_SetAutomationSharedEndEntry_POST): - [Set automation shared structures](/docs/openapi/automationservice/soulfire_v1_AutomationService_SetAutomationSharedStructures_POST): - [Start automation acquire](/docs/openapi/automationservice/soulfire_v1_AutomationService_StartAutomationAcquire_POST): - [Start automation beat](/docs/openapi/automationservice/soulfire_v1_AutomationService_StartAutomationBeat_POST): - [Stop automation](/docs/openapi/automationservice/soulfire_v1_AutomationService_StopAutomation_POST): - [Update automation bot settings](/docs/openapi/automationservice/soulfire_v1_AutomationService_UpdateAutomationBotSettings_POST): - [Click container button](/docs/openapi/botservice/soulfire_v1_BotService_ClickContainerButton_POST): Clicks a container-specific action button. Used for: stonecutter recipes, enchanting, loom patterns, villager trades, beacon effects, crafter slot toggles, lectern page navigation. The action is queued and executed on the next game tick. - [Click dialog button](/docs/openapi/botservice/soulfire_v1_BotService_ClickDialogButton_POST): Clicks a button in the current dialog. Button index depends on dialog type (see BotClickDialogButtonRequest). The dialog is typically closed after the button click. Note: Full dialog button packets are not yet implemented; this clears local state. - [Click inventory slot](/docs/openapi/botservice/soulfire_v1_BotService_ClickInventorySlot_POST): Performs a click action on an inventory/container slot. Supports various click types (left, right, shift, drop, swap, middle). The bot must be online with a valid player and gameMode. - [Close container](/docs/openapi/botservice/soulfire_v1_BotService_CloseContainer_POST): Closes the currently open container (chest, crafting table, etc.). Returns to the player inventory view. The bot must be online with a valid player. - [Close dialog](/docs/openapi/botservice/soulfire_v1_BotService_CloseDialog_POST): Closes/dismisses the current dialog. Clears the local dialog state. - [Get bot](/docs/openapi/botservice/soulfire_v1_BotService_GetBotInfo_GET): Returns detailed information about a specific bot. Includes full live state with complete inventory data when the bot is online. - [List bots](/docs/openapi/botservice/soulfire_v1_BotService_GetBotList_GET): Returns a list of all bots configured in the specified instance. Includes both online and offline bots with their current status. For online bots, includes live state (position, health, etc.) but NOT full inventory data. - [Get dialog](/docs/openapi/botservice/soulfire_v1_BotService_GetDialog_GET): Returns the currently displayed server dialog (Minecraft 1.21.6+). Dialogs are server-sent UI screens for custom interactions. Returns empty response if no dialog is being shown. Does not require the bot to be online (but dialog will be absent). - [Get inventory state](/docs/openapi/botservice/soulfire_v1_BotService_GetInventoryState_GET): Returns the current state of the bot's open container/inventory. Includes layout information, slot contents, and carried item. The bot must be online with a valid player. - [Mouse click](/docs/openapi/botservice/soulfire_v1_BotService_MouseClick_POST): Simulates a mouse click in the game world. Left click: attack entity or start breaking block. Right click: use item or interact with entity/block. The bot must be online with valid player, level, and gameMode. - [Open inventory](/docs/openapi/botservice/soulfire_v1_BotService_OpenInventory_POST): Opens the player's inventory screen. Sends a packet to the server to display the inventory UI. The bot must be online with a valid player. - [Render bot POV](/docs/openapi/botservice/soulfire_v1_BotService_RenderBotPov_GET): Renders the bot's point-of-view as a PNG image using software rendering. The bot must be online with a valid player and level. Uses the bot's current render distance setting. - [Reset movement](/docs/openapi/botservice/soulfire_v1_BotService_ResetMovement_POST): Resets all movement to stopped state. Equivalent to releasing all movement keys. The action is queued and executed on the next game tick. - [Set container text](/docs/openapi/botservice/soulfire_v1_BotService_SetContainerText_POST): Sets text in a container's text input field. Currently only supports anvil item renaming (field_id: "item_name"). The action is queued and executed on the next game tick. - [Select hotbar slot](/docs/openapi/botservice/soulfire_v1_BotService_SetHotbarSlot_POST): Changes the selected hotbar slot. Valid slot range: 0-8 (corresponding to slots 1-9 in the UI). The action is queued and executed on the next game tick. - [Set movement state](/docs/openapi/botservice/soulfire_v1_BotService_SetMovementState_POST): Updates the bot's movement state (WASD, jump, sneak, sprint). Only specified fields are changed; omitted fields retain their current value. Movement persists until explicitly changed or reset. The action is queued and executed on the next game tick. - [Set bot rotation](/docs/openapi/botservice/soulfire_v1_BotService_SetRotation_POST): Sets the bot's view rotation (look direction). Yaw is normalized to -180 to 180, pitch is clamped to -90 to 90. The action is queued and executed on the next game tick. - [Submit dialog](/docs/openapi/botservice/soulfire_v1_BotService_SubmitDialog_POST): Submits a dialog with input values. Used for dialogs containing text fields, checkboxes, dropdowns, or sliders. The dialog is closed after submission. Note: Full dialog response packets are not yet implemented; this clears local state. - [Update bot config entry](/docs/openapi/botservice/soulfire_v1_BotService_UpdateBotConfigEntry_PATCH): Updates a single configuration entry for a specific bot. The configuration is persisted to the database immediately. - [Generate API token](/docs/openapi/clientservice/soulfire_v1_ClientService_GenerateAPIToken_POST): Generates a new JWT token for API authentication. The generated token has the "api" audience and can be used for gRPC/HTTP API calls. - [Generate WebDAV token](/docs/openapi/clientservice/soulfire_v1_ClientService_GenerateWebDAVToken_POST): Generates a new JWT token specifically for WebDAV authentication. The generated token has the "webdav" audience and can only be used for WebDAV access. - [Get client data](/docs/openapi/clientservice/soulfire_v1_ClientService_GetClientData_GET): Retrieves comprehensive data about the authenticated client and the server. Returns user profile information, granted permissions, and server metadata. - [Invalidate self sessions](/docs/openapi/clientservice/soulfire_v1_ClientService_InvalidateSelfSessions_POST): Invalidates all existing sessions for the currently authenticated user. This is done by setting the user's minIssuedAt timestamp to the current time, which causes all previously issued JWT tokens to become invalid. After calling this method, the user will need to re-authenticate on all devices. - [Update self email](/docs/openapi/clientservice/soulfire_v1_ClientService_UpdateSelfEmail_PATCH): Updates the email address of the currently authenticated user. The change is persisted to the database immediately. - [Update self username](/docs/openapi/clientservice/soulfire_v1_ClientService_UpdateSelfUsername_PATCH): Updates the username of the currently authenticated user. The change is persisted to the database immediately. - [Execute command](/docs/openapi/commandservice/soulfire_v1_CommandService_ExecuteCommand_POST): Executes a command string within the specified scope. The command is parsed and executed using the Brigadier command dispatcher. Permission requirements depend on the scope: - Global scope: Requires GLOBAL_COMMAND_EXECUTION permission - Instance scope: Requires INSTANCE_COMMAND_EXECUTION for the instance - Bot scope: Requires INSTANCE_COMMAND_EXECUTION for the parent instance - [Complete command](/docs/openapi/commandservice/soulfire_v1_CommandService_TabCompleteCommand_POST): Retrieves tab-completion suggestions for a partial command. Uses Brigadier's completion system to generate context-aware suggestions based on the command structure and current cursor position. Permission requirements depend on the scope (same as ExecuteCommand). - [Download URL](/docs/openapi/downloadservice/soulfire_v1_DownloadService_Download_POST): Downloads content from the specified URI and returns the response. Makes an HTTP GET request to the URI specified in the request, optionally routing through a proxy. Custom headers can be provided to customize the request. - [Add instance account](/docs/openapi/instanceservice/soulfire_v1_InstanceService_AddInstanceAccount_POST): Adds a Minecraft account to the instance. The account's profile_id must be unique within the instance. - [Batch add instance accounts](/docs/openapi/instanceservice/soulfire_v1_InstanceService_AddInstanceAccountsBatch_POST): Adds multiple Minecraft accounts to the instance in a single operation. More efficient than multiple AddInstanceAccount calls. - [Batch add instance proxies](/docs/openapi/instanceservice/soulfire_v1_InstanceService_AddInstanceProxiesBatch_POST): Adds multiple proxies to the instance in a single operation. More efficient than multiple AddInstanceProxy calls. - [Add instance proxy](/docs/openapi/instanceservice/soulfire_v1_InstanceService_AddInstanceProxy_POST): Adds a proxy to the instance. - [Change instance state](/docs/openapi/instanceservice/soulfire_v1_InstanceService_ChangeInstanceState_POST): Changes the lifecycle state of an instance. Used to start, pause, resume, or stop bot sessions. The operation blocks until the state transition is complete. - [List instances](/docs/openapi/instanceservice/soulfire_v1_InstanceService_ListInstances_GET): Lists all instances the current user has permission to view. Only instances where the user has READ_INSTANCE permission are returned. Returns summary information for each instance. - [Create instance](/docs/openapi/instanceservice/soulfire_v1_InstanceService_CreateInstance_POST): Creates a new instance with the given friendly name. The instance starts in STOPPED state with default configuration. - [Delete account metadata entry](/docs/openapi/instanceservice/soulfire_v1_InstanceService_DeleteAccountMetadataEntry_DELETE): Deletes a persistent metadata entry from a Minecraft account. - [Set account metadata entry](/docs/openapi/instanceservice/soulfire_v1_InstanceService_SetAccountMetadataEntry_PUT): Sets a single persistent metadata entry for a Minecraft account. Creates the namespace and key if they don't exist, or updates if they do. - [Get instance](/docs/openapi/instanceservice/soulfire_v1_InstanceService_GetInstanceInfo_GET): Gets detailed information about a specific instance. Supports conditional requests via if_modified_since to reduce bandwidth. - [Delete instance](/docs/openapi/instanceservice/soulfire_v1_InstanceService_DeleteInstance_DELETE): Permanently deletes an instance and all its data. If the instance is running, it will be stopped first. This operation cannot be undone. - [Delete instance metadata entry](/docs/openapi/instanceservice/soulfire_v1_InstanceService_DeleteInstanceMetadataEntry_DELETE): Deletes a persistent metadata entry from the instance. - [Set instance metadata entry](/docs/openapi/instanceservice/soulfire_v1_InstanceService_SetInstanceMetadataEntry_PUT): Sets a single persistent metadata entry for the instance. Creates the namespace and key if they don't exist, or updates if they do. - [Get account metadata](/docs/openapi/instanceservice/soulfire_v1_InstanceService_GetAccountMetadata_GET): Gets persistent metadata for a Minecraft account. Persistent metadata survives bot restarts and session changes. - [Get audit log](/docs/openapi/instanceservice/soulfire_v1_InstanceService_GetAuditLog_GET): Retrieves the audit log for an instance. Returns a list of recorded actions ordered by timestamp (newest first). - [Get instance metadata](/docs/openapi/instanceservice/soulfire_v1_InstanceService_GetInstanceMetadata_GET): Gets persistent metadata for the instance itself. Persistent metadata survives restarts and session changes. - [Remove instance account](/docs/openapi/instanceservice/soulfire_v1_InstanceService_RemoveInstanceAccount_DELETE): Removes a Minecraft account from the instance by profile_id. - [Batch remove instance accounts](/docs/openapi/instanceservice/soulfire_v1_InstanceService_RemoveInstanceAccountsBatch_POST): Removes multiple Minecraft accounts from the instance by their profile_ids. More efficient than multiple RemoveInstanceAccount calls. - [Batch remove instance proxies](/docs/openapi/instanceservice/soulfire_v1_InstanceService_RemoveInstanceProxiesBatch_POST): Removes multiple proxies from the instance by their addresses. More efficient than multiple RemoveInstanceProxy calls. - [Remove instance proxy](/docs/openapi/instanceservice/soulfire_v1_InstanceService_RemoveInstanceProxy_DELETE): Removes a proxy from the instance by its index. - [Update instance proxy](/docs/openapi/instanceservice/soulfire_v1_InstanceService_UpdateInstanceProxy_PUT): Updates an existing proxy in the instance by its index. - [Update instance account](/docs/openapi/instanceservice/soulfire_v1_InstanceService_UpdateInstanceAccount_POST): Updates an existing Minecraft account in the instance. The account is matched by profile_id and replaced. - [Update instance config](/docs/openapi/instanceservice/soulfire_v1_InstanceService_UpdateInstanceConfig_PATCH): Replaces the entire instance configuration. Used primarily for profile import operations. For individual setting changes, use UpdateInstanceConfigEntry instead. - [Update instance config entry](/docs/openapi/instanceservice/soulfire_v1_InstanceService_UpdateInstanceConfigEntry_PUT): Updates a single configuration entry by namespace and key. More efficient than UpdateInstanceConfig for individual changes. - [Update instance metadata](/docs/openapi/instanceservice/soulfire_v1_InstanceService_UpdateInstanceMeta_PATCH): Updates instance metadata (friendly name or icon). Only one field can be updated per request. - [Verify email code](/docs/openapi/loginservice/soulfire_v1_LoginService_EmailCode_POST): Verifies an email verification code to complete authentication. The auth_flow_token must match a pending login flow, and the code must match the one that was sent to the user's email. On success, returns a JWT token. On failure, returns a Failure response with INVALID_CODE reason. After successful verification, the auth_flow_token is invalidated and cannot be reused. - [Start login flow](/docs/openapi/loginservice/soulfire_v1_LoginService_Login_POST): Initiates a login flow for the specified email address. If the email is registered, a six-digit verification code is sent to that address. The response always indicates that an email code step is next, regardless of whether the email exists, to prevent email enumeration attacks. - [Get log history](/docs/openapi/logsservice/soulfire_v1_LogsService_GetPrevious_POST): Retrieves historical log entries from the server's in-memory log buffer. The server maintains a rolling buffer of the last 300 log entries. Only returns non-personal logs that match the specified scope. - [Refresh Minecraft account](/docs/openapi/mcauthservice/soulfire_v1_MCAuthService_Refresh_POST): Refreshes the authentication tokens for an existing Minecraft account. Used to renew expired access tokens using stored refresh tokens. For Microsoft accounts, this refreshes the Minecraft token, profile, and player certificates. For offline accounts, returns the account unchanged (offline accounts never expire). - [Get instance metrics](/docs/openapi/metricsservice/soulfire_v1_MetricsService_GetInstanceMetrics_GET): Returns time-series metrics and current distributions for an instance. Supports incremental fetching via the "since" parameter. - [Get server metrics](/docs/openapi/metricsservice/soulfire_v1_MetricsService_GetServerMetrics_GET): Returns server-level system metrics (CPU, memory, threads, GC, aggregate bots). Supports incremental fetching via the "since" parameter. - [List scripts](/docs/openapi/scriptservice/soulfire_v1_ScriptService_ListScripts_GET): Lists all scripts in the specified instance. Returns summary information (ScriptInfo) without full node/edge data to reduce response size. - [Create script](/docs/openapi/scriptservice/soulfire_v1_ScriptService_CreateScript_POST): Creates a new script in the specified instance. The script can be created with initial nodes and edges, or as a blank script to be edited later. - [Deactivate script](/docs/openapi/scriptservice/soulfire_v1_ScriptService_DeactivateScript_POST): Deactivates an active script. Unregisters all event listeners and cancels any pending async operations. - [Get script](/docs/openapi/scriptservice/soulfire_v1_ScriptService_GetScript_GET): Retrieves a specific script by its ID. Returns the complete script data including all nodes and edges. - [Update script](/docs/openapi/scriptservice/soulfire_v1_ScriptService_UpdateScript_PATCH): Updates an existing script's metadata and/or node graph. Only specified fields are updated; others remain unchanged. Use update_nodes/update_edges flags to explicitly set empty lists. - [Delete script](/docs/openapi/scriptservice/soulfire_v1_ScriptService_DeleteScript_DELETE): Permanently deletes a script. If the script is currently active, it will be deactivated first. This operation cannot be undone. - [Get node types](/docs/openapi/scriptservice/soulfire_v1_ScriptService_GetNodeTypes_GET): Gets all available node types with their metadata. This enables clients to render the node editor without hardcoded knowledge of specific node types. The response includes port definitions, categories, display names, and all other information needed to render and validate nodes. This endpoint is cacheable - node types only change between server versions. - [Get script registry data](/docs/openapi/scriptservice/soulfire_v1_ScriptService_GetRegistryData_GET): Gets Minecraft registry data for autocomplete and validation. Returns blocks, entities, items, and biomes that can be used in scripts. This endpoint is cacheable - registry data only changes between server versions. - [Get script status](/docs/openapi/scriptservice/soulfire_v1_ScriptService_GetScriptStatus_GET): Gets the current status of a script. Returns whether the script is active, which node is executing, and activation count. - [Validate script](/docs/openapi/scriptservice/soulfire_v1_ScriptService_ValidateScript_POST): Validates a script graph without saving it. Returns all diagnostics (errors and warnings) for the given nodes and edges. Useful for live validation in the editor without requiring a save. - [Get server info](/docs/openapi/serverservice/soulfire_v1_ServerService_GetServerInfo_GET): Retrieves comprehensive server information including current configuration, all available settings definitions, settings page layouts, and registered plugins. This method is typically called when initializing a settings UI to obtain: 1. Current configuration values to populate form fields 2. Settings definitions describing each setting's type, constraints, and metadata 3. Page definitions for organizing settings into logical groups 4. Plugin information for displaying registered plugins - [Update server config](/docs/openapi/serverservice/soulfire_v1_ServerService_UpdateServerConfig_PATCH): Replaces the entire server configuration with the provided values. This is a bulk update operation primarily used for profile import functionality. Use this method when you need to apply a complete configuration snapshot, such as when importing settings from a saved profile or restoring a backup. For individual setting changes during normal operation, prefer UpdateServerConfigEntry. The new configuration is persisted to the database, and runtime hooks are triggered to apply changes immediately (e.g., log level adjustments). - [Update server config entry](/docs/openapi/serverservice/soulfire_v1_ServerService_UpdateServerConfigEntry_PUT): Updates a single configuration entry identified by namespace and key. This is a granular update operation for modifying individual settings. This is the preferred method for real-time UI interactions where users modify settings one at a time. It avoids overwriting unrelated settings and is more efficient than replacing the entire configuration. If the namespace doesn't exist, it will be created. If the key doesn't exist within the namespace, it will be added. Existing values are overwritten. The change is persisted to the database, and runtime hooks are triggered to apply the new value immediately where applicable. - [List users](/docs/openapi/userservice/soulfire_v1_UserService_ListUsers_GET): Lists all users in the system. - [Create user](/docs/openapi/userservice/soulfire_v1_UserService_CreateUser_POST): Creates a new user account in the system. - [Get user](/docs/openapi/userservice/soulfire_v1_UserService_GetUserInfo_GET): Retrieves detailed information about a specific user. - [Update user](/docs/openapi/userservice/soulfire_v1_UserService_UpdateUser_PATCH): Updates an existing user's profile information. - [Delete user](/docs/openapi/userservice/soulfire_v1_UserService_DeleteUser_DELETE): Deletes an existing user from the system. - [Generate user API token](/docs/openapi/userservice/soulfire_v1_UserService_GenerateUserAPIToken_POST): Generates a new API token (JWT) for a specific user. - [Invalidate user sessions](/docs/openapi/userservice/soulfire_v1_UserService_InvalidateSessions_POST): Invalidates all active sessions for a user by updating their min_issued_at timestamp.