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