Your first server
By the end of this page you will understand every choice Osmium asked you to make, and what each one wrote to disk.
Choose the server software#
Osmium installs three kinds of server software, and the kind decides whether the server takes mods or plugins. They are not interchangeable: a Fabric mod dropped into plugins/ is ignored, and a Paper plugin in mods/ is ignored just as quietly.
| Category | Server software | Takes |
|---|---|---|
| Vanilla | Vanilla | mods |
| Plugin-based | Paper, Purpur, Spigot, Bukkit | plugins |
| Mod loaders | Fabric, Forge, NeoForge, Quilt | mods |
Osmium shows a one-line description beside each as you pick:
| Server software | Description |
|---|---|
| Vanilla | The official, unmodified Minecraft server software. |
| Fabric | A lightweight, modular modding toolchain for modern versions. |
| Forge | The classic, heavy-duty modding platform for legacy and custom packs. |
| NeoForge | A cleaned-up, modern successor designed for next-generation modding. |
| Quilt | An open, community-driven ecosystem compatible with Fabric mods. |
| Paper | High-performance server built for plugins and public play. |
| Purpur | A Paper drop-in replacement designed for ultimate customizability. |
| Spigot | The classic, modified high-performance plugin server API. |
| Bukkit | The original and foundational plugin standard wrapper. |
Start the wizard with no flags and it asks one question at a time:
$ osmium createThe steps are, in order: Choose Location, Name the Server, Choose Server Engine, Select Version, Allocate Memory, Agreements & Options, and Review. Anything you give as a flag is taken as answered and its step is skipped — which is what makes a fully specified osmium create run without a single prompt.
Choose a Minecraft version#
The version list is fetched live from Mojang's version manifest, so it is whatever is actually released. Osmium falls back to a short built-in list when it cannot reach the network.
Three different versions sit next to each other in this documentation and in the interface, so it is worth naming them apart:
- the Minecraft version —
1.21.1, the game version the server targets; - the loader version or build — the Fabric loader version or the Paper build number, which Osmium handles for you;
- Osmium's own version — what
osmium --versionprints.
Allocate memory#
Memory is what the server is started with. 4G suits most small servers, and is the default until you change it in Settings or with --ram.
Accepted forms are gigabytes or megabytes — 6G, 10G, 3072M. Changing it later is osmium edit --ram 8G, and a running server keeps the old amount until it is restarted.
Accept the EULA#
A Minecraft server will not start until Mojang's EULA has been accepted. This is Mojang's requirement, not Osmium's; the server itself refuses to run otherwise.
The wizard's Agreements & Options step is where you accept it, and Osmium then writes eula.txt in the server folder. Passing --eula on the command line says you accept it and skips the step. The step is never skipped by anything else — an agreement cannot be accepted on somebody's behalf.
Add a mod or a plugin#
Which command you use follows from the server software. For a Fabric, Forge, NeoForge, Quilt or Vanilla server:
$ osmium mod add sodium -s survivalFor a Paper, Purpur, Spigot or Bukkit server:
$ osmium plugin add luckperms -s survivalBoth take Modrinth slugs. If you do not know the slug, search first — the search is narrowed to what fits this server's loader and Minecraft version:
$ osmium mod search world edit -s survivalTo hold something at one particular build, name it: osmium mod add sodium@0.5.8. That is a pin, and updates leave it alone until it is unpinned.
Inspect the manifest#
$ cat osmium.json{
"category": "Mod Loader",
"loader": "Fabric",
"version": "1.21.1",
"ram": "4G",
"mods": {
"sodium": "0.5.8",
"spectrum": "*"
},
"plugins": {}
}* means "whichever build is newest and compatible". A version number means that exact build and no other. There is nothing in between — Minecraft mods do not carry version numbers that a range could be written against, since an author may call a build 1.10.5-fabric, 0.102.0+1.21.1 or mc1.21.1-0.5.8.
Beside it, osmium.lock records what those requests resolved to, including everything pulled in as a dependency and which mod pulled it in. Both files are described in full in Configuration.
Start it, join it, stop it#
$ osmium start -s survival
$ osmium logs -s survival -fThe server binds to the port in server.properties, which is 25565 unless you change it. Osmium reads that file to know which port to talk about; it does not manage its contents beyond the gameplay settings exposed in the interface.
$ osmium details -s survivalWhile the server is running, details asks the server's own status port who is online, the way the game's server list does — nothing is typed into the console, so running it leaves no trace in the log.
$ osmium stop -s survival