SwornHeroWiki
Configuration

Configuration

Structure, validation rules, and the complete default Dynamic Join Greetings configuration.

Configuration lives at config/dynamic-join-greetings.json.

After editing the file, apply changes with:

/joingreetings reload

Invalid reloads keep the previously active configuration and print details to the server console.

Complete default configuration

This is the packaged default shipped with documentation version 1.0.4+26.2 (10 first-time greetings and 50 returning greetings):

{
  "configVersion": 1,
  "enabled": true,
  "serverName": "Minecraft Server",
  "delayTicks": 40,
  "selection": {
    "mode": "SHUFFLE_BAG",
    "avoidImmediateRepeats": true,
    "rememberPerPlayer": true
  },
  "firstJoin": {
    "enabled": true,
    "audience": "PLAYER",
    "messages": [
      {
        "id": "first_welcome",
        "weight": 1,
        "lines": [
          "<gold><bold>Welcome to {server}, {player}!</bold></gold>",
          "<gray>Your first adventure begins here.</gray>"
        ]
      },
      {
        "id": "first_new_chapter",
        "weight": 1,
        "lines": [
          "<yellow>Welcome, {player}!</yellow>",
          "<gray>A new chapter awaits you on {server}.</gray>"
        ]
      },
      {
        "id": "first_arrival",
        "weight": 1,
        "lines": [
          "<green>A new traveler has arrived!</green>",
          "<gold>Welcome to {server}, {player}.</gold>"
        ]
      },
      {
        "id": "first_new_face",
        "weight": 1,
        "lines": [
          "<aqua>Welcome, {player}!</aqua>",
          "<gray>We are glad you found your way to {server}.</gray>"
        ]
      },
      {
        "id": "first_beginning",
        "weight": 1,
        "lines": [
          "<gold>Every great story has a beginning.</gold>",
          "<yellow>Yours on {server} starts now, {player}.</yellow>"
        ]
      },
      {
        "id": "first_open_gates",
        "weight": 1,
        "lines": [
          "<yellow>The gates are open, {player}!</yellow>",
          "<gray>Welcome to your first day on {server}.</gray>"
        ]
      },
      {
        "id": "first_fresh_trail",
        "weight": 1,
        "lines": [
          "<green>A fresh trail lies ahead, {player}.</green>",
          "<gray>Welcome to {server}!</gray>"
        ]
      },
      {
        "id": "first_story_begins",
        "weight": 1,
        "lines": [
          "<gold><bold>Your story begins here, {player}.</bold></gold>",
          "<gray>Welcome to {server}.</gray>"
        ]
      },
      {
        "id": "first_home_awaits",
        "weight": 1,
        "lines": [
          "<yellow>Welcome to {server}, {player}!</yellow>",
          "<gray>Somewhere out there, a new home awaits.</gray>"
        ]
      },
      {
        "id": "first_adventure_calls",
        "weight": 1,
        "lines": [
          "<aqua>Adventure is calling, {player}.</aqua>",
          "<gold>Welcome to {server}!</gold>"
        ]
      }
    ]
  },
  "returningJoin": {
    "enabled": true,
    "audience": "PLAYER",
    "messages": [
      {
        "id": "return_welcome_back",
        "weight": 1,
        "lines": [
          "<gold>Welcome back, <yellow>{player}</yellow>!</gold>"
        ]
      },
      {
        "id": "return_adventure",
        "weight": 1,
        "lines": [
          "<yellow>Another adventure awaits, {player}!</yellow>"
        ]
      },
      {
        "id": "return_home",
        "weight": 1,
        "lines": [
          "<gold>Welcome home, {player}.</gold>",
          "<gray>It is good to see you again on {server}.</gray>"
        ]
      },
      {
        "id": "return_good_to_see_you",
        "weight": 1,
        "lines": [
          "<green>Good to see you again, {player}!</green>"
        ]
      },
      {
        "id": "return_world_waited",
        "weight": 1,
        "lines": [
          "<aqua>{server} has been waiting for you, {player}.</aqua>"
        ]
      },
      {
        "id": "return_next_chapter",
        "weight": 1,
        "lines": [
          "<gold>Welcome back, {player}.</gold>",
          "<gray>Your next chapter is ready.</gray>"
        ]
      },
      {
        "id": "return_back_again",
        "weight": 1,
        "lines": [
          "<yellow>Back again, {player}?</yellow>",
          "<gray>We knew adventure could not keep you away.</gray>"
        ]
      },
      {
        "id": "return_trail_continues",
        "weight": 1,
        "lines": [
          "<green>The trail continues, {player}.</green>"
        ]
      },
      {
        "id": "return_pick_up",
        "weight": 1,
        "lines": [
          "<gold>Welcome back to {server}!</gold>",
          "<gray>Pick up right where you left off, {player}.</gray>"
        ]
      },
      {
        "id": "return_familiar_face",
        "weight": 1,
        "lines": [
          "<aqua>A familiar face returns.</aqua>",
          "<yellow>Welcome back, {player}!</yellow>"
        ]
      },
      {
        "id": "return_gates_open",
        "weight": 1,
        "lines": [
          "<gold>The gates of {server} open once more for {player}.</gold>"
        ]
      },
      {
        "id": "return_another_day",
        "weight": 1,
        "lines": [
          "<yellow>Another day, another adventure.</yellow>",
          "<gray>Welcome back, {player}.</gray>"
        ]
      },
      {
        "id": "return_world_turns",
        "weight": 1,
        "lines": [
          "<green>The world keeps turning.</green>",
          "<gray>Glad to have you back, {player}.</gray>"
        ]
      },
      {
        "id": "return_ready",
        "weight": 1,
        "lines": [
          "<aqua>Ready for more, {player}?</aqua>"
        ]
      },
      {
        "id": "return_builds_await",
        "weight": 1,
        "lines": [
          "<gold>Your builds await, {player}.</gold>"
        ]
      },
      {
        "id": "return_tools_ready",
        "weight": 1,
        "lines": [
          "<yellow>Your tools are ready.</yellow>",
          "<gray>Welcome back to {server}, {player}.</gray>"
        ]
      },
      {
        "id": "return_land_remembers",
        "weight": 1,
        "lines": [
          "<green>The land remembers your footsteps, {player}.</green>"
        ]
      },
      {
        "id": "return_fire_burning",
        "weight": 1,
        "lines": [
          "<gold>The fire is still burning.</gold>",
          "<gray>Welcome home, {player}.</gray>"
        ]
      },
      {
        "id": "return_paths_open",
        "weight": 1,
        "lines": [
          "<aqua>The paths of {server} are open again, {player}.</aqua>"
        ]
      },
      {
        "id": "return_good_timing",
        "weight": 1,
        "lines": [
          "<yellow>Perfect timing, {player}.</yellow>",
          "<gray>There is always more to discover.</gray>"
        ]
      },
      {
        "id": "return_adventure_resumes",
        "weight": 1,
        "lines": [
          "<gold>Your adventure resumes now, {player}.</gold>"
        ]
      },
      {
        "id": "return_missed_you",
        "weight": 1,
        "lines": [
          "<green>{server} missed you, {player}!</green>"
        ]
      },
      {
        "id": "return_back_home",
        "weight": 1,
        "lines": [
          "<yellow>Back home at last.</yellow>",
          "<gray>Welcome, {player}.</gray>"
        ]
      },
      {
        "id": "return_new_horizon",
        "weight": 1,
        "lines": [
          "<aqua>A new horizon awaits, {player}.</aqua>"
        ]
      },
      {
        "id": "return_story_continues",
        "weight": 1,
        "lines": [
          "<gold>The story of {player} continues on {server}.</gold>"
        ]
      },
      {
        "id": "return_server_brighter",
        "weight": 1,
        "lines": [
          "<yellow>{server} is a little brighter with you back, {player}.</yellow>"
        ]
      },
      {
        "id": "return_welcome_traveler",
        "weight": 1,
        "lines": [
          "<green>Welcome back, traveler.</green>",
          "<gray>May the road be kind, {player}.</gray>"
        ]
      },
      {
        "id": "return_dust_off_tools",
        "weight": 1,
        "lines": [
          "<gold>Dust off your tools, {player}.</gold>",
          "<gray>There is work to be done.</gray>"
        ]
      },
      {
        "id": "return_more_to_build",
        "weight": 1,
        "lines": [
          "<yellow>There is always more to build.</yellow>",
          "<gray>Welcome back, {player}.</gray>"
        ]
      },
      {
        "id": "return_next_project",
        "weight": 1,
        "lines": [
          "<aqua>What is the next project, {player}?</aqua>"
        ]
      },
      {
        "id": "return_world_alive",
        "weight": 1,
        "lines": [
          "<green>The world feels alive again.</green>",
          "<gray>Welcome back, {player}.</gray>"
        ]
      },
      {
        "id": "return_familiar_ground",
        "weight": 1,
        "lines": [
          "<gold>Familiar ground beneath your feet, {player}.</gold>"
        ]
      },
      {
        "id": "return_back_in_action",
        "weight": 1,
        "lines": [
          "<yellow>{player} is back in action!</yellow>"
        ]
      },
      {
        "id": "return_rejoin_friends",
        "weight": 1,
        "lines": [
          "<aqua>Friends, builds, and adventures await.</aqua>",
          "<gray>Welcome back, {player}.</gray>"
        ]
      },
      {
        "id": "return_journey_resumes",
        "weight": 1,
        "lines": [
          "<gold>The journey resumes, {player}.</gold>"
        ]
      },
      {
        "id": "return_land_calls",
        "weight": 1,
        "lines": [
          "<green>The land of {server} calls you home.</green>"
        ]
      },
      {
        "id": "return_another_chapter",
        "weight": 1,
        "lines": [
          "<yellow>Another chapter begins today, {player}.</yellow>"
        ]
      },
      {
        "id": "return_pickaxe_ready",
        "weight": 1,
        "lines": [
          "<gold>Pickaxe ready?</gold>",
          "<gray>Welcome back, {player}.</gray>"
        ]
      },
      {
        "id": "return_base_waiting",
        "weight": 1,
        "lines": [
          "<aqua>Your base has been waiting patiently, {player}.</aqua>"
        ]
      },
      {
        "id": "return_fires_lit",
        "weight": 1,
        "lines": [
          "<gold>The fires are lit and the doors are open.</gold>",
          "<gray>Welcome back to {server}.</gray>"
        ]
      },
      {
        "id": "return_road_home",
        "weight": 1,
        "lines": [
          "<green>Every road eventually leads home.</green>",
          "<gray>Welcome back, {player}.</gray>"
        ]
      },
      {
        "id": "return_legend_returns",
        "weight": 1,
        "lines": [
          "<gold>A legend returns to {server}.</gold>",
          "<yellow>Welcome back, {player}!</yellow>"
        ]
      },
      {
        "id": "return_time_to_create",
        "weight": 1,
        "lines": [
          "<yellow>Time to create something remarkable, {player}.</yellow>"
        ]
      },
      {
        "id": "return_good_company",
        "weight": 1,
        "lines": [
          "<aqua>Good worlds deserve good company.</aqua>",
          "<gray>Welcome back, {player}.</gray>"
        ]
      },
      {
        "id": "return_skies_clear",
        "weight": 1,
        "lines": [
          "<green>The skies are clear and adventure awaits, {player}.</green>"
        ]
      },
      {
        "id": "return_footsteps",
        "weight": 1,
        "lines": [
          "<gold>Once again, your footsteps echo across {server}.</gold>"
        ]
      },
      {
        "id": "return_workshop_open",
        "weight": 1,
        "lines": [
          "<yellow>The workshop is open, {player}.</yellow>"
        ]
      },
      {
        "id": "return_world_ready",
        "weight": 1,
        "lines": [
          "<aqua>{server} is ready when you are, {player}.</aqua>"
        ]
      },
      {
        "id": "return_right_where_left",
        "weight": 1,
        "lines": [
          "<green>Everything is right where you left it.</green>",
          "<gray>Probably. Welcome back, {player}!</gray>"
        ]
      },
      {
        "id": "return_once_more",
        "weight": 1,
        "lines": [
          "<gold>Once more into the world, {player}.</gold>"
        ]
      }
    ]
  }
}

