Prerequisites
- Visual Studio 2019 or later
- .NET Framework 4.7.2 SDK
- Frosty Toolsuite source code or compiled assemblies
Project Setup
Create a Class Library Project
Create a new .NET Framework Class Library project targeting .NET Framework 4.7.2:
Add References
Reference the required Frosty assemblies:
FrostyPlugin.dll- Core plugin functionalityFrostySdk.dll- SDK types and managersFrostyCore.dll- Editor controls and base classes
PresentationCorePresentationFrameworkWindowsBaseSystem.Xaml
Plugin Metadata
Define your plugin’s metadata inProperties/AssemblyInfo.cs using assembly-level attributes.
Basic Metadata
~/workspace/source/FrostyPlugin/Plugin.cs:14-91):
Profile Targeting
Optionally restrict your plugin to specific games:Creating an Asset Definition
Asset definitions control how assets are displayed and edited. Here’s a real example from~/workspace/source/Plugins/TexturePlugin/TextureAssetDefinition.cs:
Registering the Asset Definition
Register your asset definition inAssemblyInfo.cs:
~/workspace/source/FrostyPlugin/PluginManager.cs:452-483).
Creating a Custom Editor
Custom editors inherit fromFrostyAssetEditor. See the Asset Editors guide for details.
Example: Complete Plugin
Here’s the complete MeshSetPlugin registration from~/workspace/source/Plugins/MeshSetPlugin/Properties/AssemblyInfo.cs:
Building and Testing
Debugging
Plugin Not Loading
Plugin Not Loading
Check that:
- DLL is in the correct
Plugins/subdirectory - Target framework is .NET Framework 4.7.2
- All required assemblies are referenced
- Assembly attributes are correctly applied
Asset Definition Not Appearing
Asset Definition Not Appearing
Verify:
RegisterAssetDefinitionattribute has correct asset type name- Asset type exists in the game’s type library
- Plugin is valid for the current game profile
Attach Debugger
Attach Debugger
For debugging:
- Set plugin project as startup project
- Set FrostyEditor.exe as the external program
- Place breakpoints in your code
- Press F5 to debug
Common Patterns
Multiple Asset Types
Register multiple definitions for related asset types:Shared Base Class
Create a base definition for common functionality:Next Steps
Asset Editors
Create custom asset editor UI
Custom Actions
Add context menu actions