MCServerLauncher Future, codename mcsl-future, is a server management suite for Minecraft servers and general console applications. It provides a Windows WPF client, a .NET daemon, a daemon client library, protocol tests, source generators, and performance benchmarks. The product goal is to make creating, monitoring, controlling, and maintaining multiple server instances predictable for local and remote operators.
- Server owners who manage one or more Minecraft or console server instances.
- Operators who need a GUI for daemon-backed instance management.
- Contributors who extend daemon RPC, WPF workflows, installers, eventing, or protocol compatibility.
- Translators maintaining the six-language WPF resource set through Weblate.
- WPF desktop client for daemon connection, instance creation, console management, file management, settings, notifications, and i18n.
- .NET daemon for instance lifecycle, installer workflows, file transfer, Java scanning, event broadcast, RPC actions, and CLI commands.
- Daemon client library for WebSocket RPC, event subscriptions, file upload/download, and reconnection handling.
- Shared protocol/data contracts in
src/MCServerLauncher.Common. - Source generators for AOT-compatible daemon action registration and serialization support.
- Protocol tests and benchmarks for transport, serialization, and performance behavior.
- The web panel and Tauri launcher are separate repositories.
- The Rust daemon is experimental and external.
- Browser UI changes are not made in this repository.
- Protocol-breaking changes are not acceptable without explicit migration and tests.
src/MCServerLauncher.WPFis the Windows desktop client targetingnet10.0-windows10.0.18362.0.src/MCServerLauncher.Daemonis the background service targetingnet10.0, with trimming/AOT constraints.src/MCServerLauncher.DaemonClientis the .NET client library for daemon WebSocket communication.src/MCServerLauncher.Commonowns shared protocol types and cross-project contracts.generators/MCServerLauncher.Daemon.Generatorsowns Roslyn generation for daemon action registration and analyzer diagnostics.tests/MCServerLauncher.ProtocolTestsverifies protocol and integration behavior.benchmarks/MCServerLauncher.Benchmarkstracks performance-sensitive paths.
- Client-daemon communication uses the action/event protocol over WebSocket.
- Shared wire contracts live in
src/MCServerLauncher.Commonand must remain serializer-friendly. - Daemon serialization must remain compatible with trimming and AOT; prefer source-generated
System.Text.Json. - Instance type support is factory-driven through
IInstanceFactoryand[InstanceFactory]. - WPF user-facing strings must use
Lang.Tr[...]and resource keys instead of hard-coded UI text. - Daemon file paths must be resolved and validated through daemon-side path helpers when crossing trust boundaries.
- Instance lifecycle operations must preserve cancellation support where the surrounding API exposes it.
- Transport performance work must be measured or covered by protocol tests and benchmarks when behavior changes.
- Commit messages use
type(scope): subject.
- Use
daemon,WPF client,daemon client,instance,factory,installer,action,event,meta,payload,relay, andnotificationconsistently. - Use
Minecraft Java,Forge,Fabric,NeoForge,Quilt,Bedrock,Terraria, andOtherExecutablefor instance families. - Avoid replacing
daemonwith generic words like service, backend, or server when describing this product's architecture. - Avoid calling the WPF client the daemon.
- Docs-only: inspect Markdown, run
git diff --check, and run terminology searches when vocabulary changes. - WPF:
dotnet build src/MCServerLauncher.WPF/MCServerLauncher.WPF.csproj /m:1. - Daemon:
dotnet build src/MCServerLauncher.Daemon/MCServerLauncher.Daemon.csproj /m:1. - Daemon client:
dotnet build src/MCServerLauncher.DaemonClient/MCServerLauncher.DaemonClient.csproj /m:1. - Source generator:
dotnet build generators/MCServerLauncher.Daemon.Generators/MCServerLauncher.Daemon.Generators.csproj /m:1. - Protocol behavior:
dotnet test tests/MCServerLauncher.ProtocolTests/MCServerLauncher.ProtocolTests.csproj /m:1. - Performance:
dotnet run --project benchmarks/MCServerLauncher.Benchmarks/MCServerLauncher.Benchmarks.csproj -c Release. - Full solution:
dotnet build MCServerLauncher.sln /m:1.
- Stabilize daemon protocol contracts, byte-oriented transport paths, and source-generated serialization.
- Keep WPF instance creation and instance console workflows warning-clean and i18n-compliant.
- Improve installer robustness, local cache behavior, and user-facing validation.
- Preserve daemon publishability under trimming, single-file, and Native AOT constraints.
- Keep agent and contributor docs aligned with actual repo workflows.