promotional bannermobile promotional banner

STYGION Keystone

STYGION Keystone — one mod where a server usually runs dozens.
Back to Files

v0.1.1 · fabric 1.21.1

File namekeystone-fabric-1.21.1-0.1.1+1.21.1-fabric.jar
Uploader
VOIDVIDEVOIDVIDE
Uploaded
Sep 7, 2026
Downloads
7
Size
12.5 MB
Mod Loaders
Fabric
File ID
8830150
Type
B
Beta
Supported game versions
  • 1.21.1

Curse Maven Snippet

Fabric

modImplementation "curse.maven:stygion-keystone-1665379:8830150"

Learn more about Curse Maven

What's new

What the first evening on a real server found, plus the first step nobody could take. Most of it is the same shape: the mod behaved one way when it was driven from the editor and another way when it was driven from the console, which is the half of a feature nobody exercises until they run a server with it.

There is an admin group from the first start, and it is empty. Keystone does not read Minecraft's operator level on purpose, so installing the mod and being allowed to use it were two different events — and the way across was six words deep, at a console, out of a documentation page: make a group, give it everything, put yourself in it. Now the group is already there with keystone.* in it and nobody in it, so the whole of getting started is one line: keystone permission group admin add <your name>. Until somebody is in it the console says so at every start; after that it stops. A server that made an admin group by hand keeps its own weight, prefix and rules — this never overwrites one that exists.

The line about what we measure names a command that exists. On a server sharing its figures, the start-up note offered /keystone settings share-live false to turn it off. There is no settings command — it is set, and a setting is written with the module in front of it — so anybody who followed the mod's own instruction got told the command was wrong. It now says /keystone set bench.share-live false, which is what it always should have.

The setting that announces a promotion can finally be set. progress.announce was declared under the name announce() — the same rename that put brackets into two sentences of English also put them into a setting's name — while the code that reads it asked for announce. So the editor and /keystone set offered progress.announce(), changing it did nothing, and the module went on announcing whatever you did. Two other places had the same brackets in prose people read: the description of accounts.ask-on-discord and of accounts.least-length.

One jar, both sides — the Fabric build no longer refuses to load on a client. fabric.mod.json declared "environment": "server", so the file that is meant to go in mods/ on a server and on a player's client would not load on the second one at all. Nothing runs there yet — the half that draws on a player's screen is still being written — but the jar is now what it says it is, which is what NeoForge's side = BOTH has said all along. The server-side mixins stay server-side, so a client with the file in it does nothing new.

Somebody signing in on a website can be matched to their player. Keystone now answers GET /v1/discord/links?discord=<id> for a key with players.read: which Minecraft accounts one Discord user has linked here. On a server that is not in online mode this is the only proof of identity there is — asking Mojang says who owns a name, not who is typing it — so a shop that knows the Discord account somebody signed in with can put what they bought on the right player instead of believing a name in a form.

A rank set from the console no longer glues itself to the name. A command line cannot end in a space — whatever you type is trimmed before the mod ever sees it — so a prefix set with /keystone permission group vip prefix &b[VIP] came out as &b[VIP] and read as [VIP]Steve in chat and the tab list. The same prefix set in the editor kept its space and looked right. The separator is now put back for you, and a prefix that already ends in one, or in a colour code with a space in front of it, is left exactly as you wrote it — so nothing you have set changes.

The timetable stops repeating itself in the log. The entity cleaner is due every minute and skips every minute on a quiet server, and each skip was a line at INFO: about fourteen hundred identical lines a day between you and anything worth reading. The reason is written the first time and every time it changes, and again the first time after the operation actually runs. The record the timetable keeps is untouched, so /keystone can still tell you every skip.

/keystone panel hands out a link that opens. The address in the link — and the server address in openapi.json — was built from the address the API listens on. Set that to 0.0.0.0 so you can reach the editor from your own machine, which is the only reason anybody sets it, and the link came back as http://0.0.0.0:28614/, which opens nowhere. There is now api.reachable-at: leave it empty and the mod uses the address it is listening on, or — when that is 0.0.0.0 — this machine's own address on the network. Set it when the way in is neither, such as behind a router, through a tunnel, or under a name you gave the machine. The link is composed when you ask for it rather than when the server booted, so changing that setting works immediately — which matters, because it is the setting you reach for after a link did not open.

This mod has no additional files