Developer Overview
TransBox exposes plugin capabilities for Steam Workshop and local extensions. This page tells you what you can build, which type to pick, and where to start.
Source of truth: the client source code (
src/transbox/plugins/,src/transbox/ui/bridge/). The plugin contract is split into knowledge cards — start at the Plugin Development Docs.
1. What You Can Build
| What you want | type | Barrier | Entry |
|---|---|---|---|
| Game/industry glossary (multi-direction) | glossary | No code | terms.json only (4-field object array) |
| Subtitle colors / opacity | theme | JSON | theme.json |
| Visual slots (backplate, VU, décor) | theme + QML | Medium | ui_extensions |
| Text cleanup / filters | middleware | Python | file.py:ClassName |
| Private ASR | asr | Python | BaseASRProvider |
| DeepL / LLM / local MT | mt | Python | BaseMTEngineProvider |
| Edge-TTS / SoVITS / etc. | tts | Python | BaseTTSProvider |
| End-to-end SI (bypasses local ASR→MT→TTS) | interpretation | Python | BaseInterpretationProvider |
| AI interview copilot | assistant | Python | BaseAssistantPlugin |
| Select-to-translate / hotkey tools | tool | Python | BaseToolPlugin |
| Extra UI language | i18n | No code | xx.json |
| Web caption bridge | caption_bridge | Workshop | community_web_caption_bridge |
| Per-site caption extractor | caption_extractor | JS | extractor.js |
Deprecated: audio_filter, bundle — host ignores them. Do not teach terms.txt / tsv (SPI: load as empty).
Web caption bridge is a Workshop item. End-user guide: /manual/workshop/caption/web-caption (Chinese).
2. Flow
Your folder (mod.json)
→ PluginRegistry scans: app extensions/ · %APPDATA%/transbox/extensions/ · Steam workshop/5521270/ (skipped in selfpub)
→ Mount by type / importlib for Python providers
→ User enables in Extension Workshop3. Quick Start
- Copy a real example under
extensions/(e.g.example_glossary_gaming,community_select_translate,community_cloud_mimo_asr). - Change unique
id/nameinmod.json. - Drop into local extensions → Refresh → Enable.
- Engines: pick in ASR/MT/TTS settings. Interpretation: enters SI mode and bypasses standard ASR+MT+TTS.
- Publish: Steam Workshop Hub, or export Zip for
%APPDATA%/transbox/extensions/(selfpub / non-Steam). See Workshop & self-distribution.
Cloud UX (“Get Key”, “Test connection”, MiMo Token Plan vs API dual base URLs) requires your own settings_view QML — config_schema alone is not enough. See Custom settings view.
4. Doc Map
| Page | Contents |
|---|---|
| Build | Local setup |
| Client internals | Python class loading, config assembly, security model |
| Plugin Development Docs | Browse by topic: start / types / Host SPI / providers / config / UI / publish / reference |
| Plugin spec | Code assets: Prompt-and-Go template, SDK stub, 7 complete templates, AI checklist |
| UI slots | QML slots & HostContext |
| Workshop publish | Steam + local Zip |
5. Known Limits
| Item | Status |
|---|---|
| Cloud settings form | Not auto-generated from config_schema; ship SettingsView.qml |
| Glossary | SPI: four-field JSON array only |
| Selfpub build | No Steam UGC; local extension dirs still work |
