Minestom
Generate your Massif world in a Minestom project.
The Massif library plugs into Minestom’s normal world generation. It’s built for Minestom 2026.10.05-26.2 and Java 25.
1. Add the dependency
During the beta, the library is in Smolder’s package registry. Your invite includes the
credentials; put them in the SMOLDER_MAVEN_USERNAME and SMOLDER_MAVEN_TOKEN environment
variables, then add to build.gradle.kts:
repositories {
maven("https://git.neo.smolder.fr/api/packages/Smolder/maven") {
credentials {
username = System.getenv("SMOLDER_MAVEN_USERNAME")
password = System.getenv("SMOLDER_MAVEN_TOKEN")
}
}
}
dependencies {
implementation("fr.smolder.massif:massif-upstream-minestom:0.1.0")
}
2. Load your world
Download your export from your account and ship it with your server, for example as
world.massif next to your JAR.
MassifWorld.install does it all in one call: it checks the export’s signature (refusing anything
Massif didn’t produce), registers its biomes and installs the generator. Call it while your server
starts, before any chunk loads or player connects:
import fr.smolder.massif.upstream.MassifWorld;
import net.minestom.server.MinecraftServer;
import net.minestom.server.coordinate.Pos;
import net.minestom.server.event.player.AsyncPlayerConfigurationEvent;
import java.nio.file.Path;
public class WorldServer {
public static void main(String[] args) throws Exception {
var server = MinecraftServer.init();
MassifWorld world = null;
try {
var instance = MinecraftServer.getInstanceManager().createInstanceContainer();
world = MassifWorld.install(Path.of("world.massif"), instance);
MinecraftServer.getGlobalEventHandler().addListener(AsyncPlayerConfigurationEvent.class, event -> {
event.setSpawningInstance(instance);
event.getPlayer().setRespawnPoint(new Pos(0, 64, 0));
});
server.start("0.0.0.0", 25565);
System.in.read(); // press Enter to stop
} finally {
MinecraftServer.stopCleanly();
if (world != null) world.close();
}
}
}
Run with Java 25 and --enable-native-access=ALL-UNNAMED. Set the spawn height to suit your
terrain. Keep the returned world until the server stops, then close it.
Good to know
- Massif generates the authored height range of your world; everything else is air.
- Generation runs on Massif’s own native workers, so it doesn’t block your tick thread.
- Generated entities and plugin content (like CraftEngine blocks) need extra setup; ask us if your world uses them.