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. The allowed character set for it includes all lowercase and uppercase letters, numbers, underscore, period, minus and plus.

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.

Criteria
$$, there are some compound criteria. Unlike the simple criteria above, compound criteria have sub-parts in their names, delimited with periods (.). For example, "minecraft.killed_by:minecraft.zombie" is a valid compound criterion, under which player scores would increment whenever they're killed by zombie.

All objectives based on compound criteria can be modified with commands. A list of known compound criteria $$ follows:

{| class="wikitable" style="width:100%" data-description="Compound criteria" ! Criteria Base Name ! Description ! Can be Modified? ! 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
 * 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 statistics ids can also be criteria. Objectives based on statistics can be modified with 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.