Skip to content

Command Reference

camohax edited this page Sep 21, 2026 · 5 revisions

Command Reference

All commands live under /sign and require operator permission (or the omnisign.edit permission node — see Permissions) to configure. Every subcommand that edits a sign requires you to be looking directly at it within reach, unless noted otherwise.

/sign command ... — hidden commands

Command Description
/sign command add console <command> Adds a command that runs with full console (permission level 4) permissions.
/sign command add player <command> Adds a command that runs with the clicking player's own permission level.
/sign command remove <index> Removes one command by its index.
/sign command clear Removes all hidden commands from the sign.
/sign command list Lists every command sign in the world (not just the one you're looking at), with commands nested underneath each.
/sign command copy Copies the targeted sign's hidden commands to your personal clipboard.
/sign command paste Pastes your clipboard onto the targeted sign.
/sign command test Dry-run: runs the sign's commands immediately, as you, bypassing cooldown.
/sign command redstone on|off Toggles whether the sign's hidden commands also fire automatically when it receives a redstone signal, with no click needed. Always runs with console permission (there's no player to run as).
/sign command proximity <radius 1-16> Enables the sign firing automatically for any player who walks within radius blocks. Fires once per approach, respects console/player mode and permissions normally since a real player triggered it.
/sign command proximity off Disables the proximity trigger.
/sign command schedule <ticks 20-72000> Enables the sign firing on its own timer, every ticks ticks (20 ticks = 1 second), with no player or redstone involved.
/sign command schedule off Disables the scheduled trigger.
/sign command chain <id> Adds a chain entry pointing at the sign with that ID — when this sign triggers, that sign's hidden commands run too (and its own chains, cascading up to 8 hops deep). Cycle-safe.
/sign command id Shows (assigning one first if needed) this sign's permanent chain ID, for use with chain above.
/sign command delay <ticks 1-72000> Adds a pause to the command list: everything after it runs once the wait is over (20 ticks = 1 second). If the triggering player logs off during the wait, the rest is skipped.
/sign command order sequential|random|cycle sequential (default) runs every command in order; random runs one random command per trigger; cycle runs the next command per trigger, wrapping around. Delays only apply to sequential.
/sign command cooldown <seconds 0-2592000> Each player must wait this long between uses of the sign. 0 disables.
/sign command limit player <uses> Each player can use the sign at most this many times. 0 disables.
/sign command limit total <uses> The sign can be used this many times by everyone combined, then it's "used up". 0 disables. Also applies to redstone and scheduled triggers.
/sign command limit reset Clears the sign's use counters and cooldown timers.

Cooldowns and limits apply to hidden-command signs, on right-click and proximity triggers (per-player rules) and on redstone/scheduled triggers (total limit only). A refused click tells the player why; /sign command test ignores limits. Counters are cleared automatically when the sign is broken.

Example - a kit sign usable once per player per day:

/sign command add console give {player} bread 16
/sign command cooldown 86400

Example - a countdown that then teleports the clicker:

/sign command add console title {player} title "Teleporting..."
/sign command delay 60
/sign command add console tp {player} 0 100 0

Placeholders available in any command: {player}, {uuid}, {x}, {y}, {z}. A redstone-fired or scheduled sign has no player, so {player} resolves to redstone and {uuid} to all zeroes; a proximity-fired sign uses the real approaching player, and a chained sign inherits whatever player context (or lack of one) started the chain.

Chaining without typing anything: run /sign wand to get a chain wand (a plain stick with a distinctive name — not a custom item, so this stays purely server-side). Right-click a hidden-command sign to select it, then right-click a second sign to link them; right-clicking the first sign again cancels the selection. This does the same thing as /sign command id + /sign command chain <id> in one motion.

/sign animate ... — animated text

Command Description
/sign animate addframe <line1>|<line2>|<line3>|<line4> Adds one frame. 1–4 lines separated by |; missing lines are left blank. Supports &-color codes.
/sign animate interval <ticks> Sets how many ticks between frame changes (20 ticks = 1 second).
/sign animate remove <index> Removes one frame.
/sign animate clear Stops and clears the sign's animation.
/sign animate list Lists every animated sign in the world, with its frames nested underneath.

Example:

/sign animate addframe &6==>|&eStep Right Up!
/sign animate addframe &e<==|&6Step Right Up!
/sign animate interval 20

A "WARP HUB" sign cycling between two colors:

Animated sign, magenta frame Animated sign, cyan frame

