Mosswart Massacre for OpenAC (owner-only)
Find a file
Erik 0b5da797e0 Quests: /myquests parsing and the 30-second quest stream
The backend's quest panel shows the stipend, blank aug gem and insatiable
jaw timers from the `quest` frame, so the port reads /myquests the way the
original did (a three-second window of chat lines matched by its regex)
and streams the three priority stamps every 30 s with the same five-field
frame and the same countdown strings. The name table is copied as it was,
so the duplicate insatiableeaterjaw entry still resolves to the later name.
Timers run on the tick scheduler instead of thread-pool timers.

The session tests clear the login-time /myquests before counting the
commands the backend ran.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-25 12:14:25 +02:00
src/OpenAC.MosswartMassacre Quests: /myquests parsing and the 30-second quest stream 2026-09-25 12:14:25 +02:00
tests/OpenAC.MosswartMassacre.Tests Quests: /myquests parsing and the 30-second quest stream 2026-09-25 12:14:25 +02:00
.gitignore Skeleton: plugin root, backend socket, /mm router, settings, test harness 2026-09-25 12:03:00 +02:00
Directory.Build.props Skeleton: plugin root, backend socket, /mm router, settings, test harness 2026-09-25 12:03:00 +02:00
Directory.Packages.props Skeleton: plugin root, backend socket, /mm router, settings, test harness 2026-09-25 12:03:00 +02:00
global.json Skeleton: plugin root, backend socket, /mm router, settings, test harness 2026-09-25 12:03:00 +02:00
NuGet.Config Skeleton: plugin root, backend socket, /mm router, settings, test harness 2026-09-25 12:03:00 +02:00
OpenAC.MosswartMassacre.slnx Skeleton: plugin root, backend socket, /mm router, settings, test harness 2026-09-25 12:03:00 +02:00
README.md Skeleton: plugin root, backend socket, /mm router, settings, test harness 2026-09-25 12:03:00 +02:00

Mosswart Massacre for OpenAC

A private OpenAC port of the Mosswart Massacre DECAL plugin: it streams telemetry, vitals, chat, inventory, combat and character stats to the Mosswart Overlord backend, shares vitals and debuffs across machines, runs the commands typed into the Overlord chat box, keeps the flag tracker and syncs metas.

The backend contract is fixed. Every frame this plugin sends or accepts is byte-for-byte what the DECAL plugin sent and accepted; the golden tests under tests/ pin each one. Change a frame only together with the backend.

Building

The plugin contract comes from the OpenAC release of the version named in Directory.Build.props (PluginApiPackageVersion). Put that release's AcDream.Plugin.Abstractions.<version>.nupkg in packages-local/:

gh release download v0.1.18 -R eriknihlen/OpenAC -p "AcDream.Plugin.Abstractions.0.1.18.nupkg" -D packages-local
dotnet build OpenAC.MosswartMassacre.slnx
dotnet test OpenAC.MosswartMassacre.slnx

Installing

Copy src/OpenAC.MosswartMassacre/bin/<config>/net10.0/ (the dll, its .deps.json, Newtonsoft.Json.dll, plugin.json and the markup) into %LOCALAPPDATA%\acdream\plugins\openac.mosswartmassacre\.

First run

Streaming is off until you turn it on. The shared secret is never compiled in:

/mm ws secret <the backend's shared secret>
/mm ws enable

/mm help lists every command.