Field reference

FieldTypeDefaultLimits / accepted valuesDescription
configVersionnumber1Must be 1Configuration schema version.
enabledbooleantruetrue or falseMaster switch for automatic greetings.
serverNamestring"Minecraft Server"Non-emptyValue substituted for {server}.
delayTicksnumber40Integer 01200Delay before delivery. Twenty ticks ≈ one second.
selection.modeenum"SHUFFLE_BAG"RANDOM, NO_REPEAT, SHUFFLE_BAGMessage selection strategy.
selection.avoidImmediateRepeatsbooleantruetrue or falseAvoids immediate repeats when another message is available.
selection.rememberPerPlayerbooleantruetrue or falsePer-player vs shared selection history.
firstJoinobjectenabled poolRequired objectFirst-time player message pool.
returningJoinobjectenabled poolRequired objectReturning player message pool.
*.enabledbooleantruetrue or falseEnables that pool.
*.audienceenum"PLAYER"PLAYER, BROADCAST, BOTHWho receives the greeting.
*.messagesarraypackaged defaultsRequired; non-empty when enabledSelectable message entries.
messages[].idstringunique idsUnique within the pool, non-blankMessage identifier.
messages[].weightnumber1.0Finite and > 0Relative selection weight.
messages[].linesstring[]one or more linesAt least one line; valid Simplified Text FormatMessage body lines.

Deeper guides

Found a problem in these docs? Report a documentation issue on GitHub.

On this page