Custom Tab List

  • Welcome to skUnity!

    Welcome to skUnity! This is a forum where members of the Skript community can communicate and interact. Skript Resource Creators can post their Resources for all to see and use.

    If you haven't done so already, feel free to join our official Discord server to expand your level of interaction with the comminuty!

    Now, what are you waiting for? Join the community now!

@Pikachu not really, this should be good enough.
code_language.skript:
#Sets header and footer of a player's tablist with packets

#Parameters:
#{_target} = player that this function will change the header and footer of his tablist view.
#{_header} = the text at the header part of the tablist that will be showed to the player's tablist view
#{_footer} = the text at the footer part of the tablist that will be showed to the player's tablist view

#Examples:
#can be seen below
function packetTabHeaderAndFooter(target: player, header: text, footer: text):

    set {_packet} to new play_server_player_list_header_footer packet
 
    #The following needs of Json.sk to work
    set "chatcomponent" pjson 0 of {_packet} to jsonFormat({_header})
    set "chatcomponent" pjson 1 of {_packet to jsonFormat({_footer})

    send {_target} packet {_packet}

on join:

    wait 3 ticks

    #set up
    packetTabHeaderAndFooter(player, "&3&lValux Network", "&3Website&7: &bvalux.net &3Store&7: &bstore.valux.net &3TS&7: &bts.valux.net")

    hide all players in tablist of player
    set amount of columns in player's tablist to 4
    set amount of rows in player's tablist to 20

    #Webiste
    set tab 1, 1 of player to "<cyan>Website<grey>:"
    set tab 1, 2 of player to "<aqua>valux.net"

    #Rank
    set name of tab 1, 4 of player to "<cyan>Rank<grey>:"
    set name of tab 1, 5 of player to "%player's prefix%" #needs of Vault and a permission manager that supports Vault

    #Server
    set name of tab 1, 7 of player to "<cyan>Server<grey>:"
    set name of tab 1, 8 of player to "<aqua>%current server of player's uuid%" #Needs of SkellettProxy and Skellett properly set up

    #Teamspeak
    set name of tab 2, 1 of player to "<cyan>Teamspeak<grey>:"
    set name of tab 2, 2 of player to "<aqua>ts.valux.net"
 
    #Store
    set name of tab 3, 1 of player to "<cyan>Store<grey>:"
    set name of tab 3, 2 of player to "<aqua>shop.valux.net"

There I gave you a snippet based on the tablist showed in the image. Here is the MundoSK's tablist stuff that you can use (most of them needs of ProtocolLib):

code_language.skript:
%player%'s [mundo[sk]] tab[list] name
[mundo[sk]] tab[list] name of %player%

(%-tablist%|%-player%'s tablist) contains players

new tablist

scores enabled in (%-tablist%|%-player%'s tablist)

tablist name of %player% (in %-tablist%|for %-player%)
%player%'s tablist name (in %-tablist%|for %-player%)

tablist score of %player% (in %-tablist%|for %-player%)
%player%'s tablist score (in %-tablist%|for %-player%)

(show|hide) %players% in (%-tablist%|tab[list] of %player%)

set tablist of %players% to %tablist%
set %player%'s tablist to %tablist%

create tab id %string% (in %-tablist%|for %-player%) with [display] name %string% [(ping|latency) %-number%] [(head|icon|skull) %-skin%] [score %-number%]

delete tab id %string% (in %-tablist%|for %-player%)

delete all id tabs (in %-tablist%|for %-player%)

[display] name of tab id %string% (in %-tablist%|for %-player%)

(latency|ping) of tab id %string% (in %-tablist%|for %-player%)

(head|icon|skull) of tab id %string% (in %-tablist%|for %-player%)

score of tab id %string% (in %-tablist%|for %-player%)

(disable|deactivate) array tablist for %player%

(enable|activate) array tablist for %player% [with [%-number% columns] [%-number% rows] [initial (head|icon|skull) %-skin%]]

[display] name of tab %number%, %number% (in %-tablist%|for %-player%)

(latency|ping) of tab %number%, %number% (in %-tablist%|for %-player%)

(head|icon|skull) of tab %number%, %number% (in %-tablist%|for %-player%)

initial icon of (%-tablist%|%player%'s [array] tablist)

score of tab %number%, %number% (in %-tablist%|for %-player%)

amount of (0¦column|1¦row)s in (%-tablist%|%-player%'s [array] tablist)

Therefore you'll have to figure out how to do something different. You can also do this with Skellett + TablistAPI of InventiveTalent but I didn't really look into that stuff so you might be better asking @LimeGlass for that.
 
  • Like
Reactions: glowgrew
@Pikachu not really, this should be good enough.
code_language.skript:
#Sets header and footer of a player's tablist with packets

#Parameters:
#{_target} = player that this function will change the header and footer of his tablist view.
#{_header} = the text at the header part of the tablist that will be showed to the player's tablist view
#{_footer} = the text at the footer part of the tablist that will be showed to the player's tablist view

#Examples:
#can be seen below
function packetTabHeaderAndFooter(target: player, header: text, footer: text):

    set {_packet} to new play_server_player_list_header_footer packet
 
    #The following needs of Json.sk to work
    set "chatcomponent" pjson 0 of {_packet} to jsonFormat({_header})
    set "chatcomponent" pjson 1 of {_packet to jsonFormat({_footer})

    send {_target} packet {_packet}

on join:

    wait 3 ticks

    #set up
    packetTabHeaderAndFooter(player, "&3&lValux Network", "&3Website&7: &bvalux.net &3Store&7: &bstore.valux.net &3TS&7: &bts.valux.net")

    hide all players in tablist of player
    set amount of columns in player's tablist to 4
    set amount of rows in player's tablist to 20

    #Webiste
    set tab 1, 1 of player to "<cyan>Website<grey>:"
    set tab 1, 2 of player to "<aqua>valux.net"

    #Rank
    set name of tab 1, 4 of player to "<cyan>Rank<grey>:"
    set name of tab 1, 5 of player to "%player's prefix%" #needs of Vault and a permission manager that supports Vault

    #Server
    set name of tab 1, 7 of player to "<cyan>Server<grey>:"
    set name of tab 1, 8 of player to "<aqua>%current server of player's uuid%" #Needs of SkellettProxy and Skellett properly set up

    #Teamspeak
    set name of tab 2, 1 of player to "<cyan>Teamspeak<grey>:"
    set name of tab 2, 2 of player to "<aqua>ts.valux.net"
 
    #Store
    set name of tab 3, 1 of player to "<cyan>Store<grey>:"
    set name of tab 3, 2 of player to "<aqua>shop.valux.net"

There I gave you a snippet based on the tablist showed in the image. Here is the MundoSK's tablist stuff that you can use (most of them needs of ProtocolLib):

code_language.skript:
%player%'s [mundo[sk]] tab[list] name
[mundo[sk]] tab[list] name of %player%

(%-tablist%|%-player%'s tablist) contains players

new tablist

scores enabled in (%-tablist%|%-player%'s tablist)

tablist name of %player% (in %-tablist%|for %-player%)
%player%'s tablist name (in %-tablist%|for %-player%)

tablist score of %player% (in %-tablist%|for %-player%)
%player%'s tablist score (in %-tablist%|for %-player%)

(show|hide) %players% in (%-tablist%|tab[list] of %player%)

set tablist of %players% to %tablist%
set %player%'s tablist to %tablist%

create tab id %string% (in %-tablist%|for %-player%) with [display] name %string% [(ping|latency) %-number%] [(head|icon|skull) %-skin%] [score %-number%]

delete tab id %string% (in %-tablist%|for %-player%)

delete all id tabs (in %-tablist%|for %-player%)

[display] name of tab id %string% (in %-tablist%|for %-player%)

(latency|ping) of tab id %string% (in %-tablist%|for %-player%)

(head|icon|skull) of tab id %string% (in %-tablist%|for %-player%)

score of tab id %string% (in %-tablist%|for %-player%)

(disable|deactivate) array tablist for %player%

(enable|activate) array tablist for %player% [with [%-number% columns] [%-number% rows] [initial (head|icon|skull) %-skin%]]

[display] name of tab %number%, %number% (in %-tablist%|for %-player%)

(latency|ping) of tab %number%, %number% (in %-tablist%|for %-player%)

(head|icon|skull) of tab %number%, %number% (in %-tablist%|for %-player%)

initial icon of (%-tablist%|%player%'s [array] tablist)

score of tab %number%, %number% (in %-tablist%|for %-player%)

amount of (0¦column|1¦row)s in (%-tablist%|%-player%'s [array] tablist)

Therefore you'll have to figure out how to do something different. You can also do this with Skellett + TablistAPI of InventiveTalent but I didn't really look into that stuff so you might be better asking @LimeGlass for that.
Non of them worked for me, and it makes me not able not join my server, I think i have all of the things i need
 
Non of them worked for me, and it makes me not able not join my server, I think i have all of the things i need
That is a MundoSk bug. Get the newest MundoSk as Snow said read the main thread. Or uninstall it if it's not making Skellett's work for some reason? I think you mean only MundoSk isn't working. Just upgrade to a newer version and you should be fine.
 
That is a MundoSk bug. Get the newest MundoSk as Snow said read the main thread. Or uninstall it if it's not making Skellett's work for some reason? I think you mean only MundoSk isn't working. Just upgrade to a newer version and you should be fine.
I think i have the newest version, I went to "Resources" and downloaded the version in there, but i dont know if its that i need
 
I'm also have the beta verison of MundoSK, and whenever I try this simple code >>

code_language.skript:
on join:
    set amount of columns in player's array tablist to 4
    set amount of rows in player's tablist to 20 #This creates a 4 x 20 grid of tabs in the player's tablist
    set display name of tab 1, 1 for player to "Hello!" #This sets the first tab as "Hello!"
    set icon of tab 4, 20 for player to alex #This sets the icon of the last tab as the alex skin
    set display name of tab 4, 20 for player to "ALEX" #This sets the last tab as "ALEX!"

I think that the custom tab stuff, doesn't work on 1.8, because that's the version Tiger and I have.

And if its possible to make it in version 1.8.8