Skip to main content
Use this list as inspiration for plugins you can build on top of the Mudstack plugin system. Each idea can be implemented using the Plugin API: events, database access, config, context menu commands, and script execution.

Thumbnailers and previews

  • FBX / GLTF / GLB thumbnailer – Register for *.fbx, *.gltf, *.glb. Use getVersionLocalPath to read the file, run a headless renderer or external tool (e.g. Blender, custom script) to generate an image, then updateThumbnail with the image path.
  • Image thumbnailer – Generate thumbnails for PSD, TIFF, EXR, or other image formats (resize/crop via ImageMagick, Sharp, or a small script). Filter by extension in the thumbnailer registration.
  • Audio thumbnailer – For WAV/MP3/OGG: generate a waveform image or use a small script that outputs a PNG; set it as the version thumbnail.
  • Video thumbnailer – Extract a frame (e.g. via ffmpeg) and call updateThumbnail.
  • Document thumbnailer – PDF, DOCX: first page or cover as thumbnail using a CLI or script.
  • Substance / SBSAR thumbnailer – Integrate with Allegorithmic tools or a renderer to produce a preview image for material assets.
  • Houdini / Maya / Max thumbnailer – Use DCC command-line or scripting to render a viewport or frame and set as thumbnail.

Context menu actions

  • Export to Unity – Context menu “Export to Unity”: copy or convert selected assets to a Unity project path (configurable in plugin config). Use api.db to resolve paths and executeCommand or executeNodeScript for copy/convert.
  • Export to Unreal – Same idea for Unreal: copy to Content folder or run Unreal’s import pipeline via CLI if available.
  • Run validation – “Validate selection”: run a custom validator script (e.g. Python, Node) on selected assets; show results in logs or respond with a toast (if the app supports it via event).
  • Batch rename – Right-click folder or selection: open a naming convention (e.g. prefix + counter), then use api.db.assetAPI to rename/move assets.
  • Add tag from preset – “Add tag: WIP”, “Add tag: Approved”, etc. Use api.db.assetAPI.addTags for selected assets.
  • Copy path / Copy ID – Context menu to copy asset path or asset/version ID to clipboard (via a small script or by sending an event that the app or another plugin handles).
  • Create version from local file – “New version from file…”: pick a file, then call upload/version APIs or trigger app flow via events if exposed.
  • Send to review – “Request review”: create a review request or trigger review workflow using api.db or app events.
  • Run custom script – “Run script…”: let the user choose a script (path in config) and run it with selected asset IDs as arguments via executeNodeScript or executePythonScript.

Event-driven automation

  • Auto-tag on upload – Subscribe to file.created or file.newVersion. Based on path, extension, or metadata, call api.db.assetAPI.addTags or api.db.assetVersionAPI to set status/tags.
  • Slack / Discord / Teams on new version – On file.newVersion, post a message to Slack/Discord/Teams (webhook or SDK) with asset name, link, and user. Use api.executeNodeScript or api.executePythonScript to call the API.
  • Thumbnail-on-upload – If your plugin is the thumbnailer for that type, thumbnails are generated when the app requests them; you can also subscribe to file.newVersion and proactively trigger thumbnail generation for supported types.
  • Sync to external system – On file.created / file.newVersion, push metadata or file reference to a pipeline DB, ShotGrid, Ftrack, or custom API using api.db to read asset/version info and execute* or HTTP from a script.
  • Approval gates – Subscribe to status or review events; when “Approved”, emit an event or call an external service to unlock the next step in the pipeline.
  • Cleanup old versions – Periodic (timer in plugin) or on event: list versions for assets, keep last N, call api.db.assetVersionAPI to trash or delete older ones (with configurable rules and safety limits).

Integrations and pipeline

  • ShotGrid / FTrack sync – Two-way or one-way sync: when assets/versions change in Mudstack, update ShotGrid/FTrack (and optionally the reverse). Use api.db and execute* or a small Node/Python service.
  • Perforce / Git LFS bridge – On new version or on demand, export files to a Perforce depot or Git LFS repo via getVersionLocalPath and executeCommand (p4, git).
  • CI/CD trigger – On file.newVersion or “Run validation” context menu, call Jenkins, GitHub Actions, or a webhook (e.g. via executeCommand curl or a script).
  • Asset validator (custom rules) – Plugin that subscribes to file.newVersion or is invoked via context menu. Run custom checks (naming, poly count, texture size) and update status or tags via api.db; log or emit results.
  • Naming convention enforcer – On file.created or file.moved, validate path/name against a configurable pattern; add a tag “Naming OK” or “Needs rename” and optionally log warnings.
  • Library sync – Keep a Mudstack library in sync with a folder or another source: periodically or on event, compare and add/remove assets using api.db.libraryAPI and api.db.assetAPI.

Quality of life and utilities

  • Duplicate detector – Periodically or on demand: hash file contents (via getVersionLocalPath and a script), find duplicates, tag or report them.
  • Storage usage reporter – Use api.db to list assets/versions, optionally with getVersionLocalPath and file size; aggregate by folder or type and log or export a report.
  • Bulk status update – Context menu or event-driven: set status on many assets at once (e.g. “Mark selection as Approved”) using api.db.
  • Favorite sync – Sync “favorites” or “pinned” state to an external list or vice versa (if the app exposes favorites in the DB or events).
  • Custom search – Expose a way to run a custom search (e.g. by tag, name pattern, or external API) and present results; can be implemented as a script that uses api.db and logs or emits results for another plugin or the app to display.

Advanced and niche

  • Custom thumbnail fallback – If no thumbnailer matches, your plugin registers for a wildcard or “fallback” and generates a generic icon (e.g. by extension) and calls updateThumbnail.
  • Encryption / DRM – On export or download path, run a script that encrypts or watermarks the file; or check a license before allowing an action (via context menu or event).
  • Multi-workspace copy – “Copy to workspace…” context menu: copy selected assets or versions to another workspace using api.db and upload/import APIs if available.
  • Version diff – Context menu “Compare with previous version”: use getVersionLocalPath for two versions and run a diff tool (e.g. external executable) via executeCommand.
  • Plugin dependency chain – A “orchestrator” plugin that depends on several others and coordinates them (e.g. thumbnailer + validator + Slack notifier) using api.hasDependency and api.requestFromPlugin.

Summary by category

CategoryExamples
ThumbnailersFBX/GLTF, image, audio, video, document, DCC-specific
Context menuExport to Unity/Unreal, validate, batch rename, add tag, copy path, run script
AutomationAuto-tag, Slack/Discord, sync to pipeline, approval gates, cleanup old versions
IntegrationsShotGrid/FTrack, Perforce/Git LFS, CI/CD, validators, naming enforcer
UtilitiesDuplicate detection, storage report, bulk status, custom search
AdvancedFallback thumbnail, encryption, multi-workspace copy, version diff, orchestrator
Use the Creating a plugin guide and the Plugin API to implement any of these. Start with a small scope (e.g. one context menu command or one event subscription) and expand from there.