Skip to content

Your first plugin

This walks a working server to a running plugin. It assumes the framework is already installed on the server; if it is not, do Server first.

You need the .NET 10 SDK on your machine to build the plugin. The server needs the .NET 10 runtime, which it already has if the framework starts.

From a directory outside the server:

Terminal window
dotnet new install Hosihikari.Plugin.Templates
dotnet new hosihikari-plugin -n HelloPlugin -o HelloPlugin

The result is a complete precompiled plugin project. Choose the F# template with dotnet new hosihikari-plugin-fsharp instead.

Terminal window
dotnet add ./HelloPlugin/HelloPlugin.csproj package Hosihikari.Plugin.Build --version 1.0.0
dotnet build ./HelloPlugin/HelloPlugin.csproj -t:PackPlugin

PackPlugin produces HelloPlugin/dist/HelloPlugin/ — the package directory, with the manifest already filled in. A multi-target project needs -f <tfm>.

Set Server to the server root once:

Terminal window
Server=/path/to/bedrock-server

Copy the directory into the server:

Terminal window
cp -r ./HelloPlugin/dist/HelloPlugin "$Server/plugins/HelloPlugin"

The directory name must equal name in the manifest. Restart the server.

The log should show the plugin loading and enabling. Then check what it wrote:

Terminal window
ls "$Server/data/hosihikari/HelloPlugin"

A data directory with the plugin's files means it ran.

The templates produce a precompiled assembly. To ship .cs or .fsx source that the server compiles at load, install the matching loader package and point the manifest at the source file. See C# plugins for the layout.