Skip to content

Scoreboard

Read objectives, scores, display slots and teams.

scoreboard is read-only, since writing would only desync your view. Every function returns nil with no world loaded.

Function Returns
scoreboard.objectives() Every objective handle
scoreboard.objective(name) One by internal name, or nil
scoreboard.display(slot) The objective in a slot: "sidebar", "list", "below_name", "sidebar.team.red", …
scoreboard.sidebar() The sidebar you actually see, team-color slot first
scoreboard.teams() Every team handle
scoreboard.team(name) One by internal name, or nil
scoreboard.team_of(holder) Team of a score holder (player name), or nil
scoreboard.holders() Every score holder name the scoreboard knows

Objective and team handles are live; the text they return are text snapshots.

Objective

Method Returns
name() Internal name
display_name() Sidebar title as text
criterion() "dummy", "health", "playerKillCount", …
render_type() "integer" or "hearts"
slots() Display slots it occupies, empty when hidden
score(holder) One holder’s score, or nil
entries() Every score row, sorted like the sidebar: value descending, then name

An entry is {owner, value, hidden, name, decorated_name, formatted_value}, where name is the row text, decorated_name adds the team prefix, suffix and color, and formatted_value is the score as the sidebar renders it. The vanilla sidebar skips hidden rows and shows at most 15.

Team

Method Returns
name(), display_name(), formatted_name() Internal name, display name, bracketed form used in death messages
prefix(), suffix() Text around member names
color(), color_rgb() Formatting name ("red", "reset" when unset) and 0xAARRGGBB, or nil
members() Member score holder names
decorate(text_or_string) Wraps a name in the team prefix, suffix and color
friendly_fire(), show_friendly_invisibles() Team flags
nametag_visibility(), death_message_visibility() "always", "never", "hideForOtherTeams", "hideForOwnTeam"
collision_rule() "always", "never", "pushOtherTeams", "pushOwnTeam"

Entities answer e:team() and e:team_color() directly, which is what ESP coloring wants.

local sidebar = scoreboard.sidebar()
if sidebar then
    print(sidebar:display_name():string())
    for _, entry in ipairs(sidebar:entries()) do
        if not entry.hidden then
            print(entry.decorated_name:string() .. "  " .. entry.value)
        end
    end
end

local team = scoreboard.team_of("Notch")
if team then
    chat.print(team:decorate("Notch"):hover_text("on " .. team:name()))
end
Navigation

Type to search…

↑↓ navigate↵ selectEsc close