Frames can include live values that refresh automatically: {online}, {max} (players), {time} (server clock), {date}, {daytime} (in-game clock) and {day} (in-game day number). A single-frame animation makes a live display:

/sign animate addframe &6Players|&e{online}/{max}|&7{time}

/sign menu ... — clickable menus

Command Description
/sign menu create <rows 1-6> <title> Creates (or resizes/retitles) the sign's menu. Title supports &-color codes.
/sign menu page add Adds a new empty page, returns its index.
/sign menu page remove <page> Removes a page (can't remove the last remaining one — use clear instead).
/sign menu page list Lists the pages on the sign you're looking at.
/sign menu button add <page> <slot> <item> <name> Adds a button. item accepts any item ID (e.g. minecraft:diamond).
/sign menu button lore <page> <slot> <text> Appends one lore line to a button (call repeatedly for multiple lines).
/sign menu button command <page> <slot> console|player <command> Attaches a command to a button, run in console or player mode.
/sign menu button remove <page> <slot> Removes a button.
/sign menu clear Removes the sign's entire menu.
/sign menu list Lists every menu sign in the world, with pages and buttons nested underneath.
/sign menu test Opens the menu immediately, as a preview, without needing to right-click the sign.

When a menu has more than one page, the last two slots of the bottom row automatically become live Previous/Next navigation buttons — avoid placing your own buttons there once you add a second page.

The menu GUI is fully locked: nothing can be picked up, placed, or shift-clicked in or out of it — it's a pure button grid, not a real inventory.

Item Shop clickable menu example

/sign discord ... — Discord webhook notifications

Setup requires editing the config file first — you cannot paste a webhook URL in-game. /sign discord add only ever takes a short name, never the URL itself, so the secret URL can't leak into /sign discord list, exports, or templates.

  1. Stop the server and open config/omnisign-common.toml.
  2. Add your webhook to the discordWebhooks list as "name=url" — the quotes around it are required TOML syntax, not optional, or the config will fail to load:
    discordWebhooks = ["reboot=https://discord.com/api/webhooks/123456789/abcdefg"]
  3. Restart the server.
  4. In-game, reference it by name only — reboot in this example, never the URL:
    /sign discord add reboot Server is rebooting!
    

If you try to /sign discord add <the URL> directly, it will look up that string as a name, fail to find a match, and silently never send.

Command Description
/sign discord add <webhook> <message> Attaches a notification. webhook is a name configured in discordWebhooks (see Configuration), not a URL.
/sign discord remove <index> Removes one notification.
/sign discord clear Removes all Discord notifications from the sign.
/sign discord list Lists every sign with a Discord notification, across the world.
/sign discord test Sends the sign's notifications right now, without triggering the sign for real.

Discord notifications fire before any hidden commands run, so a sign that also runs a shutdown command (a "reboot sign") can't cut the notification off:

/sign discord add reboot 🔄 Server is rebooting (triggered by {player})
/sign command add console stop

/sign template ... — reusable setups

Command Description
/sign template save <name> Saves the targeted sign's full setup (commands + animation + menu + Discord) under a name, to disk.
/sign template apply <name> Applies a saved template to the targeted sign, overwriting its current setup.
/sign template delete <name> Deletes a saved template.
/sign template list Lists all saved template names.

Templates are stored server-wide and shared across every world on the server (not tied to a save).

/sign inspect, /sign wand inspect and /sign log

Command Description
/sign inspect Shows everything the sign you're looking at does: commands (with chains and delays), run mode and order, triggers, limits, how often it's been used, plus any animation, menu and Discord setup.
/sign wand inspect Gives you an inspect wand (a plain blaze rod with a distinctive name — no custom item, so the mod stays server-side only). Right-click any sign with it to see the same summary.
/sign log [count] Shows the most recent player-caused triggers (default 10, up to 50): time, position, kind (click, menu, proximity) and player. Also written to config/omnisign/triggers.log. Redstone and scheduled triggers are not logged.

/sign undo

Reverts your most recent change to any sign (across command/animate/menu/Discord edits), up to 20 steps back per player. Every destructive command's success message includes a reminder to use this.

/sign export / /sign import / /sign backups

Command Description
/sign export <name> Saves every OmniSign sign currently loaded to a backup file.
/sign import <name> Restores a backup — applies saved data to whatever sign block currently exists at each saved position (skips positions where the chunk isn't loaded or the block there isn't a sign anymore).
/sign backups Lists available backup files.

This backs up OmniSign's data, not the sign blocks themselves — a sign must already physically exist at a position for import to do anything there.

Clone this wiki locally