Plugins are used to add more Components and ProtoFlux nodes to Resonite by programming them using C#. They are not to be confused with Mods which do not add things into the Data Model.
- This page is about writing plugins and should not be confused with the Plugin overview page.
Please see the plugin guidelines before getting started, to familiarize yourself on what is and is not allowed.
Getting started
You will need to know the basics of the C# Programming Language to write plugins.
- Download Visual Studio Community edition, which allows for easier programming and compilation of plugins. However, you can use your favourite code editor as long as you know how to compile C# into a
.dll
- During installation, ensure to select .NET desktop development which will give you the .NET Framework development tools, which are required to compile a plugin
- Create a new project using the
Class Library
template (please ensure it is the C# option). Guidelines follow:- The project name should be the name of your plugin, same with the solution name. It is recommended to not check the box for Place solution and project in the same directory, as you may have multiple parts to your plugin, such as a ProtoFlux Binding generator.
- Select the default framework, we'll be manually editing this later.
- Add references to the following libraries by right clicking on
Dependencies
, clickingAdd Project Reference
and thenBrowse
.- FrooxEngine.dll - Found in Resonite/Resonite_Data/Managed/FrooxEngine.dll
- Elements.Core.dll - Found in Resonite/Resonite_Data/Managed/Elements.Core.dll
- Change the referenced framework to
net48
. To do this:- Double click on your namespace, this will be under your solution
- Change the line
<TargetFramework>whatever_you_selected_earlier</TargetFramework>
to<TargetFramework>net462</TargetFramework>
and saving the file
- Change Your Assembly Info file to tell FrooxEngine what type of plugin you are making.
- You will need to add the following line into your Project properties file:
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
inside of aPropertyGroup
- Create a folder inside your project called
Properties
- Create a file called
AssemblyInfo.cs
which contains the line[assembly: DataModelAssembly(t)]
, wheret
is aDataModelAssemblyType
.
- You will need to add the following line into your Project properties file:
You're now ready to start writing plugins! Please see the following pages for in depth guides on how to code individual parts of plugins:
- Creating custom Components
- An introduction to creating custom ProtoFlux nodes
- Creating a ProtoFlux Binding
Please note: you are not limited to these guides, you may use any C# syntax.
Object Reference
Object | Description |
---|---|
Components | Used to create custom components |
ObjectFunctionNode | A ProtoFlux Node which returns a singular object |
ProtoFlux Binding | The binding for a ProtoFlux Node. Without this, a node cannot be loaded into Resonite. |
ValueFunctionNode | A ProtoFlux Node which returns a singular value |
VoidNode | A ProtoFlux Node which doesn't use return to give an output. Used for nodes with multiple outputs.
|