Plugin Management
Install, replace, enable, disable, and uninstall local Turboism plugin JARs safely.
Turboism provides two ways to install a local plugin JAR: managed installation (recommended) and manual installation (advanced/fallback). It is not a system-level Turboism installer, and the signed Official Directory is not production-enabled yet.
All plugin-management changes are staged and applied after Cubism restarts. They do not hot-swap the currently loaded plugin instance.
Managed installation (recommended)
- Build or obtain a plugin JAR from a source you trust.
- Open Turboism plugin management.
- Choose Install from JAR….
- Select the local
.jarfile. - Confirm the dialog that marks the JAR as a local/unverified source.
- Confirm that the operation is shown as pending.
- Close Cubism normally.
- Start Cubism again through the same Turboism home.
- Check the plugin list and Runtime logs for the effective state.
Before staging, Runtime treats the selected JAR as untrusted local input. It opens a regular non-symlink JAR capped at 16 MiB, inspects exactly one descriptor and the plugin content, then snapshots the payload into pending state.
The staging journal persists the raw JAR SHA-256 and size, the descriptor hash, the plugin ID, and the version. On the next startup, Runtime revalidates the staged JAR against that identity before applying it.
Replace or update a plugin
There is no separate production update service today. Installing a newer JAR with the same plugin ID stages a replacement intent.
Recommended procedure:
- Back up the current JAR and the plugin's persistent configuration/data.
- Install the newer JAR through plugin management.
- Restart Cubism.
- Verify the displayed version, lifecycle state, configuration migration, and logs.
Startup preflight revalidates the staged JAR, and a failed apply restores the previous plugin files from a private backup. There is no retained historical version list, and no complete user-facing repair, rollback, recovery, or purge UI.
Disable or enable a plugin
The desired state is persisted in the Turboism home configuration and applies after restart.
- the Runtime-owned
turboism.coreplugin cannot be disabled; - disabled plugins are skipped during the next startup discovery;
- changing the toggle does not immediately unload the active instance;
- normal shutdown still gives the plugin a chance to close its scope and ClassLoader references.
Uninstall a plugin
- Select the plugin in plugin management.
- Choose Uninstall.
- Confirm the pending operation.
- Close and restart Cubism.
- Confirm that the plugin is no longer loaded.
- Decide whether to retain or remove its data.
The core plugin cannot be uninstalled.
Removing the plugin JAR does not automatically erase every plugin-owned file:
- retain
config/<pluginId>/anddata/<pluginId>/if settings or business data may be needed after reinstall; cache/<pluginId>/,state/<pluginId>/, andlogs/<pluginId>/are generally rebuildable or diagnostic, but remove them only while Turboism is stopped;- deleting configuration or persistent data is irreversible without a backup.
Manual installation
Manual installation is an advanced/fallback path for trusted plugin JARs. It copies a plugin JAR directly into the Turboism home's plugins/ directory instead of going through managed staging. Ordinary users should prefer the managed installation above.
Manual copying bypasses the managed safeguards detailed in the comparison below. Runtime still performs startup validation, but startup validation is not equivalent to managed preflight.
A plugin JAR is the JAR built from plugin source. It is not the Turboism installer file, TurboismInstaller-<version>.jar.
Install a plugin JAR manually
- Fully close Cubism and Turboism. Plugin JARs are scanned at startup, so changes only take effect after a full stop and restart.
- Identify the exact Turboism home used by the launcher.
- Create or open
<turboism.home>/plugins/. - Copy the plugin JAR directly into the root of
<turboism.home>/plugins/, and keep at most one JAR for each plugin ID. Do not place it in a nested folder and do not use a symlink. - Start Cubism again through the same Turboism home.
- Check the plugin list/state and Runtime logs.
The plugins/ location depends on the launcher and installation mode:
- Windows
.exeinstaller default:%LOCALAPPDATA%\Turboism\plugins\ - custom
.exe/.jarinstaller home:<selected Turboism directory>/plugins/
Replace or update a manually installed plugin
- Stop Cubism and Turboism first.
- Back up the old JAR and the plugin's important
config/<pluginId>/anddata/<pluginId>/content. - Remove the old same-ID JAR before copying the replacement. Two JARs with the same plugin ID fail with
DUPLICATE_PLUGIN_ID. - Restart with the same Turboism home and verify the version, state, and logs.
Uninstall a manually installed plugin
- Stop Cubism and Turboism.
- Remove the plugin JAR from
<turboism.home>/plugins/. - Restart and confirm the plugin is no longer loaded.
- Plugin data remains unless you deliberately remove it. Delete
config/<pluginId>/ordata/<pluginId>/only while Turboism is stopped, and only with a backup.
Managed vs manual installation
Managed installation additionally provides:
- UI confirmation and pending-operation tracking;
- source-path and strict archive preflight, including the 16 MiB cap;
- private snapshot, pending journal, and staged apply;
- managed backup/restore if the staged apply fails.
Manual installation bypasses all of the above, but the copied JAR still goes through startup validation: descriptor parsing/schema, plugin JAR content contract, reserved IDs, Turboism API range, dependencies, disabled IDs, entrypoint loading, and lifecycle.
JAR rejection
A managed JAR can be rejected for reasons including:
- a symbolic link or non-regular source path;
- size over the 16 MiB cap;
- malformed or ambiguous ZIP paths;
- duplicate entries or special files;
- more or fewer than one
META-INF/turboism/plugin.json; - descriptor ID, version, or API-range inconsistencies;
- copied SDK, Runtime, test, or Live2D classes;
- native or installer payloads;
- nested JAR content;
- missing entrypoint classes, declared resources, or i18n catalogs.
Rebuild the JAR from the current plugin source. Do not edit the archive manually or disable inspection. The reasons above describe managed preflight; manual copying skips it, and only violations enforced by startup validation appear in Runtime startup diagnostics.
Current limitations
Plugin management does not currently provide:
- production-enabled online discovery or downloads;
- publisher signing or revocation;
- a live marketplace;
- retained historical versions;
- a complete user-facing repair, rollback, recovery, or purge UI;
- system-level modification of Cubism installations or launchers.
The built-in Official Directory client and UI exist, but production activation is not ready: the production key list is empty and live signed catalog readiness is not established.