Kits
A starter kit on the first join and /kit with a wait between two — daily for everybody, bigger ones for ranks. New in 0.2.4, off by default.
This page is older than Keystone 0.2.8, released 18 October 2026. Something may have changed since.
On this page 4 parts
The kits module, kits.toml. Off until you turn it on (enabled = true in kits.toml, or the Settings screen; a restart applies it) — free items change how a server plays.
What players do
#/kitlists the kits they may take and when each is ready again;/kit <name>takes one. Tab offers only theirs.- A kit marked
first-joinarrives by itself on somebody's very first join. - The wait is kept per account in the database: leaving and joining, a reload or a restart gives nobody a second kit. It is written down before the items are handed over, so a kit that fails halfway is one kit too few, never one too many.
- A kit that is not theirs reads exactly like one that does not exist.
Writing kits
#Three lists:
kits = ["starter once first-join", "daily 24h", "vip 24h groups=vip", "legend 24h groups=legend"]
items = [
"starter minecraft:stone_sword",
"starter minecraft:bread 16",
"daily minecraft:bread 8",
"vip minecraft:diamond_sword[enchantments={levels:{'minecraft:sharpness':3}}] 1",
]
commands = ["legend crate give {player} 1"]
kits— the name, how often (24h,7d, oronce), then optionallyfirst-joinandgroups=a,b: who may take it besides holdingkeystone.kit.<name>. Inherited groups count, so a rank that inheritsvipgets the VIP kit too.items— the kit, then the item as/givetakes it: its id, components in brackets (enchantments, a name, anything a mod adds), how many. The game itself checks the line; one it refuses is said in the server log and the rest still arrive. A full inventory drops the rest at their feet, as/givedoes.commands— the kit, then a command the console runs, with{player}and{uuid}. For money, a rank for a week, a crate key.{player}is the account's id whenever the name is not a plain one, so a name can never smuggle in a selector such as@a.
Permissions
#keystone.kit— the command (thedefaultgroup has it from the first start).keystone.kit.<name>— one kit, unless itsgroups=already lets them.keystone.kit.give—/keystone kits give <player> <kit>: hand a kit over now, whatever its wait, without starting one.
In the editor and over the API
#The Kits screen shows every kit, how often, for whom and what it holds, with links to the three settings. GET /v1/kits (server.read) answers the same.
Did this page help?
Opens the feedback panel with this page attached. It lands in the same queue as everything else.