-
Notifications
You must be signed in to change notification settings - Fork 72
Components
The following components are available:
- Basic Component/ Single Slot
!animatedComponent!conditionalComponent!playersComponent!players_by_serverComponent!tableComponent!spacercomponent!containercomponent
-
{text: "...", icon: "image.png", ping: 0}The basic component represents the content of one slot in the tab list. It offers the following options:
-
The
iconoption controls the icon on the left of the slot.Icons in the tab list are a feature which has been added in Minecraft version 1.8. You will not see them using older clients. They are not available in offline mode either.
The
iconoption can be set to one of the following:-
The name of a 8x8 pixel
.pngfile you saved in theheads/directory, e.g.colors/blue.png. -
A player name or uuid. You can set this to a name which does not belong to player to save bandwidth/ see random alex or steve skins. See http://www.reddit.com/r/MinecraftHeads/comments/1m1s0g/official_heads_made_by_mojang_marc/ for cool skins/heads.
-
-
The
pingoption configures the ping bar on the right of the slot. The following table shows the effect of different ping values:Value Description Image < 0 crossed out ping bar 
0 - 149 five bars 
150 - 299 four bars 
300 - 599 three bars 
600 - 999 two bars 
>999 one bar 
-
The
leftoption sets the text displayed in the slot with alignment to the left. You can use theleft,centerandrightoptions simultaneously, to have different pieces of text with different alignment in the same slot. You can use legacy formatting codes using the§or the&sign. Have a look at the Text Format page to learn about all options for selecting color, formatting and fonts. You can display information using placeholders. -
The
centeroption sets the text displayed in the slot with alignment to the middle. You can use theleft,centerandrightoptions simultaneously, to have different pieces of text with different alignment in the same slot. You can use legacy formatting codes using the§or the&sign. Have a look at the Text Format page to learn about all options for selecting color, formatting and fonts. You can display information using placeholders. -
The
rightoption sets the text displayed in the slot with alignment to the right. You can use theleft,centerandrightoptions simultaneously, to have different pieces of text with different alignment in the same slot. You can use legacy formatting codes using the§or the&sign. Have a look at the Text Format page to learn about all options for selecting color, formatting and fonts. You can display information using placeholders. -
The
textoption controls the text displayed in the slot. You can use legacy formatting codes using the§or the&sign. Have a look at the Text Format page to learn about all options for selecting color, formatting and fonts. You can display information using placeholders.Notice: Instead of using the
textandalignmentoptions we recommend you use the newerleft,centerandrightoptions which allow you to have multiple pieces of text with different alignment in the same slot. -
The
alignmentcan be used to change the text alignment. It can be set toLEFT,CENTERorRIGHT.Example:
{text: "Centered text", icon: "image.png", ping: 0, alignment: CENTER}Or to do right bound text:
{text: "At the right", icon: "image.png", ping: 0, alignment: RIGHT}Notice: Instead of using the
textandalignmentoptions we recommend you use the newerleft,centerandrightoptions which allow you to have multiple pieces of text with different alignment in the same slot. -
The
longTextoption allows specifying what happens if the text is too long to fit the slot. It can be set toDISPLAY_ALL,CROP,CROP_2DOTSorCROP_3DOTS. The default isDISPLAY_ALLwhich will display the text anyway. The other options cut off part of the text to make it fit an will eventually append 2 or 3 dots depending on which option you chose.The following table shows the different values you can use for the
longTextoption:Value Result DISPLAY_ALL
CROP
CROP_2DOTS
CROP_3DOTS
Example:
{text: "${player vault_prefix}${player name}", longText: CROP_2DOTS}
-
-
This
!animatedcomponent makes it possible to create animated slots. To create an animation you need to provide a list of components of which the plugin displays one at a time and moves on to the next after the given time period. It has the following options which can be customized:-
The
componentsoption is a list of other components. Typically, each of those represents the content a single slot. The!animatedcomponent will display one of those at a time. -
The
intervaloption is the time (in seconds) after which the plugin will move to the next slot. -
The
randomizeoption can be set to eithertrueorfalse. Not setting it has the same effect as setting it tofalse. Whenrandomizeis set totruethe different components will be displayed in random order, otherwise they will be cycled through from top to bottom.
Schema:
!animated components: <List of Components> interval: <Number> randomize: <true/false>
Example:

