Docs · Installing it

In STYGION Keystone

Installing it

One file for both halves. Pick the right one of the four, drop it in mods, start the server.

Updated

Keystone is one file. The same jar goes in mods/ on a server and in mods/ on a player's client — there is no server edition, no client edition and no pair of version numbers to keep in step. What a server decides is not what the mod contains but what it requires of the people joining.

Everything Keystone does today is done by the server, so the server is where the file goes and nobody joining needs anything. The parts that have to draw something on somebody's screen — chat in full colour, the map, screens that look designed rather than like a chest — are the half that runs on a client, and when they arrive they are in this same file.

Which file

Every release carries four, and their names say which is which:

keystone-fabric-1.21.1-<version>+1.21.1-fabric.jar
keystone-neoforge-1.21.1-<version>+1.21.1-neoforge.jar
keystone-fabric-26.2-<version>+26.2-fabric.jar
keystone-neoforge-26.2-<version>+26.2-neoforge.jar

Take the one that matches your loader and your Minecraft version. The wrong one does not half-work — it refuses to load and says so in the console, which is the answer you want rather than a server that starts and behaves strangely.

Fabric also needs Fabric API. NeoForge needs nothing extra.

Putting it in

  1. Stop the server.
  2. Drop the file into mods/.
  3. Start the server again.

That is the whole of it. On the first start Keystone writes two things next to your world:

  • config/keystone/ — one settings file per part of the mod, each one commented. Every setting there can also be changed from the game, the console or the editor, so you never have to come back here unless you want to.
  • keystone/ — its database. Ranks, tickets, punishments, votes, everything a player holds. Back it up with your world; it is one file.

What leaves the machine, and when

No IP address is ever written down. An address exists only for as long as somebody is connecting, and what reaches the database instead is a place: a one-way token under a key your server made for itself and keeps in its own folder. The same machine still reads as the same machine — which is the only thing anything ever asks — and nobody, us included, can turn a place back into an address.

What can go out, and nothing else:

Where What When
Mojang A player's name, or their id Only on an offline-mode server, to put their real skin on them and to check that a bought name is not being worn by somebody else. A server that checks with Mojang already asks nothing.
Discord Chat, and a player's name in the avatar link Only once you give it a bot token.
MineSkin The picture somebody linked with /skin <link> — the image and nothing else, no name, no id Only when a player runs that command. A blank setting turns it off.
An assistant provider The question, with secrets stripped before it goes Only once you write an address and a key in. It can be any provider, or none.
stygion.eu Five minutes of tick timings once a day, your mod list, and what the machine is — no server name, no address, no player, and no id of any kind, not even a random one On by default. It is what the public figures are built out of, and there is nothing in it that could be traced back to your server.

Turning that last one off:

/keystone set bench.share-live false

Emptying bench.send-to stops everything this part of the mod could ever send, including a run you publish by hand.

Besides that there is no update check and no call home: a server in online mode with no bot token, no assistant key and bench.share-live off contacts nobody at all.

What Java it needs

Whatever the game needs, which is Java 21 for Minecraft 1.21.1 and Java 25 for 26.2. If your server already starts, you already have the right one.

Checking it worked

The console says so on startup:

[Keystone] Keystone is running. 11 modules, 1.21.1 on neoforge.
[Keystone] [api] local API on http://127.0.0.1:25586

If that first line does not appear, the file is for the wrong loader or the wrong Minecraft version — see When something is wrong.

Updating

Replace the file and restart. Settings and the database are kept, and anything new arrives with its default already in place, so an update never asks you to fill something in before the server will start.

One thing an update does not do: change a setting you already have. A default that improves in a new version only applies to servers that never touched it — yours keeps the value it has. If a release note says a default moved and you want the new one, set it yourself.

Removing it

Take the file out and restart. Your world is untouched — Keystone never writes to it. The config/keystone/ and keystone/ folders stay where they are, so putting it back later finds everything as it was; delete them if you want it gone properly.

Did this page help?

Opens the feedback panel with this page attached, and lands in the same queue as everything else.