How does Jarock work?

The short technical explanation of the repository, bootstrap, generated runtime, and first launch.

This is a compact website edition. See the complete document for all details and translations.

Startup flow

StepWhat happens
1start-server.bat resolves its own root, so no fixed drive or folder is required.
2PowerShell checks path length, Windows long-path policy, repository templates, and Java 25+.
3If no loader is selected, the user chooses Fabric or NeoForge. Forge is rejected until verified.
4The selected loader installer and matching pinned manifest are downloaded and hash-checked.
5Fabric uses server/server.jar as its local launcher and vanilla-server.jar as the game; NeoForge uses official run.bat.
6The EULA template is created without silently accepting it. The user must decide.
7After a successful start and safe stop, Geyser configuration is adjusted for Floodgate authentication.

Tracked and generated files

Repository scripts, templates, manifests, docs, and version metadata are tracked. Worlds, logs, libraries, downloaded jars, private keys, local settings, and generated loader metadata remain local and ignored by Git.

Safety boundaries

After an error

Read the first ERROR: and Suggested fix:, inspect server/logs/latest.log or crash reports if Java started, then run the root launcher again. Do not delete a world before making a backup.