Skip to main content

Overview

The Signs Plugin is an intuitive tool that enhances server navigation within SimpleCloud. With this plugin, users can click on designated signs to instantly connect to different servers within your network.

Supported Software

Server TypePlugin Support
Paper & Forks✅ Yes
Spigot & Forks🔄 Planned

Quick Setup

  1. Download the plugin from GitHub
  2. Place it in your server template’s plugins folder

Configuration

The Signs Plugin offers extensive configuration options for dynamic and engaging server signs. Each configuration entry defines sign behavior based on server state. Example configuration:
name: "starting" # Unique identifier
rule: "STARTING" # Server state this applies to
server-name: "%group%-%numerical-id%" # Dynamic name template
priority: 0 # Rule precedence (higher overrides lower)
frame-update-interval: 500 # Update interval in milliseconds
frames:
  - lines:
      - "starting."
      - "<group>-<numerical-id>"
  - lines:
      - "starting.."
      - "<group>-<numerical-id>"
  - lines:
      - "starting..."
      - "<group>-<numerical-id>"

Sign Rules

RuleDescriptionState Condition
STARTINGStarting serversServer state is STARTING
OFFLINEInactive serversServer is null
MAINTENANCEMaintenance modeServer is AVAILABLE with maintenance=true
FULLMaximum capacityServer is AVAILABLE with playerCount == maxPlayers
EMPTYNo playersServer is AVAILABLE with playerCount == 0
ONLINEActive serversServer is AVAILABLE

Placeholders

Available placeholders for sign configuration (all follow the MiniMessage <placeholder> syntax):
PlaceholderDescriptionDefault
<group>Server group”unknown”
<numerical-id>Server ID”0”
<type>Server type”unknown”
<host>Server host”unknown”
<ip>Server IP”unknown”
<port>Server port”0”
<min-memory>Min memory”0”
<max-memory>Max memory”0”
<max-players>Max players”0”
<player-count>Current players”0”
<state>Server state”unknown”
<player_name>Player name (rules run for a player only)n/a
<player_sender>Player’s proxy/server namen/a
<property:[name]:[default]>Custom property lookup with optional fallback""
For dynamic sign properties you can use the tag <property:joinstate:'Maintenance'>. The resolver looks up joinstate in the server’s properties map and, if it isn’t present, falls back to the optional default argument (empty string when omitted).

Example Usage

name: "online"
rule: "ONLINE"
display-name: "<group>-<numerical-id>"
priority: 50
frame-update-interval: 500
frames:
  - lines:
      - "Server: <group>"
      - "ID: <numerical-id>"
      - "Players: <player-count>/<max-players>"
      - "State: <state>"

Commands

CommandDescription
/sign add <group>Register new sign
/sign remove [group]Unregister sign

Permissions

PermissionDescription
signs.command.*All sign commands
signs.command.addRegister new signs
signs.command.removeUnregister signs
signs.command.remove.groupRemove by group name