- !animated interval: 1.5 components: - {text: "&cBalance: &6${viewer vault_balance 1.2}", icon: "default/balance.png", ping: 0} - {text: "&cRank: &6${viewer vault_primary_group}", icon: "default/rank.png", ping: 0} - {text: "&cPing: ${viewer_colored_ping}ms", icon: "default/ping.png", ping: 0}
-
-
The
!conditionalcomponent can dynamically change the content of the tab list. Depending on whether the given condition is fulfilled it is displays one of two replacements. It has the following options:-
The
conditionoption is a boolean expression deciding which replacement is used. You can use placeholders and compare them using operators such as=,<or>to create the condition. -
The
trueoption must be set to a component (or list of components) that is displayed if the condition is fulfilled. -
The
falseoption must be set to a component (or list of components) that is displayed if the condition evaluated tofalse.
Schema:
!conditional condition: <Expression> true: <Component or List of Components> false: <Component or List of Components>
Example: The example shows how you can display whether a server is online. It also changes the icon of the slot.
!conditional condition: ${server:survival online} == true true: {text: "&bSurvival: &aONLINE", icon: "colors/green.png", ping: 0} false: {text: "&bSurvival: &cOFFLINE", icon: "colors/red.png", ping: 0}
Additional Information: Expression Syntax
-
-
The
!playerscomponent provides a simple way of adding players to the tab list. The following options can be used to customize the!playerscomponent.-
The
playerSetoption selects which players to display on the tab list.If you want to change which players the tab list displays, e.g. so it only displays players in a specific group, do the following:
- Create a player set containing the players you want to display. Check out the Player Sets wiki page for more information.
- Set
playerSetto the name of the player set you created in step i.
-
The
playerOrderoption specifies the order in which players are displayed on the tab list. Have a look at the Player Order wiki page for more information. -
The
playerComponentoption controls the text displayed in player slots. You can use placeholders to display nicknames, prefixes and suffixes and otherwise change the appearance of the player name.Note that when using placeholders you should use the
playervariant of the placeholder. -
The
morePlayersComponentoption is a custom slot that is displayed if there is not enough space on the tab list to display all of the players:
-
The
fillSlotsVerticaloption can be used to change the order in which slots are filled. The following screenshot illustrates the effect:fillSlotsVertical: falsefillSlotsVertical: true

