Plugin Marketplace

Install, reuse, fork, and share plugins across projects.

Overview

MP4E plugins can come from multiple sources: core/built-ins, your custom plugins, imported plugin files, and a marketplace API. Studio treats them all as the same plugin model at render time.

Plugin Sources

PropTypeDefaultDescription
createdPlugin source-Made in your workspace. Fully editable.
importedPlugin source-Installed from a portable plugin export file.
marketplacePlugin source-Fetched from the Marketplace API.
forkedPlugin source-Editable fork of an installed/marketplace plugin.

Install & Use Marketplace Plugins

Marketplace plugins are identified by a type string using namespace:type.

Type strings
1// Marketplace plugin type strings use the namespace:type format:
2// Examples:
3"mp4e:button"
4"shopify:product-card"
5"stripe:checkout"
Where you manage plugins in Studio
Go to Library → Plugins to browse installed and marketplace plugins, then apply them to overlays (or use them as displays/modals depending on category).

Forking Marketplace Plugins

Forking creates an editable copy while preserving attribution and origin metadata. It’s the recommended path when you want to customize a marketplace plugin for your brand or workflow.

Best practice
Treat marketplace plugins as upstream dependencies: fork when you need to customize, then version your fork for stable production deployments.

Export / Import (Portable Plugin Files)

Plugins can be exported as a portable JSON file. Importing validates integrity via a content hash and assigns a new plugin ID to avoid collisions.

Plugin export format
1// Portable plugin export format (PluginExportFormat v1.0)
2{
3 "formatVersion": "1.0",
4 "exportedAt": "2025-12-13T12:00:00.000Z",
5 "contentHash": "ab12cd34",
6 "plugin": {
7 "id": "plugin_...",
8 "name": "My Plugin",
9 "category": "overlay",
10 "content": { "html": "...", "css": "...", "script": "..." },
11 "defaultConfig": { /* ... */ },
12 "events": { /* ... */ },
13 "version": "1.2.3",
14 "source": "created"
15 }
16}

How Plugins Appear in Metadata

For portability, projects commonly embed plugin definitions directly in metadata:

Embedded plugins (schematic)
1{
2 "plugins": {
3 "acme:checkout-modal": {
4 "id": "acme:checkout-modal",
5 "name": "Checkout Modal",
6 "category": "modal",
7 "source": "created",
8 "content": { "html": "...", "css": "...", "script": "..." }
9 },
10 "mp4e:product-card": {
11 "id": "mp4e:product-card",
12 "name": "Product Card",
13 "category": "object-display",
14 "source": "marketplace",
15 "content": { "html": "...", "css": "...", "script": "..." }
16 }
17 }
18}
Why embedding matters
If the plugin ships with the MP4E file, the experience is portable: the player can render the overlays/modals without needing an external plugin registry.

Runtime Resolution

At runtime, the player resolves plugin content from the metadata registries (custom + marketplace). Studio uses the Marketplace API for discovery, but the MP4E experience itself can remain self-contained once exported.

Recommended deployment posture
For production, embed the exact plugin versions you want into the MP4E metadata (or export a stable “bundle”).