Put them in a folder called
modules/ next to the SkyNET binary. When SkyNET updates, that folder is left alone, so your modules stay installed.
To build modules you need .NET 9. The host expects apiVersion 1.
Module SDK kit
SDK NuGet package, Fluxify deps, and a small StarterModule (
!hello) to copy and rename.Installing a module
- Get a built module folder (or build the starter from the kit above).
- Copy it into
modules/like this:
Do not copy
SkyNET.ModuleSDK.dll here — the bot already has the SDK.
- Restart SkyNET.
- Check the log. You should see something like:
- Try the command. With the default prefix that would be
!hello, and!help hellofor help.
To remove one, delete its folder and restart. If a module fails to load, SkyNET logs it and keeps running. Command names that already exist (built-in or another module) are skipped.
module.json
Every module folder needs amodule.json:
Making a module
- Download the Module SDK kit and unzip it.
- Open
StarterModule(or copy that folder and rename it). - Keep the kit’s
nuget/folder andnuget.confignext to the project so restore can findSkyNET.ModuleSDK. - Implement / edit
ISkyModule. If the assembly has more than one possible type, mark the real one with[SkyModule]. - In
Load, register your commands. Set aDescriptionso they show up under Modules in!help/!cmds.
module.json and StarterModule.dll from bin/Release/net9.0/ into <bot>/modules/MyModule/.
What the SDK gives you
ModuleCommandOptions can set Aliases, GuildOnly (defaults to true), Description, Usage, Examples, and Notes.Write usage and examples without the prefix.
Module commands are open to everyone. There is no Dashboard or
!perms gate on them yet.There is no hot-reload — always restart after you change something.