Not using the
fillSlotsVerticaloption has the same effect as setting it to false. If it is not present in your config file and you want to use it all you have to do is to add thefillSlotsVertical: trueline to the options of the!playerscomponent. -
The
minSizeoption specifies the minimum number of slots to be used by the!playerscomponent. If there are less players than the number specified byminSize, the plugin will add some empty slots after the players, such that the!playerscomponent usesminSizeslots. -
The
maxSizeoption specifies the maximum number of slots to be used by the!playerscomponent. If there are more players than can be displayed inmaxSizeslots, the plugin will not display all of them, make use of themorePlayersComponentto indicate that there are more players and use exactlymaxSizeslots.Setting
minSizeandmaxSizeto the same value guarantees that the!playerscomponent always uses the same number of slots. It will not change its size depending on the number of players. That way the component after the!playerscomponent always appears at the same location. This can be useful for some layouts, especially in conjunction with the!tablecomponent.
Schema:
!players playerSet: <String> playerOrder: <String> playerComponent: <Component or list of components> morePlayersComponent: <Component or list of components> fillSlotsVertical: <true/false> minSize: <Number> maxSize: <Number>
Example:
!players playerSet: all_players playerOrder: "vault_primary_group_weight asc, name asc" playerComponent: "${player name}" morePlayersComponent: {text: "... and ${other_count} others", icon: "default/players.png", ping: 0}
-
-
The
!players_by_servercomponent adds players to the tab list grouping them by server as seen in the default config. You can customize its appearance using the following options:-
The
playerSetoption selects which players to display on the tab list.If you want to change which players the tab list displays, e.g. so it only displays players in a specific group, do the following:
- Create a player set containing the players you want to display. Check out the Player Sets wiki page for more information.
- Set
playerSetto the name of the player set you created in step i.
-
The
playerOrderoption specifies the order in which players are displayed on the tab list. Have a look at the Player Order wiki page for more information. -
Determines the order of the servers. Possible values for
serverOrderarealphabetically,playercount,onlineandcustom. Multiple orderings can be chained by separating the with a comma, just the way it works withplayerOrder. -
Specifies the server order if you used
customin theserverOrderoption.Example using
serverOrder: custom:!players_by_server playerSet: all_players serverOrder: custom customServerOrder: [spawn, survival, creative] # ...
-
The
serverHeaderoption specifies a list of custom slots displayed for each server above the players on that server. Here two special placeholders${server}and${server_player_count}can be used to display the name of the server and the number of players on it. -
The
serverFooterspecifies a list of custom slots displayed for each server below the players on that server. Here two special placeholders${server}and${server_player_count}can be used to display the name of the server and the number of players on it. -
The
serverSeparatorspecifies a list of custom slots displayed between each pair of two servers. -
The
showServerscontrols which servers should appear on the tablist:Option Description ALLAll servers are displayed ONLINEOnly running servers are displayed NON_EMPTYOnly non empty servers are displayed Example:
ALL NON_EMPTY 

-
The
mergeServersoption makes two or more servers appear as a single server. This is useful e.g. if you have multiple lobby servers.Schema:
mergeServers: <group name>: [<server name>, <servername>, ...] <group name>: [<server name>, <servername>, ...] ...
Example on using the
mergeServersoption:Before 
After 
!players_by_server playerSet: all_players serverHeader: "> &b${server}" mergeServers: lobby: [lobby0, lobby1] # ...
-
Setting the
prioritizeViewerServeroption totruetells the plugin to use more space for displaying the viewer's server. Instead of using an equal amount of slots for each server, the viewer's server will be given more space if required to fit all its players. TheprioritizeViewerServeris enabled by default. -
The
hiddenServersoption specifies a list of servers which will not be displayed.Example on using the
hiddenServersoption:!players_by_server playerSet: all_players showServers: ALL hiddenServers: [hub, private] # ...
-
The
playerComponentoption controls the text displayed in player slots. You can use placeholders to display nicknames, prefixes and suffixes and otherwise change the appearance of the player name.Note that when using placeholders you should use the
playervariant of the placeholder. -
The
morePlayersComponentoption is a custom slot that is displayed if there is not enough space on the tab list to display all of the players:
-
The
fillSlotsVerticaloption can be used to change the order in which slots are filled. The following screenshot illustrates the effect:fillSlotsVertical: falsefillSlotsVertical: true

