Plugin Development Overview

What plugins can do, where they are restricted, and how to think about the runtime model.

Roneat Studio Pro plugins are sandboxed, asynchronous, and built for deep product extensions.

With API v2.2.0, plugins can modify the UI, work with scores, drive audio playback, and automate project actions.

What plugins can do

Total UI theming

Change the application palette at runtime.

Use set_theme_color("accent", "#FF0000") to repaint active windows immediately.

Add custom buttons, icons, and standalone plugin pages.

Use this to expose tools directly inside the plugin experience.

Score interception

Read, parse, inject, replace, and analyze the active score in real time.

Asynchronous audio

Play native sounds or synthesize raw frequencies without freezing the GUI.

State automation

Read project data and trigger project save or load actions.

Hardware integration

Import Python libraries such as pyserial or pygame.midi to connect external hardware and trigger plugin actions.

What plugins should not do

Do not override core navigation

Plugins cannot move core navigation anchors or remove built-in screens such as Editor.

Do not block the main thread

Avoid endless loops in the main plugin file.

If you need background work, start a daemon thread instead.

Do not rewrite application source files

Plugins are expected to hook into runtime behavior.

They should not edit the application's .py files on disk.

circle-exclamation

Build small features first.

Keep startup logic light.

Move long-running work into background threads.

Always clean up resources in your unload hook.

Last updated

Was this helpful?