Scoreboard



The scoreboard system is a complex gameplay mechanic utilized through commands. Mainly intended for mapmakers and server operators, scoreboards are used to track, set, and list the scores of entities in a myriad of different ways.

Objectives
Objectives each have three main parameters: A name, a criterion, and a display name. Objectives track a number of points for entities, and are displayed as integers with a full score range of -2,147,483,648 to 2,147,483,647.

An objective's name is used internally for referencing in commands, target arguments, and the file format. It enforces the 16-character name length limit in commands. $$, the allowed character set for it includes all lowercase and uppercase letters, numbers, underscore, period, minus and plus. $$, it can contain any character.

An objective's display name is a raw JSON text and is displayed publicly in various situations. It does not have to be unique.

An objective's criterion determines its behavior&mdash;primarily what to track. Lists of valid criteria are provided below.

An entity's score in any objective can be changed via commands unless it's read-only. It can be increased by, decreased by, or set to a given amount. Player statistics are stored separately, and as they update, scores in these objectives are updated in parallel.

A score holder is a player's name or an entity's UUID that has scores in an objective. Scores of non-player entities can be changed only by commands, and not by game events. Unlike players, when a non player entity dies, its scores are deleted.

Commands can check entity scores by using target selection with the  argument (syntaxed  . This argument uses to specify the internal name of the tested-for objective.


 * For example, inputting into a command block triggers a comparator or conditional command block if any player has died at least once, assuming "deaths" is an objective of the "deathCount" criterion.

Single criteria
These criteria's names consist of a single alphabetical string.

Compound criteria
Compound criteria's names are divided into parts, delimited with periods (.). For example,  is a valid compound criterion, under which player scores would increment whenever they're killed by zombie.

All statistics can be used as a compound criterion whose name is its namespaced ID.

In addition, there are some other compound criteria:

{| class="wikitable" style="width:100%" data-description="Compound criteria" ! Criteria base name ! Description ! Number of sub-criteria




 * teamkill.
 * Sub-criteria include team colors. Player scores increment when a player kills a member of the given colored team.

These criteria follow the complete format, where   is a color from the list:
 * style="text-align:center"|16




 * killedByTeam.
 * Sub-criteria include team colors. Player scores increment when a player has been killed by a member of the given colored team.

These criteria follow the complete format, where   is a color from the list:


 * style="text-align:center"|16
 * }

All objectives based on compound criteria can be modified with commands.

Bedrock Edition
Currently,  is the only criterion supported. As such, score can only be changed by commands.

Display slots


Via the command (see command reference), players' scores in specific objectives can be displayed in certain 'slots' in-game. Each 'display slot' can show one objective at a time, and multiple 'display slots' may be used for the same or different objectives.

NBT format
The file scoreboard.dat in the 'data' folder of a Minecraft world stores the scoreboard data for that world as a GZip'd NBT file:


 * The root tag.
 * : The scoreboard data.
 * : A list of compound tags representing objectives.
 * An objective.
 * : The criterion of this objective.
 * : The display name of this objective in JSON. If none was specified during the objective's creation, this is set to.
 * : The internal name of this objective.
 * : The way the score is displayed. Can be "integer" or "hearts", but defaults to "integer".
 * : A list of compound tags representing scores tracked by the scoreboard system.
 * A tracked player/objective pair with a score.
 * : The score this player has in this objective.
 * : The name of the player who has this score in this objective.
 * : The internal name of the objective which this player has this score in.
 * : 1 or 0 (true/false) - false if this objective is "enabled". Only meaningful for objectives with the criteria "trigger", where this must be false before a player can use the /trigger command on it.
 * : A list of compound tags representing teams.
 * A Team.
 * : 1 or 0 (true/false) - true if players on this team can harm each other.
 * : 1 or 0 (true/false) - true if players on this team can see invisible teammates.
 * : The value of the nametagVisibility option of this team.
 * : The value of the deathMessageVisibility option of this team. Valid options are: never, hideForOtherTeams, hideForOwnTeam, always
 * : The value of the collisionrule option of this team. Valid options are: always, pushOwnTeam, never, pushOtherTeams
 * : The display name of this team in JSON. If none was specified during the team's creation, this is set to.
 * : The internal name of this team.
 * : The prefix prepended to names of players on this team. In JSON format.
 * : The suffix appended to names of players on this team. In JSON format
 * : The text-based color ("black", "dark_blue", etc.) given to the team. Does not exist if no color is set.
 * : A list of names of players on this team.
 * The name of a player on this team.
 * : A set of slots which are displaying specific objectives. If a slot is empty, its tag is not present.
 * : The internal name of the objective displayed in the "list" slot.
 * : The internal name of the objective displayed in the "sidebar" slot.
 * : The internal name of the objective displayed in the "belowName" slot.
 * : The internal name of the objective displayed in the "sidebar.team.black" slot.
 * : The internal name of the objective displayed in the "sidebar.team.dark_blue" slot.
 * : The internal name of the objective displayed in the "sidebar.team.dark_green" slot.
 * : The internal name of the objective displayed in the "sidebar.team.dark_aqua" slot.
 * : The internal name of the objective displayed in the "sidebar.team.dark_red" slot.
 * : The internal name of the objective displayed in the "sidebar.team.dark_purple" slot.
 * : The internal name of the objective displayed in the "sidebar.team.gold" slot.
 * : The internal name of the objective displayed in the "sidebar.team.gray" slot.
 * : The internal name of the objective displayed in the "sidebar.team.dark_gray" slot.
 * : The internal name of the objective displayed in the "sidebar.team.blue" slot.
 * : The internal name of the objective displayed in the "sidebar.team.green" slot.
 * : The internal name of the objective displayed in the "sidebar.team.aqua" slot.
 * : The internal name of the objective displayed in the "sidebar.team.red" slot.
 * : The internal name of the objective displayed in the "sidebar.team.light_purple" slot.
 * : The internal name of the objective displayed in the "sidebar.team.yellow" slot.
 * : The internal name of the objective displayed in the "sidebar.team.white" slot.