← SableCraft Standards

Config

config/standards-common.toml for settings, config/standards/messages.yml for every player-facing string. Permissions come from NeoForge's own PermissionAPI, so LuckPerms works out of the box and so does having no permissions mod at all.

Permission defaults

Works with LuckPerms, our own handler, or nothing at all.

Nodes are all standards.<node>. With nothing installed, everyone gets the everyone-nodes and operators get the op-gated ones - verified both ways, and a LuckPerms grant applies live without a restart.

Want to grant these without installing anything? Standards ships its own optional permission handler - groups, inheritance, wildcards, a checker that says which rule answered. See Permissions.

Default Nodes
Everyone top, back, home, sethome, delhome, spawn, gc, kit, mail, afk, msg, tpa, tpahere, tptoggle, warp, balance, baltop, pay, group
Operators fly, god, vanish, smite, jump, bottom, heal, feed, rest, speed, setspawn, setkit, setwarp, tpoffline, socialspy, tempban, mute, invsee, eco, admin - plus every .others variant, msg.override, tpa.override, afk.exempt, home.limit.unlimited, teleport.instant, teleport.nocooldown
Nobody, including operators craft, anvil, grindstone, enderchest, trashcan, back.ondeath

That last row is deliberate. A workbench you can open anywhere is an ability to be granted, not a utility to assume - a builder rank gets standards.craft, a blacksmith class gets standards.anvil from a skill, and nobody gets them by being an operator. back.ondeath is the same shape: returning to your corpse is a choice a server makes, not a default.

Home limits are numbered nodes, EssentialsX-style: standards.home.limit.3 gives three, standards.home.limit.10 gives ten, the highest granted number wins, and standards.home.limit.unlimited beats them all. Without one, homes.defaultLimit from the config applies.

One thing to know first

Five commands default to nobody, on a server with no permissions mod.

With no permissions mod, NeoForge answers every question with the node's own default. That is fine for almost all of the mod, but /craft, /anvil, /grindstone, /enderchest and /trashcan default to nobody on purpose, because they are capabilities a mod hands out temporarily rather than things every player has. If that is your server and you have no way to grant anything, say who they're for:

stationAccess = "ops"        # or "everyone", or the default "nobody"
backOnDeathAccess = "nobody" # /back returning you to where you died

A permissions mod overrides both in either direction; these only decide the answer where nothing else can.

standards-common.toml

Worth knowing about.

Setting Does
teleport.warmupSeconds Stand still before a teleport fires. cancelOnDamage is the half that stops combat-logging.
teleport.safeSearchRange How far to look for a safe landing. 0 arrives exactly where asked.
teleport.backHistory How long the /back trail is (default 5).
homes.defaultLimit Homes without a permission node. -1 is unlimited.
economy.currencyName* / currencySymbol 25 coins, or $25.
economy.preferOwnLedger Insist on Standards' own ledger even if another economy mod is installed.

Switches under [commands] decide what exists at all. A command that is off is not registered, so it does not appear in tab-complete either. Those need a restart; everything else applies live.

Every string is yours

Re-skin the vocabulary, or translate it entirely.

Every player-facing string lives in config/standards/messages.yml, written in full on first run. Not vanilla translation keys - a stock client does not carry our lang file and would see raw keys - so this is resolved server-side and works everywhere.

term.balance: "credits"
term.warp: "jump point"
msg.home.went: "&bBeaming down to &f{name}&b..."

term.* keys re-skin vocabulary wholesale: set term.balance to credits and every message that mentions money follows, without editing a hundred lines. & colour codes work throughout, including &#RRGGBB hex.

Upgrades keep your edits. New keys are appended under a heading, so "what is new in this version" is answerable by scrolling to the bottom - and a message you have not edited is quietly updated to the current wording while anything you have touched is left exactly alone. /standards reload re-reads it.

The economy

A ledger that steps aside.

Standards ships a ledger because NeoForge has no Vault and no clear leader among the economy mods that exist. It does not assume it is the only one: the ledger sits behind EconomyProvider, registered at a negative priority, and steps aside the moment a dedicated economy mod registers one of its own.

if (Economy.isAvailable()) {
    Economy.deposit(player.getUUID(), 25.0D, "mymod:reward");
}

/standards economy says which ledger is actually holding the money - the first question whenever one misbehaves. Full API in ECONOMY-API.md on GitHub.