# EGlist - Velocity & BungeeCord

Version of EnhancedGlist compatible with Velocity and BungeeCord

# Installation

<p class="callout info">This documentation is for v2 version, unfortunately v1 is no longer maintained.</p>

Download the latest release from [SpigotMC](https://www.spigotmc.org/resources/enhanced-glist-bungeecord-velocity.53295/) or from our [CI Server](https://ci.wirlie.net/job/Enhanced-Glist/job/master/lastSuccessfulBuild/), also you can download an unstable build if you want to contribute to this project! By testing an unstable build and reporting any bug you can help us a lot.

If you are interested to contribute by testing unstable builds, download the latest unstable build from our [CI Server](https://ci.wirlie.net/job/Enhanced-Glist/job/develop/).

### **Prerequisites**

- Java 11 or greater is required to run EnhancedGlis for BungeeCord and Velocity.
- Always reload configuration using `/egl reload` command, never reload the plugin using a plugin manager if not necessary.
- EnhancedGlist is capable of handle vanish plugins to hide players from the lists, like the /glist command, but you may require to install the Spigot version of EnhancedGlist (egl-bridge) to properly handle it, anyway, some plugins brings compatibility with proxies like BungeeCord or Velocity without the needing of install egl-bridge in your spigot servers, for more info[ click here for installation steps and prerequisites of the Spigot version](https://docs.wirlie.net/books/eglist-spigot-bridge).
- To enable GUIs you must add Procotolize plugin to your proxy server, [check the GUI System section for more information](#bkmrk-gui-system).

### **BungeeCord**

1. First of all, we need to remove the built-in BungeeCord `/glist` command to remove conflicts with the `/glist` command registered by EnhancedGlist: 
    - Edit `modules.yml` file located at the root of your BungeeCord folder and remove line `jenkins://cmd_list` from file. After removing this line, file should look something to:  
        ```yaml
        version: 2
        modules:
        - jenkins://cmd_alert
        - jenkins://cmd_find
        - jenkins://cmd_send
        - jenkins://cmd_server
        - jenkins://reconnect_yaml
        ```
    - Go to `/modules` folder located at the root of your BungeeCord folder and remove `cmd_list.jar` file if exists.
2. Download latest stable or unstable build from our [CI Server](https://ci.wirlie.net/job/Enhanced-Glist/) or from [SpigotMC](https://www.spigotmc.org/resources/enhanced-glist-bungeecord-velocity.53295/).
3. Put downloaded file (`EnhancedGlist-BungeeCord-X.X.X.jar`) inside `/plugins` folder.
4. Load plugin using a plugin manager, or start/restart your BungeeCord server.
5. Go to `/plugins/EnhancedGlist` folder and edit configuration files to configure EnhancedGlist.
6. If you have made changes, use `/egl reload` command to reload plugin. 
    - **Note:** plugin manager is not required to reload EnhancedGlist because EnhancedGlist already does a full reload by using `/egl reload` command. We recommend you to use `/egl reload` to do a safe reload.
7. Congragulations! EnhancedGlist is installed on your BungeeCord server.
8. Install the Spigot version of EnhancedGlist to unlock additional features, see this page for more information: [https://docs.wirlie.net/books/eglist-spigot-bridge/page/installation](https://docs.wirlie.net/books/eglist-spigot-bridge/page/installation-spigot)

### **Velocity**

1. Download latest stable or unstable build from our [CI Server](https://ci.wirlie.net/job/Enhanced-Glist/) or from [SpigotMC](https://www.spigotmc.org/resources/enhanced-glist-bungeecord-velocity.53295/).
2. Put downloaded file (`EnhancedGlist-Velocity-X.X.X.jar`) inside `/plugins` folder.
3. Load plugin using a plugin manager, or start/restart your Velocity server.
4. Go to `/plugins/enhanced-glist-velocity` folder and edit configuration files to configure EnhancedGlist.
5. If you have made changes, use `/egl reload` command to reload plugin. 
    - **Note:** plugin manager is not required to reload EnhancedGlist because EnhancedGlist already does a full reload by using `/egl reload` command. We recommend you to use `/egl reload` to do a safe reload.
6. Congragulations! EnhancedGlist is installed on your Velocity server.
7. Install the Spigot version of EnhancedGlist to unlock additional features, see this page for more information: [https://docs.wirlie.net/books/eglist-spigot-bridge/page/installation](https://docs.wirlie.net/books/eglist-spigot-bridge/page/installation-spigot)

### **GUI System**

EnhancedGlist uses Protocolize as an additional dependency for making visual menus using the classic Chest inventories from game. To enable this feature you must add Protocolize to your BungeeCord or Velocity server, to download the latest version of Protocolize go to: [https://www.spigotmc.org/resources/protocolize-protocollib-for-bungeecord-waterfall-velocity.63778/](https://www.spigotmc.org/resources/protocolize-protocollib-for-bungeecord-waterfall-velocity.63778/).

If you have Protocolize installed and you want to disable GUI System from EnhancedGlist, edit `config.conf` file located inside of the data folder of EnhancedGlist and set `use-gui-menu` property to false, then use `/egl reload` command to apply changes.

# Compatible Plugins

<p class="callout info">This documentation is for v2 version, unfortunately v1 is no longer maintained.</p>

List of all compatible plugins which EnhancedGlist will hook to unlock additional features, all plugins are optional and are not required by EnhancedGlist to work.

<p class="callout info">Your plugin is not listed here? Don't worry! Feel free to [make a suggestion](https://github.com/Wirlie/Enhanced-Glist/discussions) and we will check if your suggested plugin can be added to EnhancedGlist.</p>

<table id="bkmrk-plugin-platform-addi" style="border-collapse:collapse;width:100%;height:271.969px;border-width:1px;border-spacing:0px;border-color:#000000;"><colgroup><col style="width:16.6873%;"></col><col style="width:18.7886%;"></col><col style="width:64.5241%;"></col></colgroup><tbody><tr style="height:29.7969px;"><td style="border-width:1px;height:29.7969px;border-color:rgb(0,0,0);padding:10px;">**Plugin**</td><td style="border-width:1px;height:29.7969px;border-color:rgb(0,0,0);padding:10px;">**Platform**</td><td style="border-width:1px;height:29.7969px;border-color:rgb(0,0,0);padding:10px;">**Additional feature if plugin is present**</td></tr><tr style="height:46.5938px;"><td style="border-width:1px;height:46.5938px;border-color:rgb(0,0,0);padding:10px;">[Protocolize](https://www.spigotmc.org/resources/protocolize-protocollib-for-bungeecord-waterfall-velocity.63778/)</td><td style="border-width:1px;height:46.5938px;border-color:rgb(0,0,0);padding:10px;">BungeeCord  
Velocity</td><td style="border-width:1px;height:46.5938px;border-color:rgb(0,0,0);padding:10px;">Enables GUI System for visual menus instead of displaying information through chat messages.</td></tr><tr><td style="border-width:1px;border-color:rgb(0,0,0);padding:10px;">[LuckPerms](https://luckperms.net/)</td><td style="border-width:1px;border-color:rgb(0,0,0);padding:10px;">BungeeCord  
Velocity</td><td style="border-width:1px;border-color:rgb(0,0,0);padding:10px;">Enables Prefixes handling using LuckPerms.</td></tr><tr style="height:29.7969px;"><td style="border-width:1px;border-color:rgb(0,0,0);height:29.7969px;padding:10px;">[EssentialsX](https://essentialsx.net/)</td><td style="border-width:1px;border-color:rgb(0,0,0);height:29.7969px;padding:10px;">Spigot  
</td><td style="border-width:1px;border-color:rgb(0,0,0);height:29.7969px;padding:10px;">Enables AFK and Vanish handling from EssentialsX.  
[**Note: Spigot bridge must be installed.**](https://docs.wirlie.net/books/eglist-spigot-bridge/page/installation-spigot "Installation")  
</td></tr><tr style="height:29.7969px;"><td style="border-width:1px;border-color:rgb(0,0,0);height:29.7969px;padding:10px;">[JetsAntiAFKPro](https://www.spigotmc.org/resources/jetsantiafkpro-play-time-afk-reward-detection-actions-bungee-macros-gui-1-8-1-19.63179/)</td><td style="border-width:1px;border-color:rgb(0,0,0);height:29.7969px;padding:10px;">Spigot</td><td style="border-width:1px;border-color:rgb(0,0,0);height:29.7969px;padding:10px;">Enables AFK handling from JetsAntiAFKPro  
[**Note: Spigot bridge must be installed.**](https://docs.wirlie.net/books/eglist-spigot-bridge/page/installation-spigot "Installation")  
</td></tr><tr style="height:29.7969px;"><td style="border-width:1px;border-color:rgb(0,0,0);height:29.7969px;padding:10px;">[SuperVanish](https://www.spigotmc.org/resources/supervanish-be-invisible.1331/)</td><td style="border-width:1px;border-color:rgb(0,0,0);height:29.7969px;padding:10px;">Spigot</td><td style="border-width:1px;border-color:rgb(0,0,0);height:29.7969px;padding:10px;">Enables Vanish handling from SuperVanish  
[**Note: Spigot bridge must be installed.**](https://docs.wirlie.net/books/eglist-spigot-bridge/page/installation-spigot "Installation")  
</td></tr><tr style="height:46.5938px;"><td style="border-width:1px;border-color:rgb(0,0,0);height:46.5938px;padding:10px;">[PremiumVanish](https://www.spigotmc.org/resources/premiumvanish-stay-hidden-bungee-support.14404/)</td><td style="border-width:1px;border-color:rgb(0,0,0);height:46.5938px;padding:10px;">BungeeCord  
Spigot  
</td><td style="border-width:1px;border-color:rgb(0,0,0);height:46.5938px;padding:10px;">Enables Vanish handling from PremiumVanish  
  
Velocity is not supported by PremiumVanish but you can add PremiumVanish on all Spigot servers and connect them using a database.  
  
[**Note: Spigot bridge must be installed if you are using Velocity as proxy.**](https://docs.wirlie.net/books/eglist-spigot-bridge/page/installation-spigot "Installation")  
</td></tr><tr style="height:29.7969px;"><td style="border-width:1px;border-color:rgb(0,0,0);height:29.7969px;padding:10px;">[VanishNoPacket](https://dev.bukkit.org/projects/vanish/)</td><td style="border-width:1px;border-color:rgb(0,0,0);height:29.7969px;padding:10px;">Spigot</td><td style="border-width:1px;border-color:rgb(0,0,0);height:29.7969px;padding:10px;">Enables Vanish handling from VanishNoPacket  
[**Note: Spigot bridge must be installed.**](https://docs.wirlie.net/books/eglist-spigot-bridge/page/installation-spigot "Installation")  
</td></tr><tr style="height:29.7969px;"><td style="border-width:1px;border-color:rgb(0,0,0);height:29.7969px;padding:10px;">[StaffFacilities](https://www.spigotmc.org/resources/staff-facilities-the-best-staff-experience-ever-bungeecord-support.13097/)</td><td style="border-width:1px;border-color:rgb(0,0,0);height:29.7969px;padding:10px;">Spigot</td><td style="border-width:1px;border-color:rgb(0,0,0);height:29.7969px;padding:10px;">Enables Vanish handling from StaffFacilities  
[**Note: Spigot bridge must be installed.**](https://docs.wirlie.net/books/eglist-spigot-bridge/page/installation-spigot "Installation")  
</td></tr><tr><td style="border-width:1px;border-color:rgb(0,0,0);padding:10px;">[CMI](https://www.spigotmc.org/resources/cmi-298-commands-insane-kits-portals-essentials-economy-mysql-sqlite-much-more.3742/)</td><td style="border-width:1px;border-color:rgb(0,0,0);padding:10px;">Spigot</td><td style="border-width:1px;border-color:rgb(0,0,0);padding:10px;">Enables AFK and Vanish handling from CMI plugin.

[**Note: Spigot bridge must be installed.**](https://docs.wirlie.net/books/eglist-spigot-bridge/page/installation-spigot "Installation")

</td></tr></tbody></table>

<div id="bkmrk--1"></div><div id="bkmrk--2"></div>

# Configuration files

All related to configuration files (\*.conf) from EnhancedGlist

# Main configuration file

<p class="callout info">This documentation is for v2 version, unfortunately v1 is no longer maintained.</p>

Main configuration file contains most of the features of EnhancedGlist and you can edit this by editing `config.conf` file located inside of the data folder of EnhancedGlist.

Default configuration file should look something similar to this:

<details id="bkmrk-do-not-edit-this-%7B-%23"><summary>Content of default config.conf file</summary>

```yaml
do-not-edit-this {
  # Do not edit this
  config-version="BUILD_COMMIT_HASH"
}

commands {
  glist {
    # Label to use for /glist command
    label="glist"
    # Permission required to execute /glist command
    permission="egl.commands.glist"
    # Optional, define aliases for /glist command
    aliases=["globalist"]
    # If enabled, a GUI will be displayed when a player executes this command
    # If disabled, data will be displayed in chat
    # To use this feature you must add Protocolize to your proxy:
    # https://www.spigotmc.org/resources/protocolize-protocollib-for-bungeecord-waterfall-velocity.63778/
    use-gui-menu=true
  }

  slist {
    # Label to use for /slist command
    label="slist"
    # Permission required to execute /slist command
    permission="egl.commands.slist"
    # Optional, define aliases for /slist command
    aliases=["serverlist"]
    # If enabled, a GUI will be displayed when a player executes this command
    # If disabled, data will be displayed in chat
    # To use this feature you must add Protocolize to your proxy:
    # https://www.spigotmc.org/resources/protocolize-protocollib-for-bungeecord-waterfall-velocity.63778/
    use-gui-menu=true
  }

  egl {
    # Label to use for /egl command
    label="egl"
    # Permission required to execute /egl command
    # Warning!!! This is a privileged command, only give this permission to administrators.
    permission="egl.commands.egl"
    # Optional, define aliases for /egl command
    aliases=["serverlist"]
  }
}

general {
  # Prefix for chat messages
  prefix="<bold><aqua>EGlist ></aqua></bold><reset>"
  # Supported languages: en (english), es (spanish)
  language="en"
  # Players per row (/slist)
  players-per-row=2
  # Players to display per page (/slist)
  players-per-page=16
  # Cache configuration
  cache {
    # Cache players that are connected in a certain server (/slist)
    server-players {
      # Set true to enable this cache
      enable=true
      # Number of seconds to keep the cache, after this period cache will be refreshed
      time=20
    }
  }
  # If empty servers should be hidden (when server has no players connected)
  hide-empty-servers=true
  # Number of servers to display on each page (/glist)
  servers-per-page=8
  # The number of players required to display a server (/glist), set 0 to always display empty servers.
  min-players-required-to-display-server=0
  # If server names should be displayed as uppercase (/glist and /slist)
  display-server-name-uppercase=false
}

behavior {
  # Related to vanish
  vanish {
    # If vanish should be handled by plugin
    enable=true
    # If vanished players should be hidden, useful if you want /glist to be used by players.
    hide-vanished-users=true
    # Permission to allow a player to see vanished players in /glist
    hide-bypass-permission="egl.bypass.vanish.hide"
  }

  # Related to AFK state
  afk {
    # If AFK state should be handled by plugin
    enable=true
  }
}

# Updater configuration
updates {
  # If plugin should check for new updates
  check-for-updates=true
  # Period to check for updates in seconds
  check-interval=300
  # Notifications
  notify {
    # Notify when a player joins to proxy
    on-join {
      # Enable this notification
      enable=true
      # Milliseconds to delay update message sent in chat (if an update is available)
      delay=2500
      # Only players with this permission can see the update message (if an update is available)
      permission="ebcl.update.notify"
    }

    # Console notification
    console {
      # Enable this notification
      enable=true
      # Notification interval in seconds
      notification-interval=1800
    }
  }
}

# Servers to ignore, all servers in this list will be hidden from /glist
# Also ignored servers will not be taken in account for server groups.
ignore-servers {
  # Ignore servers by exact name
  by-name=[
    "login1",
    "login2",
    "login3"
  ]
  # Ignore servers that match RegEx pattern
  # You can use this tool to test a RegEx expression: https://regexr.com/
  by-pattern=[
    "login.*"
  ]
}

# Group servers, useful if you have multiple instances of a same server
group-servers {
  # Example: lobby1, lobby2, lobby3 and lobby4 servers will be grouped as one server named "lobby"
  lobby=[
    "lobby1",
    "lobby2",
    "lobby3",
    "lobby4"
  ]
  # Example: all servers that start with "bedwars-lobby" and "bedwars-game" will be grouped as one server named "bedwars"
  bedwars {
    # RegEx pattern.
    # You can use this tool to test a RegEx expression: https://regexr.com/
    patterns=[
      "bedwars-game.*",
      "bedwars-lobby.*"
    ]
  }
}

```

</details>### Configuration properties

<details id="bkmrk-do-not-edit-this-thi"><summary>do-not-edit-this</summary>

**<span style="color: rgb(224, 62, 45);">This section is used by EnhancedGlist to know the current state of configuration and apply updates if needed, you should never edit this.</span>**

</details><details id="bkmrk-commands-glist-prope"><summary>commands</summary>

<details><summary>glist</summary>

Settings related to `/glist` command.

<table border="1" style="border-collapse: collapse; width: 100%; border-width: 1px; border-color: rgb(0, 0, 0);"><colgroup><col style="width: 25.3672%;"></col><col style="width: 27.5219%;"></col><col style="width: 47.2445%;"></col></colgroup><tbody><tr><td style="border-width: 1px; border-color: rgb(0, 0, 0);">**Property**</td><td style="border-width: 1px; border-color: rgb(0, 0, 0);">**Default Value**</td><td style="border-width: 1px; border-color: rgb(0, 0, 0);">**Description**</td></tr><tr><td style="border-width: 1px; border-color: rgb(0, 0, 0);">`label`</td><td style="border-width: 1px; border-color: rgb(0, 0, 0);">`glist`</td><td style="border-width: 1px; border-color: rgb(0, 0, 0);">Label to use for /glist command.</td></tr><tr><td style="border-width: 1px; border-color: rgb(0, 0, 0);">`permission`</td><td style="border-width: 1px; border-color: rgb(0, 0, 0);">`egl.commands.glist`</td><td style="border-width: 1px; border-color: rgb(0, 0, 0);">Required permission to execute /glist command</td></tr><tr><td style="border-width: 1px; border-color: rgb(0, 0, 0);">`aliases`</td><td style="border-width: 1px; border-color: rgb(0, 0, 0);">`["globalist"]`</td><td style="border-width: 1px; border-color: rgb(0, 0, 0);">Aliases to use for /glist command.</td></tr><tr><td style="border-width: 1px; border-color: rgb(0, 0, 0);">`use-gui-menu`</td><td style="border-width: 1px; border-color: rgb(0, 0, 0);">`true`</td><td style="border-width: 1px; border-color: rgb(0, 0, 0);">If /glist should use a GUI menu instead of chat messages to display information. This is only applied when Protocolize is available in your server, see [Installation](https://docs.wirlie.net/books/eglist-velocity-bungeecord/page/installation "Installation") page for more information.</td></tr></tbody></table>

</details><details><summary>slist</summary>

Settings related to `/slist` command.

<table border="1" style="border-collapse: collapse; width: 100%; border-width: 1px; border-color: rgb(0, 0, 0); height: 205.906px;"><colgroup><col style="width: 25.3672%;"></col><col style="width: 27.5219%;"></col><col style="width: 47.2445%;"></col></colgroup><tbody><tr style="height: 29.7969px;"><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 29.7969px;">**Property**</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 29.7969px;">**Default Value**</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 29.7969px;">**Description**</td></tr><tr style="height: 30.1094px;"><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 30.1094px;">`label`</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 30.1094px;">`slist`</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 30.1094px;">Label to use for /slist command.</td></tr><tr style="height: 30.1094px;"><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 30.1094px;">`permission`</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 30.1094px;">`egl.commands.slist`</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 30.1094px;">Required permission to execute /slist command</td></tr><tr style="height: 30.1094px;"><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 30.1094px;">`aliases`</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 30.1094px;">`["serverlist"]`</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 30.1094px;">Aliases to use for /slist command.</td></tr><tr style="height: 85.7812px;"><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 85.7812px;">`use-gui-menu`</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 85.7812px;">`true`</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 85.7812px;">If /slist should use a GUI menu instead of chat messages to display information. This is only applied when Protocolize is available in your server, see [Installation](https://docs.wirlie.net/books/eglist-velocity-bungeecord/page/installation "Installation") page for more information.</td></tr></tbody></table>

</details><details><summary>egl</summary>

Settings related to `/egl` command.

<table border="1" style="border-collapse: collapse; width: 100%; border-width: 1px; border-color: rgb(0, 0, 0); height: 120.125px;"><colgroup><col style="width: 25.3672%;"></col><col style="width: 27.5219%;"></col><col style="width: 47.2445%;"></col></colgroup><tbody><tr style="height: 29.7969px;"><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 29.7969px;">**Property**</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 29.7969px;">**Default Value**</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 29.7969px;">**Description**</td></tr><tr style="height: 30.1094px;"><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 30.1094px;">`label`</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 30.1094px;">`slist`</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 30.1094px;">Label to use for /slist command.</td></tr><tr style="height: 30.1094px;"><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 30.1094px;">`permission`</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 30.1094px;">`egl.commands.slist`</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 30.1094px;">Required permission to execute /slist command</td></tr><tr style="height: 30.1094px;"><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 30.1094px;">`aliases`</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 30.1094px;">`["serverlist"]`</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 30.1094px;">Aliases to use for /slist command.</td></tr></tbody></table>

</details></details><details id="bkmrk-general-property-def"><summary>general</summary>

<table border="1" style="border-collapse: collapse; width: 100%; border-width: 1px; border-color: rgb(0, 0, 0); height: 991.578px;"><colgroup><col style="width: 37.8691%;"></col><col style="width: 20.5426%;"></col><col style="width: 41.5883%;"></col></colgroup><tbody><tr style="height: 29.7969px;"><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 29.7969px;">**Property**</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 29.7969px;">**Default Value**</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 29.7969px;">**Description**</td></tr><tr style="height: 64.3281px;"><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 64.3281px;">`prefix`</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 64.3281px;">`<bold><aqua>EGlist ></aqua></bold><reset>`</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 64.3281px;">Prefix to use to identify plugin in chat messages.</td></tr><tr style="height: 57.7812px;"><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 57.7812px;">`language`</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 57.7812px;">`en`</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 57.7812px;">Language to use for messages, see [Available translations](https://docs.wirlie.net/books/eglist-velocity-bungeecord/page/available-translations "Available translations").</td></tr><tr style="height: 192.125px;"><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 192.125px;">`players-per-row`</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 192.125px;">`2`</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 192.125px;">Number of players to display on each line of chat when player list is displayed using `/slist` command.

*Note that this setting is not applicable for GUI, this is only applicable if you are not using the GUI System or if you uses `/slist` command from console, since console cannot render GUI.*

</td></tr><tr style="height: 169.734px;"><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 169.734px;">`players-per-page`  
</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 169.734px;">`16`  
</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 169.734px;">Number of players to display on each page for `/slist` command.

*Note that this setting is not applicable for GUI, this is only applicable if you are not using the GUI System or if you uses `/slist` command from console, since console cannot render GUI.*

</td></tr><tr style="height: 214.516px;"><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 214.516px;">`hide-empty-servers`  
</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 214.516px;">`true`  
</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 214.516px;">Enable this to hide empty servers if server does not have the minimum amount of players required to be displayed   
(`min-players-required-to-display-server`).  
  
*Note that this setting is not applicable for GUI, this is only applicable if you are not using the GUI System or if you uses `/slist` command from console, since console cannot render GUI.*

</td></tr><tr style="height: 58.1719px;"><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 58.1719px;">`min-players-required-to-display-server`  
</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 58.1719px;">`0`</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 58.1719px;">Min players required to display a server in the servers list for `/glist` command.  
  
*Note that this setting is not applicable for GUI, this is only applicable if you are not using the GUI System or if you uses `/glist` command from console, since console cannot render GUI.*

</td></tr><tr style="height: 169.734px;"><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 169.734px;">`servers-per-page`  
</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 169.734px;">`8`  
</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 169.734px;">Number of servers to display on each page for `/glist` command.  
  
*Note that this setting is not applicable for GUI, this is only applicable if you are not using the GUI System or if you uses `/glist` command from console, since console cannot render GUI.*

</td></tr><tr style="height: 35.3906px;"><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 35.3906px;">`display-server-name-uppercase`  
</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 35.3906px;">`false`  
</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 35.3906px;">If server names should be displayed in uppercase.

</td></tr></tbody></table>

<details><summary>cache</summary>

<details><summary>server-players</summary>

Cache to retain the player list of a server when `/slist` command is used. This cache is intended for an easy read of player list, especially when server has a high player concurrency.

*Note that this setting is not applicable for GUI, this is only applicable if you are not using the GUI System or if you uses `/slist` command from console, since console cannot render GUI.*

<table border="1" style="border-collapse: collapse; width: 100%; border-width: 1px; border-color: rgb(0, 0, 0); height: 364.125px;"><colgroup><col style="width: 25.3672%;"></col><col style="width: 27.5219%;"></col><col style="width: 47.2445%;"></col></colgroup><tbody><tr style="height: 29.7969px;"><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 29.7969px;">**Property**</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 29.7969px;">**Default Value**</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 29.7969px;">**Description**</td></tr><tr style="height: 47.2188px;"><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 47.2188px;">`enable`</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 47.2188px;">`true`</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 47.2188px;">If cache should be used, if you disable this, every `/slist` command execution will use the real player list but this can be hard to read if server has a high concurrency of players.</td></tr><tr><td style="border-width: 1px; border-color: rgb(0, 0, 0);">`time`  
</td><td style="border-width: 1px; border-color: rgb(0, 0, 0);">`20`  
</td><td style="border-width: 1px; border-color: rgb(0, 0, 0);">Time in seconds to keep cache, after this time cache will be refreshed.</td></tr></tbody></table>

</details></details></details><details id="bkmrk-behavior-vanish-prop"><summary>behavior</summary>

<details><summary>vanish</summary>

<table border="1" style="border-collapse: collapse; width: 100%; border-width: 1px; border-color: rgb(0, 0, 0); height: 231.156px;"><colgroup><col style="width: 25.3672%;"></col><col style="width: 27.5219%;"></col><col style="width: 47.2445%;"></col></colgroup><tbody><tr style="height: 29.7969px;"><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 29.7969px;">**Property**</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 29.7969px;">**Default Value**</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 29.7969px;">**Description**</td></tr><tr style="height: 91.375px;"><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 91.375px;">`enable`</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 91.375px;">`true`</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 91.375px;">If enabled, EnhancedGlist will handle Vanish updates from players. Note that you must install the [Spigot version of EnhancedGlist](https://docs.wirlie.net/books/eglist-spigot-bridge "EGlist - Spigot (Bridge)") to handle updates from Spigot.</td></tr><tr style="height: 46.5938px;"><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 46.5938px;">`hide-vanished-users`  
</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 46.5938px;">`true`  
</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 46.5938px;">If enabled, vanished players will be hidden from player list.</td></tr><tr style="height: 63.3906px;"><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 63.3906px;">`hide-bypass-permission`  
</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 63.3906px;">`egl.bypass.vanish.hide`  
</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 63.3906px;">Give this permission to your staff. With this permission, a player will be able to view vanished players from player list.</td></tr></tbody></table>

</details><details><summary>afk</summary>

<table border="1" style="border-collapse: collapse; width: 100%; border-width: 1px; border-color: rgb(0, 0, 0); height: 231.156px;"><colgroup><col style="width: 25.3672%;"></col><col style="width: 27.5219%;"></col><col style="width: 47.2445%;"></col></colgroup><tbody><tr style="height: 29.7969px;"><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 29.7969px;">**Property**</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 29.7969px;">**Default Value**</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 29.7969px;">**Description**</td></tr><tr style="height: 91.375px;"><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 91.375px;">`enable`</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 91.375px;">`true`</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 91.375px;">If enabled, EnhancedGlist will handle AFK updates from players. Note that you must install the [Spigot version of EnhancedGlist](https://docs.wirlie.net/books/eglist-spigot-bridge "EGlist - Spigot (Bridge)") to handle updates from Spigot.</td></tr></tbody></table>

</details></details><details id="bkmrk-updates-property-def"><summary>updates</summary>

<table border="1" style="border-collapse: collapse; width: 100%; border-width: 1px; border-color: rgb(0, 0, 0); height: 90.0157px;"><colgroup><col style="width: 25.3672%;"></col><col style="width: 27.5219%;"></col><col style="width: 47.2445%;"></col></colgroup><tbody><tr style="height: 29.7969px;"><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 29.7969px;">**Property**</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 29.7969px;">**Default Value**</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 29.7969px;">**Description**</td></tr><tr style="height: 30.1094px;"><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 30.1094px;">`check-for-updates`</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 30.1094px;">`true`</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 30.1094px;">If EnhancedGlist should check for new updates.</td></tr><tr style="height: 30.1094px;"><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 30.1094px;">`check-interval`  
</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 30.1094px;">`300`  
</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 30.1094px;">Time in seconds to perform a check for new updates.</td></tr></tbody></table>

<details><summary>notify</summary>

<details><summary>on-join</summary>

<table border="1" style="border-collapse: collapse; width: 100%; border-width: 1px; border-color: rgb(0, 0, 0); height: 90.0157px;"><colgroup><col style="width: 25.3672%;"></col><col style="width: 27.5219%;"></col><col style="width: 47.2445%;"></col></colgroup><tbody><tr style="height: 29.7969px;"><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 29.7969px;">**Property**</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 29.7969px;">**Default Value**</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 29.7969px;">**Description**</td></tr><tr style="height: 30.1094px;"><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 30.1094px;">`enable`</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 30.1094px;">`true`</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 30.1094px;">Enable notification on player join.</td></tr><tr><td style="border-width: 1px; border-color: rgb(0, 0, 0);">`delay`  
</td><td style="border-width: 1px; border-color: rgb(0, 0, 0);">`2500`  
</td><td style="border-width: 1px; border-color: rgb(0, 0, 0);">Time in milliseconds to delay the update notification message when player join.</td></tr><tr><td style="border-width: 1px; border-color: rgb(0, 0, 0);">`permission`  
</td><td style="border-width: 1px; border-color: rgb(0, 0, 0);">`ebcl.update.notify`</td><td style="border-width: 1px; border-color: rgb(0, 0, 0);">Only players with this permission will receive update notification.</td></tr></tbody></table>

</details><details><summary>console</summary>

<table border="1" style="border-collapse: collapse; width: 100%; border-width: 1px; border-color: rgb(0, 0, 0); height: 90.0157px;"><colgroup><col style="width: 25.3672%;"></col><col style="width: 27.5219%;"></col><col style="width: 47.2445%;"></col></colgroup><tbody><tr style="height: 29.7969px;"><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 29.7969px;">**Property**</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 29.7969px;">**Default Value**</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 29.7969px;">**Description**</td></tr><tr style="height: 30.1094px;"><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 30.1094px;">`enable`</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 30.1094px;">`true`</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 30.1094px;">Enable notification on console.</td></tr><tr style="height: 30.1094px;"><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 30.1094px;">`notification-interval`  
</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 30.1094px;">`1800`  
</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 30.1094px;">Time in seconds to send notification to console when a update is available.</td></tr></tbody></table>

</details></details></details><details id="bkmrk-ignore-servers-defin"><summary>ignore-servers</summary>

Define servers to be ignored from server list (i.e. list displayed when `/glist` command is executed)

<table border="1" style="border-collapse: collapse; width: 100%; border-width: 1px; border-color: rgb(0, 0, 0); height: 90.0157px;"><colgroup><col style="width: 25.2888%;"></col><col style="width: 28.7532%;"></col><col style="width: 45.958%;"></col></colgroup><tbody><tr style="height: 29.7969px;"><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 29.7969px;">**Property**</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 29.7969px;">**Default Value**</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 29.7969px;">**Description**</td></tr><tr style="height: 30.1094px;"><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 30.1094px;">`by-name`</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 30.1094px;">`["login1","login2","login3"]`</td><td style="border-width: 1px; border-color: rgb(0, 0, 0); height: 30.1094px;">Ignore servers by exact name.</td></tr><tr><td style="border-width: 1px; border-color: rgb(0, 0, 0);">`by-pattern`  
</td><td style="border-width: 1px; border-color: rgb(0, 0, 0);">`["login.*"]`  
</td><td style="border-width: 1px; border-color: rgb(0, 0, 0);">Ignore servers by name using regex expressions, you can use [RegExr](https://regexr.com/) webpage to test regex expressions.</td></tr></tbody></table>

</details><details id="bkmrk-group-servers-group-"><summary>group-servers</summary>

Group multiple servers by name. You can define many groups as you want, there is no limit of groups.

Examples:

---

Group multiple lobbies using exact name, in this example, lobby1, lobby2, lobby3 and lobby4 will be grouped as "lobby".

```yaml
group-servers {
  lobby=[
    "lobby1",
    "lobby2",
    "lobby3",
    "lobby4"
  ]
}
```

Also this can be done if you uses a Regex pattern to group all servers that starts with "lobby" word.

```yaml
group-servers {
  lobby=[
    patterns=[
      "lobby.*"
    ]
  ]
}
```

---

In this example, lobby1, lobby2, lobby3 and lobby4 will be grouped as "lobby", and all servers that starts with "bedwars-game" and "bedwars-lobby" will be grouped as "bedwars".

```yaml
group-servers {
  lobby=[
    "lobby1",
    "lobby2",
    "lobby3",
    "lobby4"
  ]
  bedwars {
    patterns=[
      "bedwars-game.*",
      "bedwars-lobby.*"
    ]
  }
}

```

</details>

# GUI configuration file

<p class="callout info">This documentation is for v2 version, unfortunately v1 is no longer maintained.</p>

This configuration provides you all configurations related to GUI used by `/glist` and `/slist` command. For `/glist` command you must edit `gui-glist-menu.conf` file and for `/slist` command you must edit `gui-slist-menu.conf` file.

Take note that some configurations are common between both configurations. Also, due to technical limitations, console is not capable of view inventories, so in such case, console will always render chat messages for `/glist` and `/slist` commands.

> Follow [Installation](https://docs.wirlie.net/books/eglist-velocity-bungeecord/page/installation "Installation") steps to enable GUI feature, otherwise these configurations will not have any effect.

### Common configuration between /glist and /slist

<table border="1" id="bkmrk-property-description" style="height: 60.5938px; width: 100%;"><tbody><tr style="height: 29.7969px;"><td style="width: 23.5079%; height: 29.7969px;">**Property**</td><td style="width: 76.4921%; height: 29.7969px;">**Description**</td></tr><tr style="height: 30.7969px;"><td style="width: 23.5079%; height: 30.7969px;">`title`</td><td style="width: 76.4921%; height: 30.7969px;">Title of menu.</td></tr><tr><td style="width: 23.5079%;">`rows`  
</td><td style="width: 76.4921%;">Number of rows to use (between 2 and 6 rows). You can set it to -1 to automatically calculate the number of rows depending of the data.</td></tr></tbody></table>

<details id="bkmrk-do-not-edit-this-thi"><summary>do-not-edit-this</summary>

<span style="color: rgb(224, 62, 45);">**This section is used by EnhancedGlist to know the current state of configuration and apply updates if needed, you should never edit this.**</span>

</details><details id="bkmrk-data-format-configur"><summary>data-format</summary>

Configurations related to items used by the menu to display data.

<details><summary>general-item</summary>

Base item to use for data display.

<table border="1" style="height: 60.5938px; width: 100%;"><tbody><tr style="height: 29.7969px;"><td style="width: 23.5079%; height: 29.7969px;">**Property**</td><td style="width: 76.4921%; height: 29.7969px;">**Description**</td></tr><tr style="height: 30.7969px;"><td style="width: 23.5079%; height: 30.7969px;">`material`</td><td style="width: 76.4921%; height: 30.7969px;">Item material. Use official Spigot material names (MC 1.13+): [Click here](https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html)

</td></tr><tr><td style="width: 23.5079%;">`amount`  
</td><td style="width: 76.4921%;">Item amount.

</td></tr><tr><td style="width: 23.5079%;">`display-name`  
</td><td style="width: 76.4921%;">Item display name.

</td></tr><tr><td style="width: 23.5079%;">`lore`  
</td><td style="width: 76.4921%;">Item lore.

</td></tr></tbody></table>

<details><summary>player-head</summary>

Only available if `material` is set to `PLAYER_HEAD`. With this configuration you can change the skin of head or the head owner (nick).

Only `skull-owner` or `skin-hash` should be set, not both.

<table border="1" style="height: 65.1875px; width: 100%;"><tbody><tr style="height: 29.7969px;"><td style="width: 23.5079%; height: 29.7969px;">**Property**</td><td style="width: 76.4921%; height: 29.7969px;">**Description**</td></tr><tr style="height: 35.3906px;"><td style="width: 23.5079%; height: 35.3906px;">`skull-owner`</td><td style="width: 76.4921%; height: 35.3906px;">Player name, skull will have the skin of this player.

</td></tr><tr><td style="width: 23.5079%;">`skin-hash`  
</td><td style="width: 76.4921%;">A string containing skin texture. You can use some tools like [Minecraft Heads](https://minecraft-heads.com/) to get this value:

[![Sin título.png](https://docs.wirlie.net/uploads/images/gallery/2022-09/scaled-1680-/iRUTfmBOJXQtqPDq-sin-titulo.png)](https://docs.wirlie.net/uploads/images/gallery/2022-09/iRUTfmBOJXQtqPDq-sin-titulo.png)

</td></tr></tbody></table>

</details></details><details><summary>empty-slot-item</summary>

Item to display on empty slots.

<table border="1" style="height: 60.5938px; width: 100%;"><tbody><tr style="height: 29.7969px;"><td style="width: 23.5079%; height: 29.7969px;">**Property**</td><td style="width: 76.4921%; height: 29.7969px;">**Description**</td></tr><tr style="height: 30.7969px;"><td style="width: 23.5079%; height: 30.7969px;">`material`</td><td style="width: 76.4921%; height: 30.7969px;">Item material. Use official Spigot material names (MC 1.13+): [Click here](https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html)

</td></tr><tr><td style="width: 23.5079%;">`amount`  
</td><td style="width: 76.4921%;">Item amount.

</td></tr><tr><td style="width: 23.5079%;">`display-name`  
</td><td style="width: 76.4921%;">Item display name.

</td></tr><tr><td style="width: 23.5079%;">`lore`  
</td><td style="width: 76.4921%;">Item lore.

</td></tr></tbody></table>

<details><summary>player-head</summary>

Only available if `material` is set to `PLAYER_HEAD`. With this configuration you can change the skin of head or the head owner (nick).

Only `skull-owner` or `skin-hash` should be set, not both.

<table border="1" style="height: 65.1875px; width: 100%;"><tbody><tr style="height: 29.7969px;"><td style="width: 23.5079%; height: 29.7969px;">**Property**</td><td style="width: 76.4921%; height: 29.7969px;">**Description**</td></tr><tr style="height: 35.3906px;"><td style="width: 23.5079%; height: 35.3906px;">`skull-owner`</td><td style="width: 76.4921%; height: 35.3906px;">Player name, skull will have the skin of this player.

</td></tr><tr><td style="width: 23.5079%;">`skin-hash`  
</td><td style="width: 76.4921%;">A string containing skin texture. You can use some tools like [Minecraft Heads](https://minecraft-heads.com/) to get this value:

[![Sin título.png](https://docs.wirlie.net/uploads/images/gallery/2022-09/scaled-1680-/iRUTfmBOJXQtqPDq-sin-titulo.png)](https://docs.wirlie.net/uploads/images/gallery/2022-09/iRUTfmBOJXQtqPDq-sin-titulo.png)

</td></tr></tbody></table>

</details></details></details><details id="bkmrk-toolbar-previous-pag"><summary>toolbar</summary>

<details><summary>previous-page-item</summary>

Item to set for previous page "button".

<table border="1" style="height: 60.5938px; width: 100%;"><tbody><tr style="height: 29.7969px;"><td style="width: 23.5079%; height: 29.7969px;">**Property**</td><td style="width: 76.4921%; height: 29.7969px;">**Description**</td></tr><tr style="height: 30.7969px;"><td style="width: 23.5079%; height: 30.7969px;">`material`</td><td style="width: 76.4921%; height: 30.7969px;">Item material. Use official Spigot material names (MC 1.13+): [Click here](https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html)

</td></tr><tr><td style="width: 23.5079%;">`amount`  
</td><td style="width: 76.4921%;">Item amount.

</td></tr><tr><td style="width: 23.5079%;">`display-name`  
</td><td style="width: 76.4921%;">Item display name.

</td></tr><tr><td style="width: 23.5079%;">`lore`  
</td><td style="width: 76.4921%;">Item lore.

</td></tr></tbody></table>

<details><summary>player-head</summary>

Only available if `material` is set to `PLAYER_HEAD`. With this configuration you can change the skin of head or the head owner (nick).

Only `skull-owner` or `skin-hash` should be set, not both.

<table border="1" style="height: 65.1875px; width: 100%;"><tbody><tr style="height: 29.7969px;"><td style="width: 23.5079%; height: 29.7969px;">**Property**</td><td style="width: 76.4921%; height: 29.7969px;">**Description**</td></tr><tr style="height: 35.3906px;"><td style="width: 23.5079%; height: 35.3906px;">`skull-owner`</td><td style="width: 76.4921%; height: 35.3906px;">Player name, skull will have the skin of this player.

</td></tr><tr><td style="width: 23.5079%;">`skin-hash`  
</td><td style="width: 76.4921%;">A string containing skin texture. You can use some tools like [Minecraft Heads](https://minecraft-heads.com/) to get this value:

[![Sin título.png](https://docs.wirlie.net/uploads/images/gallery/2022-09/scaled-1680-/iRUTfmBOJXQtqPDq-sin-titulo.png)](https://docs.wirlie.net/uploads/images/gallery/2022-09/iRUTfmBOJXQtqPDq-sin-titulo.png)

</td></tr></tbody></table>

</details></details><details><summary>next-page-item</summary>

Item to set for next page "button".

<table border="1" style="height: 60.5938px; width: 100%;"><tbody><tr style="height: 29.7969px;"><td style="width: 23.5079%; height: 29.7969px;">**Property**</td><td style="width: 76.4921%; height: 29.7969px;">**Description**</td></tr><tr style="height: 30.7969px;"><td style="width: 23.5079%; height: 30.7969px;">`material`</td><td style="width: 76.4921%; height: 30.7969px;">Item material. Use official Spigot material names (MC 1.13+): [Click here](https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html)

</td></tr><tr><td style="width: 23.5079%;">`amount`  
</td><td style="width: 76.4921%;">Item amount.

</td></tr><tr><td style="width: 23.5079%;">`display-name`  
</td><td style="width: 76.4921%;">Item display name.

</td></tr><tr><td style="width: 23.5079%;">`lore`  
</td><td style="width: 76.4921%;">Item lore.

</td></tr></tbody></table>

<details><summary>player-head</summary>

Only available if `material` is set to `PLAYER_HEAD`. With this configuration you can change the skin of head or the head owner (nick).

Only `skull-owner` or `skin-hash` should be set, not both.

<table border="1" style="height: 65.1875px; width: 100%;"><tbody><tr style="height: 29.7969px;"><td style="width: 23.5079%; height: 29.7969px;">**Property**</td><td style="width: 76.4921%; height: 29.7969px;">**Description**</td></tr><tr style="height: 35.3906px;"><td style="width: 23.5079%; height: 35.3906px;">`skull-owner`</td><td style="width: 76.4921%; height: 35.3906px;">Player name, skull will have the skin of this player.

</td></tr><tr><td style="width: 23.5079%;">`skin-hash`  
</td><td style="width: 76.4921%;">A string containing skin texture. You can use some tools like [Minecraft Heads](https://minecraft-heads.com/) to get this value:

[![Sin título.png](https://docs.wirlie.net/uploads/images/gallery/2022-09/scaled-1680-/iRUTfmBOJXQtqPDq-sin-titulo.png)](https://docs.wirlie.net/uploads/images/gallery/2022-09/iRUTfmBOJXQtqPDq-sin-titulo.png)

</td></tr></tbody></table>

</details></details><details><summary>background</summary>

<table border="1" style="height: 195.359px; width: 100%;"><tbody><tr style="height: 29.7969px;"><td style="width: 23.498%; height: 29.7969px;">**Property**</td><td style="width: 76.502%; height: 29.7969px;">**Description**</td></tr><tr style="height: 165.562px;"><td style="width: 23.498%; height: 165.562px;">`pattern`</td><td style="width: 76.502%; height: 165.562px;">Pattern to set background, representating the nine slots of an inventory row.

[![image.png](https://docs.wirlie.net/uploads/images/gallery/2022-09/scaled-1680-/4bCGCOkpZykR8fa2-image.png)](https://docs.wirlie.net/uploads/images/gallery/2022-09/4bCGCOkpZykR8fa2-image.png)

Expected string to represent nine slots of an inventory row:

```yaml
pattern="1 2 3 4 5 6 7 8 9"
```

</td></tr></tbody></table>

### **Declare definitions**

You must define all items used by pattern, for example, if you set `"A B C B A B C B A"` as pattern you must declare definitions for `"A"`, `"B"` and `"C"`. Note that you can use any letter or number to define a pattern.

#### **Item definition**

```yaml
background {
  pattern="1 B 1 2 S 2 1 N 1"
  definitions {
    i1 {
      material="LIME_STAINED_GLASS_PANE"
      display-name=" "
    }
    ...
  }
}
```

A definition key is conformed with: `"XY"` where `X` is the definition type and `Y` the letter to define, for example, `iA` defines an item for letter `A`.

As you have seen, `i` is used to define an item.

##### **Properties for item idefinition**

<table border="1" style="height: 60.5938px; width: 100%;"><tbody><tr style="height: 29.7969px;"><td style="width: 23.5079%; height: 29.7969px;">**Property**</td><td style="width: 76.4921%; height: 29.7969px;">**Description**</td></tr><tr style="height: 30.7969px;"><td style="width: 23.5079%; height: 30.7969px;">`material`</td><td style="width: 76.4921%; height: 30.7969px;">Item material. Use official Spigot material names (MC 1.13+): [Click here](https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html)

</td></tr><tr><td style="width: 23.5079%;">`amount`  
</td><td style="width: 76.4921%;">Item amount.

</td></tr><tr><td style="width: 23.5079%;">`display-name`  
</td><td style="width: 76.4921%;">Item display name.

</td></tr><tr><td style="width: 23.5079%;">`lore`  
</td><td style="width: 76.4921%;">Item lore.

</td></tr></tbody></table>

<details><summary>player-head</summary>

Only available if `material` is set to `PLAYER_HEAD`. With this configuration you can change the skin of head or the head owner (nick).

Only `skull-owner` or `skin-hash` should be set, not both.

<table border="1" style="height: 65.1875px; width: 100%;"><tbody><tr style="height: 29.7969px;"><td style="width: 23.5079%; height: 29.7969px;">**Property**</td><td style="width: 76.4921%; height: 29.7969px;">**Description**</td></tr><tr style="height: 35.3906px;"><td style="width: 23.5079%; height: 35.3906px;">`skull-owner`</td><td style="width: 76.4921%; height: 35.3906px;">Player name, skull will have the skin of this player.

</td></tr><tr><td style="width: 23.5079%;">`skin-hash`  
</td><td style="width: 76.4921%;">A string containing skin texture. You can use some tools like [Minecraft Heads](https://minecraft-heads.com/) to get this value:

[![Sin título.png](https://docs.wirlie.net/uploads/images/gallery/2022-09/scaled-1680-/iRUTfmBOJXQtqPDq-sin-titulo.png)](https://docs.wirlie.net/uploads/images/gallery/2022-09/iRUTfmBOJXQtqPDq-sin-titulo.png)

</td></tr></tbody></table>

</details>#### **Menu item definition**

```yaml
background {
  pattern="1 B 1 2 S 2 1 N 1"
  definitions {
    mB="previous-page-item
    mN="next-page-item"
    ...
  }
}
```

This type of definition is used by menu to know how put some menu items, such "back page" and "next page" items.

Also menu items are not directly configurable like item definition, you should look for `previous-page-item` and `next-page-item` configurations instead.

##### Available menu items:

- `previous-page-item`
- `next-page-item`

Remember that a definition key is conformed with: `"XY"` where `X` is the definition type and `Y` the letter to define, for menu items, definition type corresponds to the letter `m`.

#### **Full example:**

<details><summary>Example</summary>

```yaml
  background {
    pattern="1 B 1 2 S 2 1 N 1"
    definitions {
      i1 {
        material="LIME_STAINED_GLASS_PANE"
        display-name=" "
      }
      i2 {
        material="YELLOW_STAINED_GLASS_PANE"
        display-name=" "
      }
      iS {
        material="PLAYER_HEAD"
        display-name="<aqua>Ver todos los servidores"
        player-head {
          skin-hash="eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZGZjM2MyNDNmYzA4OTRhYTQwMjhkMzJiMTlhODMwYTJmY2FkYzI5MzI3MGI0Y2IzMmMxYmFlNDJjNzhjMDhiZSJ9fX0="
        }
        on-click {
          run-command = "glist"
        }
      }
      mB="previous-page-item"
      mN="next-page-item"
      iE {
        material="YELLOW_STAINED_GLASS_PANE"
        amount=1
        display-name="<red>¡Ítem de ejemplo!"
        lore=[
          "<gray>lore línea 1",
          "<aqua>lore línea 2",
          "<green>lore línea 3"
        ]
        on-click {
          send-chat="<yellow>¡Hola <player>!"
          run-command="glist"
          close-menu=true
        }
        player-head {
          skull-owner="Wirlie"
          skin-hash="ewogICJ0aW1lc3RhbXAiIDogMTY1OTA0NzQ3MDM5OSwKICAicHJvZmlsZUlkIiA6ICI4N2RlZmVhMTQwMWQ0MzYxODFhNmNhOWI3ZGQ2ODg0MyIsCiAgInByb2ZpbGVOYW1lIiA6ICJTcGh5bnhpdHMiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjg0MThjZGExM2Y1OTAxMmM4MTVkNmRiYTNlZDgzODUyZGExNzU5YzdiOTVjYTczYTFlNmM0YmNiMzI2MTg1MyIKICAgIH0KICB9Cn0="
        }
      }
    }
  }
```

</details></details></details>### /glist configuration (`gui-glist-menu.conf`)

<details id="bkmrk-data-format-custom-i"><summary>data-format</summary>

<details><summary>custom-items</summary>

Set custom items to display depending of the server name, you can add unlimited custom items. If no custom item is defined for a server, then the general item will be used.

##### **Properties:**

<table border="1" style="height: 242.141px; width: 100%;"><tbody><tr style="height: 29.7969px;"><td style="width: 23.5079%; height: 29.7969px;">**Property**</td><td style="width: 76.4921%; height: 29.7969px;">**Description**</td></tr><tr style="height: 35.3906px;"><td style="width: 23.5079%; height: 35.3906px;">`by-name`  
</td><td style="width: 76.4921%; height: 35.3906px;">Match servers by exact name, all matched servers will use this custom item.

</td></tr><tr style="height: 35.3906px;"><td style="width: 23.5079%; height: 35.3906px;">`by-regex`  
</td><td style="width: 76.4921%; height: 35.3906px;">Match servers by name using regex expressions, all matched servers will use this custom item.

</td></tr><tr style="height: 35.3906px;"><td style="width: 23.5079%; height: 35.3906px;">`material`</td><td style="width: 76.4921%; height: 35.3906px;">Item material. Use official Spigot material names (MC 1.13+): [Click here](https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html)

</td></tr><tr style="height: 35.3906px;"><td style="width: 23.5079%; height: 35.3906px;">`amount`  
</td><td style="width: 76.4921%; height: 35.3906px;">Item amount. Set to -1 to automatically set amount based on the number of players connected to the server.

</td></tr><tr style="height: 35.3906px;"><td style="width: 23.5079%; height: 35.3906px;">`display-name`  
</td><td style="width: 76.4921%; height: 35.3906px;">Item display name.

</td></tr><tr style="height: 35.3906px;"><td style="width: 23.5079%; height: 35.3906px;">`lore`  
</td><td style="width: 76.4921%; height: 35.3906px;">Item lore.

</td></tr></tbody></table>

<details><summary>player-head</summary>

Only available if `material` is set to `PLAYER_HEAD`. With this configuration you can change the skin of head or the head owner (nick).

Only `skull-owner` or `skin-hash` should be set, not both.

<table border="1" style="height: 65.1875px; width: 100%;"><tbody><tr style="height: 29.7969px;"><td style="width: 23.5079%; height: 29.7969px;">**Property**</td><td style="width: 76.4921%; height: 29.7969px;">**Description**</td></tr><tr style="height: 35.3906px;"><td style="width: 23.5079%; height: 35.3906px;">`skull-owner`</td><td style="width: 76.4921%; height: 35.3906px;">Player name, skull will have the skin of this player.

</td></tr><tr><td style="width: 23.5079%;">`skin-hash`  
</td><td style="width: 76.4921%;">A string containing skin texture. You can use some tools like [Minecraft Heads](https://minecraft-heads.com/) to get this value:

[![Sin título.png](https://docs.wirlie.net/uploads/images/gallery/2022-09/scaled-1680-/iRUTfmBOJXQtqPDq-sin-titulo.png)](https://docs.wirlie.net/uploads/images/gallery/2022-09/iRUTfmBOJXQtqPDq-sin-titulo.png)

</td></tr></tbody></table>

</details>**Example:**

In this example, a custom item named "lobby-servers" is defined, and all servers that starts with "lobby" will use this custom item. *Note that you can name custom items as you want.*

```yaml
data-format {
  custom-items {
    lobby-servers {
      by-regex="lobby.*"
      material="PLAYER_HEAD"
      amount=-1
      display-name="<yellow>Lobby Server"
      lore=[
        "<white><player-count></white> <aqua>online players</aqua>",
        " ",
        "<yellow>Click to view player list."
      ]
      player-head {
        skin-hash="eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDY3ZGYzNWI3YTgwMjdkZGM4M2M5MTlkNzNmMGEzOTk4YWQ1NGViMGQ5NzNlZjcxNmFlNTA1YzY3NTU4MTBmNyJ9fX0="
      }
  }
}
```

</details></details>### /slist configuration (`gui-slist-menu.conf`)

<details id="bkmrk-format-property-desc"><summary>format</summary>

<table border="1" style="height: 242.141px; width: 100%;"><tbody><tr style="height: 29.7969px;"><td style="width: 23.5079%; height: 29.7969px;">**Property**</td><td style="width: 76.4921%; height: 29.7969px;">**Description**</td></tr><tr style="height: 35.3906px;"><td style="width: 23.5079%; height: 35.3906px;">`afk-status`  
</td><td style="width: 76.4921%; height: 35.3906px;">Prefix/Suffix to use for AFK status.

</td></tr><tr style="height: 35.3906px;"><td style="width: 23.5079%; height: 35.3906px;">`vanish-status`  
</td><td style="width: 76.4921%; height: 35.3906px;">Prefix/Suffix to use for Vanish status.

</td></tr></tbody></table>

</details>

# Available translations

<p class="callout info">This documentation is for v2 version, unfortunately v1 is no longer maintained.</p>

Currently available languages:

<table border="1" id="bkmrk-code-language-en-eng" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 13.889%;"></col><col style="width: 86.2346%;"></col></colgroup><tbody><tr><td>**Code**</td><td>**Language**</td></tr><tr><td>en</td><td>English</td></tr><tr><td>es</td><td>Spanish</td></tr></tbody></table>

To change language of EnhancedGlist see: [Main configuration file](https://docs.wirlie.net/books/eglist-velocity-bungeecord/page/main-configuration-file "Main configuration file")

To contribute with an additional translation, contact me via Discord: Wirlie#0001

# Make your own translation file

<p class="callout info">This documentation is for v2 version, unfortunately v1 is no longer maintained.</p>

To make your own translation edit `language` configuration from [main configuration](https://docs.wirlie.net/books/eglist-velocity-bungeecord/page/main-configuration-file "Main configuration file") and set it to anything else except already [existing languages codes](https://docs.wirlie.net/books/eglist-velocity-bungeecord/page/available-translations "Available translations").

For example, you can make your own portuguese translation by setting the `language` configuration to `pt`, then reload EnhancedGlist by using `/egl reload` command . This will generate a new file called `pt.conf` containing all translations from English language. Edit this new file with your own translations and use `/egl reload` to apply changes.

# Commands

<p class="callout info">This documentation is for v2 version, unfortunately v1 is no longer maintained.</p>

List of default commands, note that you can configure all commands from the [main configuration](https://docs.wirlie.net/books/eglist-velocity-bungeecord/page/main-configuration-file "Main configuration file").

<table id="bkmrk-command-permission-d" style="border-collapse:collapse;width:100%;"><colgroup><col style="width:16.44%;"></col><col style="width:19.53%;"></col><col style="width:31.5207%;"></col><col style="width:32.5093%;"></col></colgroup><tbody><tr><td>**Command**</td><td>**Permission**</td><td>**Description**</td><td>**Privileged command**</td></tr><tr><td>`/glist`</td><td>`egl.commands.glist`</td><td>Command to display information from all servers registered on the Proxy.</td><td>No, you can grant this command to your players.</td></tr><tr><td>`/slist`</td><td>`egl.commands.slist`</td><td>Command to display player list from a certain server.</td><td>No, you can grant this command to your players.</td></tr><tr><td>`/egl`</td><td>`egl.commands.egl`</td><td>Main EnhancedGlist command.</td><td>Yes, should only be used by administrators.</td></tr></tbody></table>

# Buy Me a Coffee

Hello! 👋 My main focus is to make software with high quality and innovation 💡. I love my work and I hope that you enjoy my work 🤗.

Your collaboration is very appreciated, if you want to help my work you can do it becoming a sponsor of my projects.

I am satisfied if you enjoy my work, but if you want to help me to improve my tools for making better software 💻, then you should definitively become a sponsor 🙂.

To become a sponsor, visit: [https://github.com/sponsors/Wirlie](https://github.com/sponsors/Wirlie)