A "Use this template" starter for building SharpMUSH extensions. It contains a working example of all three extension layers — pick the one(s) you need, edit in place, and delete the rest.
Prefer scaffolding a single piece into an existing project? Use the
dotnet newpack instead:dotnet new install SharpMUSH.Templates→dotnet new sharpmush-softcode|sharpmush-application|sharpmush-plugin.
| Folder | Kind | What it is | When to use it |
|---|---|---|---|
softcode/ |
kind: softcode |
A YAML package of objects + attributes + a global @function. |
Game policy — commands/functions in MUSHcode. No C#, no recompile. |
application/ |
kind: application |
A Dynamic Application (Area 21): softcode schema/submit routes + a portal page. | A web-portal form/view backed by softcode. |
csharp/ |
C# DLL (kind: managed) |
A compiled net10.0 plugin: [SharpPlugin] : PluginBase with a command + function. |
New engine primitives — anything softcode can't express. |
Each folder has its own README with the specifics.
- Click Use this template → create your repo.
- Keep the folder(s) for the layer(s) you want; delete the others.
- Replace the
example/ExamplePlugin/your-github-userplaceholders with your own names. - Build / install:
- softcode & application: install through the in-game package manager (
+package/ the/admin/packagesportal page) — see the per-folder READMEs. - csharp:
dotnet build csharp/ExamplePlugin.csproj -c Release(restores the publishedSharpMUSH.Library/SharpMUSH.Implementation.Generatedcontract packages from nuget.org), then distribute the managed package.
- softcode & application: install through the in-game package manager (
- Extensibility overview — which layer fits: https://github.com/SharpMUSH/SharpMUSH/blob/main/docs/design/extensibility-overview.md
- Plugin model & load semantics: https://github.com/SharpMUSH/SharpMUSH/blob/main/docs/design/plugin-system.md
- Writing a plugin (worked guide): https://github.com/SharpMUSH/SharpMUSH/blob/main/docs/guides/writing-a-plugin.md
- Dynamic Applications authoring: https://github.com/SharpMUSH/SharpMUSH/blob/main/docs/guides/dynamic-applications-authoring.md
package.yamlmanifest reference: https://github.com/SharpMUSH/SharpMUSH/blob/main/examples/packages/README.md
The SharpMUSH.PackageTool validator checks the softcode/application manifests; the CI in
.github/workflows/validate.yml builds the C# plugin and
parses the package manifests on every push.