Plugins: Difference between revisions

From Resonite Wiki
m cleanup useless comments
make page translatable
Line 1: Line 1:
<span style="font-size:2em;">If you use plugins you will not be able to join other players, unless they have the same plugins as you.</span>
<languages/>


Programming within / while playing Resonite right now requires [[ProtoFlux]], but that isn't the only option. Resonite has a Plugin system which you can use.
<span style="font-size:2em;"><translate>If you use plugins you will not be able to join other players, unless they have the same plugins as you.</translate></span>


A plugin is a compiled Assembly / DLL written in C# that can be loaded into Resonite at runtime.
<translate>Programming within / while playing Resonite right now requires [[ProtoFlux]], but that isn't the only option. Resonite has a Plugin system which you can use.</translate>


== Plugin Guidelines ==
<translate>A plugin is a compiled Assembly / DLL written in C# that can be loaded into Resonite at runtime.</translate>
When creating a Plugin please keep the following in mind:
* Plugins must not enable players, including yourself to bypass [[Guidelines]].  
** This includes: Asset Theft, Harassment etc.
* Plugins should follow the general principle of "Do No Harm"


== Plugin Limitations ==
== <translate>Plugin Guidelines</translate> ==
Plugins are limited in several ways right now:
<translate>When creating a Plugin please keep the following in mind:</translate>
# '''If you use plugins you will not be able to join other players, unless they have the same plugins.'''
* <translate>Plugins must not enable players, including yourself to bypass [[Guidelines]].</translate>
# There is no built-in distribution system. You are in charge of distribution
** <translate>This includes: Asset Theft, Harassment etc.</translate>
# Plugins may break in between builds of Resonite and therefore require frequent updates.
* <translate>Plugins should follow the general principle of "Do No Harm"</translate>


== Writing a Plugin ==
== <translate>Plugin Limitations</translate> ==
To get started writing a plugin follow these steps:
<translate>Plugins are limited in several ways right now:</translate>
# Download [https://visualstudio.microsoft.com/vs/community/ Visual Studio Community edition].
# <translate>'''If you use plugins you will not be able to join other players, unless they have the same plugins.'''</translate>
## During installation, check of the .NET desktop development workload which will give you the >NET Framework 4-4.6 development tools
# <translate>There is no built-in distribution system. You are in charge of distribution</translate>
# Create a new Library project
# <translate>Plugins may break in between builds of Resonite and therefore require frequent updates.</translate>
# Add references to some Resonite libraries from the installation folder:
## FrooxEngine.dll - Found in Resonite/Resonite_Data/Managed/FrooxEngine.dll
## Elements.Core.dll - Found in Resonite/Resonite_Data/Managed/Elements.Core.dll
# Start writing!


Double check the links/resources section below for additional resources.
== <translate>Writing a Plugin</translate> ==
<translate>To get started writing a plugin follow these steps:</translate>
# <translate>Download [https://visualstudio.microsoft.com/vs/community/ Visual Studio Community edition].</translate>
## <translate>During installation, check of the .NET desktop development workload which will give you the >NET Framework 4-4.6 development tools</translate>
# <translate>Create a new Library project</translate>
# <translate>Add references to some Resonite libraries from the installation folder:</translate>
## <translate>FrooxEngine.dll - Found in Resonite/Resonite_Data/Managed/FrooxEngine.dll</translate>
## <translate>Elements.Core.dll - Found in Resonite/Resonite_Data/Managed/Elements.Core.dll</translate>
# <translate>Start writing!</translate>


== Using / Testing a Plugin ==
<translate>Double check the links/resources section below for additional resources.</translate>
When running Resonite with a plugin you must use [[Command Line Arguments]].


The Command Line Argument <code>-LoadAssembly <path></code> will load additional Assemblies / DLLs when used to launch Resonite.
== <translate>Using / Testing a Plugin</translate> ==
<translate>When running Resonite with a plugin you must use [[Command Line Arguments]].</translate>


