Skip to content

Greetings

elitescouter edited this page Mar 30, 2026 · 1 revision

Greetings

Greetings are rule-based conditional messages that fire when players join the server, enter a world, or respawn. Unlike the standard join message (which is the same for everyone), greetings let you send different messages to different players based on their group, permissions, world, spawn point, or first-join status.

Quick Start

  1. Open mods/EliteEssentials/greetings.json
  2. Enable the feature in config.json: set greetings.enabled to true
  3. Edit or add rules in greetings.json
  4. Run /eliteessentials reload

Configuration

Enable greetings in config.json:

{
  "greetings": {
    "enabled": false
  }
}

Greetings are disabled by default and won't affect existing servers until you turn them on.

Rules File

Rules are stored in mods/EliteEssentials/greetings.json. The file is created with example rules on first startup.

Rule Structure

{
  "rules": [
    {
      "id": "vip-welcome",
      "enabled": true,
      "trigger": "server_join",
      "broadcast": false,
      "conditions": {
        "groups": ["vip", "mvp"],
        "permissions": [],
        "worlds": [],
        "spawns": [],
        "firstJoin": null
      },
      "messages": [
        "&6&lVIP Welcome!",
        "&eWelcome back, {player}! Enjoy your VIP perks."
      ],
      "delaySeconds": 0,
      "stopAfterMatch": false,
      "showOnce": false
    }
  ]
}

Rule Fields

Field Type Default Description
id string "" Unique identifier for this rule
enabled boolean true Whether this rule is active
trigger string "server_join" When to fire (see Triggers below)
broadcast boolean false When true, message is sent to all online players instead of just the triggering player
conditions object (none) Conditions that must match (see Conditions below)
messages list [] Lines to send. Supports color codes and placeholders
delaySeconds int 0 Seconds to wait before sending (0 = immediate)
stopAfterMatch boolean false If true, skip all remaining rules after this one matches
showOnce boolean false If true, only fire once per session even if triggered again

Triggers

Trigger Description
server_join Player connects to the server
world_enter Player enters or changes to a world
respawn Player respawns after death

Conditions

All conditions are optional. When multiple condition types are set, they use AND logic between types and OR logic within lists.

Condition Type Description
groups list of strings Player must be in at least one of these LuckPerms groups
permissions list of strings Player must have at least one of these permission nodes
worlds list of strings Current world must match at least one pattern (supports * wildcards)
spawns list of strings Player arrived at one of these named spawn points (respawn trigger)
firstJoin boolean or null If set, must match first-join status. null = don't care

Placeholders

Placeholder Description
{player} Player's username
{displayname} Player's display name (nickname if set, otherwise username)
{server} Server name (from motd.serverName config)
{world} Current world name
{playercount} Number of visible online players
{group} Player's primary LuckPerms group
{spawn} Spawn point name (respawn trigger only)

PlaceholderAPI placeholders are also supported when chatFormat.placeholderapi is enabled.

Broadcast Mode

By default, greeting messages are sent privately to the triggering player only. Setting "broadcast": true on a rule sends the message to all online players instead.

This is useful for VIP/staff join announcements where you want the whole server to see that a special player has joined.

Vanish safety: Broadcast rules are automatically skipped for vanished players, so vanish is never broken by a broadcast greeting.

Example: VIP Join Announcement

{
  "rules": [
    {
      "id": "vip-join-announce",
      "enabled": true,
      "trigger": "server_join",
      "broadcast": true,
      "conditions": {
        "groups": ["vip", "mvp"]
      },
      "messages": [
        "&6[VIP] &e{player} has joined the server!"
      ]
    }
  ]
}

Everyone on the server sees [VIP] PlayerName has joined the server! in gold/yellow when a VIP connects.

Combining Private and Broadcast

You can use both a private welcome and a broadcast announcement for the same group:

{
  "rules": [
    {
      "id": "vip-join-announce",
      "enabled": true,
      "trigger": "server_join",
      "broadcast": true,
      "conditions": {
        "groups": ["vip"]
      },
      "messages": [
        "&6[VIP] &e{player} has joined the server!"
      ]
    },
    {
      "id": "vip-welcome",
      "enabled": true,
      "trigger": "server_join",
      "conditions": {
        "groups": ["vip"]
      },
      "messages": [
        "&6&lVIP Welcome!",
        "&eWelcome back, {player}! Enjoy your VIP perks."
      ]
    }
  ]
}

The VIP sees both the server-wide announcement and their private welcome. Everyone else only sees the announcement.

More Examples

First-Join Welcome

{
  "id": "new-player",
  "enabled": true,
  "trigger": "server_join",
  "conditions": {
    "firstJoin": true
  },
  "messages": [
    "&a&lWelcome to the server, {player}!",
    "&7Type &e/help &7to get started."
  ],
  "delaySeconds": 2,
  "stopAfterMatch": true
}

First-Join Broadcast

{
  "id": "new-player-announce",
  "enabled": true,
  "trigger": "server_join",
  "broadcast": true,
  "conditions": {
    "firstJoin": true
  },
  "messages": [
    "&a{player} has joined for the first time! Welcome!"
  ]
}

World-Specific Greeting

{
  "id": "arena-enter",
  "enabled": true,
  "trigger": "world_enter",
  "conditions": {
    "worlds": ["pvp_arena", "arena*"]
  },
  "messages": [
    "&cWelcome to the Arena!",
    "&7PvP is enabled here. Good luck!"
  ]
}

Staff-Only World Greeting (Broadcast)

{
  "id": "staff-enter-announce",
  "enabled": true,
  "trigger": "world_enter",
  "broadcast": true,
  "conditions": {
    "groups": ["admin", "moderator"],
    "worlds": ["event_world"]
  },
  "messages": [
    "&9[Staff] &b{player} has entered the event world."
  ]
}

Coexistence with Other Features

  • Greetings run independently from the MOTD system. You can use both, or disable MOTD and use greetings exclusively.
  • Greetings run independently from the standard join/quit messages in joinMsg config. Both can be active at the same time.
  • Broadcast greetings are separate from the standard join message -- a VIP can have both the normal join message and a broadcast greeting.

Reloading

Greeting rules are reloaded when you run /eliteessentials reload. No server restart required.

Clone this wiki locally