> ## Documentation Index
> Fetch the complete documentation index at: https://new-docs.simplecloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Proxy Essentials

> Learn about SimpleCloud's proxy essentials plugin for customizable MOTD, Tablist, and Joinstates

## Overview

This plugin enhances your server network with customizable MOTD (Server Info), Tablist, and Joinstates features. All settings are synchronized across all proxies, offering extensive customization through simple configuration files.

## Supported Software

| Software   | Plugin Support |
| ---------- | -------------- |
| Velocity   | ✅ Yes          |
| Bungeecord | ✅ Yes          |

<Note>
  Want to add support for another server software? Submit a pull request on
  [GitHub](https://github.com/simplecloudapp/proxy-plugin)!
</Note>

## Quick Setup

1. Download the plugin from [GitHub](https://github.com/simplecloudapp/proxy-essentials-plugin/releases)
2. Place it in your proxy template's plugins folder
3. Start your proxy server
4. Set a joinstate for your group (e.g., `maintenance` for your proxy group)

## Features

### Server Info (MOTD)

Create multiple layouts in the `layout/` folder for dynamic server information display:

```yaml theme={null}
first-lines:
  - <color:#0ea5e9>A simplecloud.app network
second-lines:
  - " "
player-info: []
version-name: ""
max-player-display-type: REAL # or DYNAMIC
dynamic-player-range: 1 # Only enabled if max-player-display-type is DYNAMIC
```

<Frame>
  <img src="https://github.com/simplecloudapp/branding/blob/main/media/plugin/proxy-essentials/server-info.png?raw=true" alt="Server Info Example" />
</Frame>

<Note>
  When running locally, actual slots are displayed due to controller health
  checks. Players see different information based on your configuration.
</Note>

### Tablist Header and Footer

Create engaging tablist headers and footers with support for static and animated content:

```yaml theme={null}
groups:
  - group-or-service: "*"
    tab-lists:
      - header:
          - ""
          - <color:#0ea5e9>SimpleCloud v3
          - "Frame 1"
        footer:
          - ""
          - " <color:#ffffff><online_players> players <color:#cbd5e1>are playing on your network "
          - <color:#64748b>  sɪᴍᴘʟᴇᴄʟᴏᴜᴅ.ᴀᴘᴘ
          - ""
      # Create another list entry for rotation
      - header:
          - ""
          - <color:#0ea5e9>SimpleCloud v3
          - "Frame 2"
        footer:
          - ""
          - " <color:#ffffff><online_players> players <color:#cbd5e1>are playing on your network "
          - <color:#64748b>  sɪᴍᴘʟᴇᴄʟᴏᴜᴅ.ᴀᴘᴘ
          - ""
tab-list-update-time: 1000 # Update interval in milliseconds
```

<Frame>
  <img src="https://github.com/simplecloudapp/branding/blob/main/media/plugin/proxy-essentials/tablist.png?raw=true" alt="Tablist Example" />
</Frame>

### Joinstates

Manage server access with customizable states:

```yaml theme={null}
# Default state for new groups
default-state: public

join-states:
  - name: public
    join-permission: "" # Empty for public access
    full-join-permission: simplecloud.join.full.public
    motd-layout-by-proxy: public

  - name: closedBeta
    join-permission: simplecloud.join.closedbeta
    full-join-permission: simplecloud.join.full.closedbeta
    motd-layout-by-proxy: closed_beta

  - name: maintenance
    join-permission: simplecloud.join.maintenance
    full-join-permission: simplecloud.join.full.maintenance
    motd-layout-by-proxy: maintenance
```

## Commands

| Command                                           | Description            |
| ------------------------------------------------- | ---------------------- |
| `/joinstate group <group> <state>`                | Set group joinstate    |
| `/joinstate server <group> <numericalId> <state>` | Set server joinstate   |
| `/joinstate help`                                 | Show command help      |
| `/joinstate groups`                               | List groups and states |
| `/joinstate states`                               | List all joinstates    |

## Placeholders

| Placeholder        | MOTD | Tablist | Description             |
| ------------------ | ---- | ------- | ----------------------- |
| `<online_players>` | ✅    | ✅       | Current online players  |
| `<max_players>`    | ✅    | ✅       | Maximum network players |
| `<date>`           | ✅    | ✅       | Current date            |
| `<env:NAME>`       | ✅    | ✅       | Environment variable    |
| `<server_name>`    | ❌    | ✅       | Player's current server |
| `<ping>`           | ❌    | ✅       | Player's ping           |

## Permissions

| Permission                             | Description            |
| -------------------------------------- | ---------------------- |
| `simplecloud.command.joinstate.*`      | All joinstate commands |
| `simplecloud.command.joinstate.help`   | View command help      |
| `simplecloud.command.joinstate.groups` | View groups and states |
| `simplecloud.command.joinstate.states` | View all joinstates    |
| `simplecloud.command.joinstate.server` | Set server joinstate   |
| `simplecloud.command.joinstate.group`  | Set group joinstate    |

## API Integration

<Warning>
  API documentation will be available once the API is ready and public.
</Warning>
