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
| Category | Examples |
|---|---|
| Thumbnailers | FBX/GLTF, image, audio, video, document, DCC-specific |
| Context menu | Export to Unity/Unreal, validate, batch rename, add tag, copy path, run script |
| Automation | Auto-tag, Slack/Discord, sync to pipeline, approval gates, cleanup old versions |
| Integrations | ShotGrid/FTrack, Perforce/Git LFS, CI/CD, validators, naming enforcer |
| Utilities | Duplicate detection, storage report, bulk status, custom search |
| Advanced | Fallback thumbnail, encryption, multi-workspace copy, version diff, orchestrator |