grounds-minestom-runtime is the process-level runtime for Minestom-based Grounds servers. It lets
you compose a lobby or minigame from normal Gradle dependencies, select explicit runtime modules,
and push the resulting distribution through Grounds.
Minestom does not have a Paper-style plugin folder. A Minestom server is a JVM application that
embeds Minestom and every module it needs. Grounds follows that model: build the server at compile
time, publish one immutable distribution, then let Forge build and deploy the image.
The runtime is not a hot plugin system. It discovers providers from the application classpath and
starts only the providers your server selects.
What the runtime provides
- module lifecycle hooks with
install,start, andstop; GroundsServerContextwith server type, runtime environment, shutdown hooks, and typed services;- provider discovery through Java
ServiceLoader; - explicit provider selection through
useProvider("module.id"); - module descriptor validation, service dependency ordering, and server type filtering;
- Minestom bootstrap and clean shutdown orchestration.
When to use it
Use the runtime for Minestom servers that need reusable Grounds integrations such as Agones, config, permissions, matchmaking, or shared services. Do not use it when you only need a small standalone Minestom experiment with no reusable modules. Plain Minestom code still works; the runtime exists to make composed Grounds servers reproducible.Typical shape
server/build.gradle.kts
grounds.yaml
Start here
Runtime modules
Define
GroundsModule and GroundsModuleProvider implementations with descriptors and typed
service contracts.Runtime composition
Discover providers, select module IDs, and understand validation and startup behavior.
Local modules
Replace release module dependencies with local repositories during
grounds push.Manifest reference
See the
grounds.yaml fields used for Minestom distribution pushes.