On this page

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:

bash
$ osmium create

The 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 --version prints.

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:

bash
$ osmium mod add sodium -s survival

For a Paper, Purpur, Spigot or Bukkit server:

bash
$ osmium plugin add luckperms -s survival

Both 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:

bash
$ osmium mod search world edit -s survival

To 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#

bash
$ cat osmium.json
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#

bash
$ osmium start -s survival
$ osmium logs -s survival -f

The 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.

bash
$ osmium details -s survival

While 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.

bash
$ osmium stop -s survival

Next#

Updating — three different things people mean by "update", kept apart.