Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.mudstack.com/llms.txt

Use this file to discover all available pages before exploring further.

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.