Not using the
fillSlotsVerticaloption has the same effect as setting it to false. If it is not present in your config file and you want to use it all you have to do is to add thefillSlotsVertical: trueline to the options of the!players_by_servercomponent. -
The
minSizePerServeroption specifies the minimum number of slots to be used for each server. This includes theserverHeader, the players, themorePlayersComponentand theserverFooter. -
The
maxSizePerServeroption specifies the maximum number of slots to be used for a single server. This includes theserverHeader, the players, themorePlayersComponentand theserverFooter. -
The
minSizeoption specifies the minimum number of slots to be used by the!players_by_servercomponent. If there are less players than the number specified byminSize, the plugin will add some empty slots after the players, such that the!players_by_servercomponent usesminSizeslots. -
The
maxSizeoption specifies the maximum number of slots to be used by the!players_by_servercomponent. If there are more players than can be displayed inmaxSizeslots, the plugin will not display all of them, make use of themorePlayersComponentto indicate that there are more players and use exactlymaxSizeslots.Setting
minSizeandmaxSizeto the same value guarantees that the!players_by_servercomponent always uses the same number of slots. It will not change its size depending on the number of players. That way the component after the!players_by_servercomponent always appears at the same location. This can be useful for some layouts, especially in conjunction with the!tablecomponent.
Schema:
!players_by_server playerSet: <String> playerOrder: <String> serverOrder: <String> customServerOrder: <List of servers> serverHeader: <List of Components> serverFooter: <List of Components> serverSeparator: <List of Components> showServers: <ALL, ONLINE, NON_EMPTY> mergeServers: <group name>: [<server name>, <servername>, ...] prioritizeViewerServer: <true/false> hiddenServers: <List of servers> playerComponent: <Component or list of components> morePlayersComponent: <Component or list of components> fillSlotsVertical: <true/false> minSizePerServer: <Number> maxSizePerServer: <Number> minSize: <Number> maxSize: <Number>
Example:
!players_by_server playerSet: global playerOrder: "vault_primary_group_weight asc, name asc" serverOrder: "playercount,alphabetically" serverHeader: - {text: "&e&n${server}&f&o (${server_player_count}):", icon: "colors/yellow.png", ping: 0} showServers: NON_EMPTY playerComponent: "${player name}" morePlayersComponent: {text: "&7... and &e${other_count} &7others", icon: "colors/gray.png", ping: 0}
-
-
The
!tablecomponent makes it possible to configure the columns of the tab list individually. It has two options:-
The
columnsoption is a map. It maps each column number to a list of components that will be displayed in that column. The columns numbers start from0(left most column). You use two columns to display single component by joining the column number with a-, e.g. using1-2as key. -
The
sizeoption specifies the number of slots used by the!tablecomponent. This option is optional, and should not be required by most users. When used this must be a multiple of the number of columns.
Schema:
!table size: <Number> columns: <Column number(s)>: <List of Components>
Example:
!table columns: 0: - "Content of the first column" - "..." 1-2: - "This" - "goes" - "to" - "the" - "second" - "and" - "third" - "column" 3: - "Content of the fourth column" - "..."
-
-
The
!spacercomponent can be used to fill part of the tab list with empty slots. Those slots will use the icon defined by thedefaultIconoption and the ping set by thedefaultPingoption. The!spacercomponent does not have any configurable options.Schema:
!spacerExample showing the use of the
!spacercomponent with some context:size: 20 components: - {text: "Top-most slot", icon: "colors/gold.png", ping: 0} - !spacer - {text: "Slot at the very bottom", icon: "colors/gold.png", ping: 0}
-
The
!containercomponent acts as a wrapper for the other components it contains. It allows changing the order in which those components fill the slots of the tab list as well setting a minimum/ maximum for the number of slots used by those components.The
!containercomponent has the following options:-
The
fillSlotsVerticaloption can be used to change the order in which slots are filled. Not using thefillSlotsVerticaloption has the same effect as setting it to false. -
The
minSizeoption specifies the minimum number of slots to be used. If the components inside the!containercomponent use less slots than specified byminSize, the plugin will add empty slots. -
The
maxSizeoption specifies the maximum number of slots that can be used by the components inside the!containercomponent. -
The
componentsoption specifies the components inside the!containercomponent.
Schema:
!container fillSlotsVertical: <true/false> minSize: <Number> maxSize: <Number> components: <List of Components>
Example showing the use of the
!containercomponent with some context:components: - !container fillSlotsVertical: true components: - "Admins:" - !players playerSet: admins playerComponent: "${player vault_prefix}${player name}${afk_tag}" morePlayersComponent: {text: "&7... and &e${other_count} &7others", icon: "colors/gray.png", ping: 0} - - !players playerSet: non_admins playerComponent: "${player vault_prefix}${player name}${afk_tag}" morePlayersComponent: {text: "&7... and &e${other_count} &7others", icon: "colors/gray.png", ping: 0}
-
Next: Player Order