== Plugin Recommendations == <!--T:12-->
<translate>The Command Line Argument <code>-LoadAssembly <path></code> will load additional Assemblies / DLLs when used to launch Resonite.</translate>
Firstly, double check, if you '''need'' a plugin. Most common scenarios can be done within Resonite using [[ProtoFlux]] or Components. These items might seem scary for newer users but their possibilities are quite endless. Common things that might need plugins include:
* Integration of Third Party Hardware or Devices - You can potentially use WebSockets or HTTP for this, but if not a plugin may be needed
* Research / Science Applications - If your scenario requires some advanced integration with a science/educational background one may be needed
* Automation - If you need to automate a process within Resonite such as batch processing of assets or data


== Resources / Links ==
== <translate>Plugin Recommendations</translate> == <!--T:12-->
=== Open Source Plugins ===
<translate>Firstly, double check, if you '''need'' a plugin. Most common scenarios can be done within Resonite using [[ProtoFlux]] or Components. These items might seem scary for newer users but their possibilities are quite endless. Common things that might need plugins include:</translate>
Feel free to add any open source Resonite plugins here!
* <translate>Integration of Third Party Hardware or Devices - You can potentially use WebSockets or HTTP for this, but if not a plugin may be needed</translate>
* <translate>Research / Science Applications - If your scenario requires some advanced integration with a science/educational background one may be needed</translate>
* <translate>Automation - If you need to automate a process within Resonite such as batch processing of assets or data</translate>
 
== <translate>Resources / Links</translate> ==
=== <translate>Open Source Plugins</translate> ===
<translate>Feel free to add any open source Resonite plugins here!</translate>


* [https://github.com/Xlinka/Project-Obsidian Project Obsidian]
* [https://github.com/Xlinka/Project-Obsidian Project Obsidian]
* [https://github.com/resonite-modding-group/ResoniteModLoader ResoniteModLoader]
* [https://github.com/resonite-modding-group/ResoniteModLoader ResoniteModLoader]

Revision as of 11:08, 25 January 2024

If you use plugins you will not be able to join other players, unless they have the same plugins as you.

Programming within / while playing Resonite right now requires ProtoFlux, but that isn't the only option. Resonite has a Plugin system which you can use.

A plugin is a compiled Assembly / DLL written in C# that can be loaded into Resonite at runtime.

Plugin Guidelines

When creating a Plugin please keep the following in mind:

  • Plugins must not enable players, including yourself to bypass Guidelines.
    • This includes: Asset Theft, Harassment etc.
  • Plugins should follow the general principle of "Do No Harm"

Plugin Limitations

Plugins are limited in several ways right now:

  1. If you use plugins you will not be able to join other players, unless they have the same plugins.
  2. There is no built-in distribution system. You are in charge of distribution
  3. Plugins may break in between builds of Resonite and therefore require frequent updates.

Writing a Plugin

To get started writing a plugin follow these steps:

  1. Download Visual Studio Community edition.
    1. During installation, check of the .NET desktop development workload which will give you the >NET Framework 4-4.6 development tools
  2. Create a new Library project
  3. Add references to some Resonite libraries from the installation folder:
    1. FrooxEngine.dll - Found in Resonite/Resonite_Data/Managed/FrooxEngine.dll
    2. Elements.Core.dll - Found in Resonite/Resonite_Data/Managed/Elements.Core.dll
  4. Start writing!

Double check the links/resources section below for additional resources.

Using / Testing a Plugin

When running Resonite with a plugin you must use Command Line Arguments.

The Command Line Argument -LoadAssembly <path> will load additional Assemblies / DLLs when used to launch Resonite.

Plugin Recommendations

Firstly, double check, if you 'need a plugin. Most common scenarios can be done within Resonite using ProtoFlux or Components. These items might seem scary for newer users but their possibilities are quite endless. Common things that might need plugins include:

  • Integration of Third Party Hardware or Devices - You can potentially use WebSockets or HTTP for this, but if not a plugin may be needed
  • Research / Science Applications - If your scenario requires some advanced integration with a science/educational background one may be needed
  • Automation - If you need to automate a process within Resonite such as batch processing of assets or data

Resources / Links

Open Source Plugins

Feel free to add any open source Resonite plugins here!