What Can Plugins Do?
Plugins extend Frosty’s functionality by:- Custom Asset Editors - Create specialized editors for game asset types
- Asset Definitions - Define how assets are displayed, imported, and exported
- Context Menu Actions - Add right-click actions in the Data Explorer
- Menu Extensions - Add custom menu items to the editor
- Custom Handlers - Handle special processing for specific asset types
- Execution Actions - Run code before/after mod execution
- Type Editors - Provide custom UI for editing specific data types
Plugin Architecture
Plugins are .NET assemblies (DLL files) placed in thePlugins/ directory. The PluginManager discovers and loads plugins at startup.
Plugin Lifecycle
Loading
Assemblies are loaded and their attributes are read to determine what extensions they provide.
Startup Phase
Startup-level extensions are registered (profiles, type overrides, global type editors).
Load Types
Plugins have two load phases controlled by thePluginLoadType enum:
Startup - Loaded before any game profile:
- Profiles
- Type overrides
- Global type editors
- Startup actions
- Asset definitions
- Custom handlers
- Menu extensions
- Tab extensions
- Context menu extensions
- Execution actions
Plugin Manager Types
Plugins can target different parts of Frosty:PluginManagerType parameter to control where the extension loads.
Core Classes
From~/workspace/source/FrostyPlugin/Plugin.cs:8:
Example Plugin Structure
A typical plugin project structure:Getting Started
Create a Plugin
Step-by-step guide to building your first plugin
Asset Editors
Learn to create custom asset editors
Custom Actions
Add context menu items and commands
Attributes Reference
Complete plugin attribute reference
Plugin Discovery
From~/workspace/source/FrostyPlugin/PluginManager.cs:139:
.dll files in the Plugins/ directory and its subdirectories.
Profile Validation
Plugins can specify which game profiles they support using attributes:Next Steps
Creating Your First Plugin
Follow the step-by-step guide to create a functional plugin with a custom asset editor