Objectives are a combination of name, display name, and criteria, and track an integer number of points for players. The full score range is -2,147,483,648 to 2,147,483,647, and does not support decimals.
An objective's name is used internally when referenced in commands, target arguments, and in the file format. It is case-sensitive and must be a single word.
Conversely, the display name can be multiple words, and is displayed publicly in various situations. It is also case-sensitive, and does not have to be unique.
An objective's criteria determines its behavior:
|Criteria||Description||Can be Modified?|
|dummy||Score is only changed by commands, and not by game events such as death. This is useful for event flags, state mappings, and currencies.||Yes|
|deathCount||Score increments automatically for a player when they die.||Yes|
|playerKillCount||Score increments automatically for a player when they kill another player.||Yes|
|totalKillCount||Score increments automatically for a player when they kill another player or a mob.||Yes|
|health||Ranges from 0 to 20 on a normal player; represents the amount of half-hearts the player has. May appear as 0 for players before their health has changed for the first time. Extra hearts and absorption hearts also count to the health score, meaning that with Attributes/Modifiers or the Health Boost or Absorption Status effects, health can far surpass 20.||No|
In snapshot 13w36a, hundreds of new criteria were added. These criteria use the Statistics and Achievements systems to form compound criteria. Unlike the simple criteria above, compound criteria have multiple parts, separated by periods ("."). For example, "stat.entityKilledBy.Zombie" would be a compound criterion, which would increment for a player whenever a zombie kills them .
A list of known compound criteria follows:
|Criteria Base||Description||Can be Modified?||Number of sub-criteria|
|achievement||Accepted sub-criteria are: "makeBread", "bakeCake", "diamondsToYou", "killCow", "portal", "buildFurnace", "buildSword", "cookFish", "enchantments", "mineWood", "openInventory", "exploreAllBiomes", "buildWorkBench", "theEnd", "blazeRod", "spawnWither", "buildBetterPickaxe", "acquireIron", "theEnd2", "bookcase", "flyPig", "ghast", "snipeSkeleton", "diamonds", "killWither", "fullBeacon", "buildHoe", "breedCow", "onARail", "overkill", "killEnemy", "potion", "buildPickaxe". Value is dependent on how many times the player has gotten the achievement (e.g. if a player has picked up three blocks of wood, their score for an objective with the "achievement.mineWood" criterion will be 3).||Yes||33|
|stat||Base for criteria related to a player's statistics. Accepted sub-criteria are: "damageDealt", "damageTaken", "leaveGame", "minecartOneCm", "swimOneCm", "walkOneCm", "horseOneCm", "pigOneCm", "flyOneCm", "boatOneCm", "fallOneCm", "climbOneCm", "diveOneCm", "fishCaught", "junkFished", "treasureFished", "playOneMinute", "playerKills", "mobKills", "animalsBred", "jump", "drop", "deaths". Score increments automatically for a player when they perform the action specified by the sub-criterion.||Yes||23|
|stat.craftItem||The sub-criteria are the ID number of a block or item. Only IDs of craftable or smeltable blocks and items are accepted. The value increments when the block or item is removed from a furnace, crafting table, or the inventory's crafting field. Clicking to remove increments the value by one, but shift-clicking increments it by two.
|stat.useItem||The sub-criteria are the ID number of a block or item. Any block or item ID is accepted, except for 0, 26, 34, 36, 55, 59, 63, 64, 68, 71, 74, 75, 83, 92, 93 ,94, 104, 105, 115, 117, 118, 124, 132, 140, 144, 149, 150, and other such blocks which do not have an item form. The value increments when a player uses a block or item. "Use" is defined as when:
The value, however, does not increment when any milk, potions, or any "foodstuffs" is consumed; items are used to name, tame, feed, breed, saddle, or leash mobs; when a new item is created through use, like when an empty map becomes a map, when a bucket becomes a lava bucket, water bucket, or milk or vice versa, or when a bowl becomes mushroom stew; and all instances mentioned above.
|stat.breakItem||The sub-criteria are the ID number of an item with durability. The value increments when the durability runs out. The durability runs out when the condition for losing durability for the item is met, and the durability becomes negative, which is the first use after the durability is zero.||Yes||50|
|stat.mineBlock||The sub-criteria are the ID number of a block. Any block ID is accepted, except for 0, 7, 8, 9, 10, 11, 26, 34, 36, 51, 52, 55, 59, 63, 64, 68, 71, 74, 75, 83, 92, 93, 94, 96, 104, 105, 117, 118, 124, 132, 140, 141, 142, 144, and 149, 150. This increments when a player mines a block. "Mine" is defined as when a player destroys a block in a way that an item could/would drop, unless the block does not drop items like glass, or another block would be created like ice. The value does not increase when in Creative mode and will still increase if doTileDrops is set to false.||Yes||134|
|stat.killEntity||The sub-criteria are the name of an entity. Valid names are: "Silverfish", "Ozelot", "Zombie", "Blaze", "Pig", "Creeper", "Cow", "Ghast", "Witch", "Squid", "Spider", "Villager", "Enderman", "LavaSlime", "PigZombie", "Wolf", "Sheep", "EntityHorse", "Chicken", "Slime", "Skeleton", "Bat", "MushroomCow", "CaveSpider". Increments when a player has killed the specified mob.||Yes||24|
|stat.entityKilledBy||The sub-criteria are the name of an entity. Valid names are: "Wolf", "Ozelot", "Enderman", "Slime", "LavaSlime", "Spider", "Creeper", "Bat", "Squid", "PigZombie", "Silverfish", "Skeleton", "Witch", "EntityHorse", "Pig", "Blaze", "Sheep", "MushroomCow", "CaveSpider", "Villager", "Zombie", "Chicken", "Cow", "Ghast". Increments when a player has been killed by the specified mob.
Note that if the name of a passive mob is used the value will never increase, as those mobs are not capable of hurting the player.
A player's score in any objective may be changed via commands, unless it is read-only (currently, only objectives with the 'health' criteria are read-only). It may be increased or decreased by a specific amount, or set to a specific value. For objectives based upon stats or achievements, the objective can be changed via commands, however the actual stat or achievement doesn't change. The objective will continue to update with changes in stats or achievements.
Command blocks can also be used to check a player's score for any objective, with the arguments score_name and score_name_min. In these arguments, name is the internal name of the objective to test for. score_name passes players with at most the specified number of points, while score_name_min passes players with at least the specified number of points.
For example, "testfor @p[score_deaths=5,score_deaths_min=1]" in a Command Block will make a comparator provide output if a player has died at least once and has died no more than 5 times, assuming "deaths" is an objective of the "deathCount" criteria.
 Display slots
Via the "scoreboard objectives setdisplay" 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.
|list||Displays a yellow number without a heading on the tab menu, where online players are shown. Visible even in singleplayer.|
|sidebar||Shows on the right hand side of the screen. Shows players in a high score list with a heading labeled the objective's display name. Note that offline players may be shown, and untracked players will not be shown.|
|belowName||Shows the score followed by the objective's display name below the player's nameplate above their head. Is hidden beyond ~10 blocks and when the player is sneaking. Not visible in singleplayer.|
Teams are a combination of name, display name, prefix, suffix, friendly fire option, and a list of players who are on the team.
As with objectives, the name and display name of a team are case-sensitive, name is a single word used internally, and display name can be multiple words and does not need to be unique.
The prefix and suffix are inserted before and after the names of players on a team - without using external editors, the only possible prefixes are formatting codes for team colors, and the only possible suffix is the reset code (so characters after a player's name aren't formatted). Prefixes and suffixes will be added to the names of players in chat, the active players list, the sidebar, and above their heads.
The friendly fire option allows control of whether team members can harm each other. Its default mode, "true", makes no changes to PvP mechanics. When set to "false", however, it prevents players on the same team from causing damage to each other with melee attacks, bows, and Splash Potions of Harming. Note that players on the same team may still inflict negative status effects on each other with potions, even if friendly fire is false.
It is important to note that each individual player can only be on one team; teams cannot share players.
Command blocks can be used to check whether a player is on a team with the "team" argument; the "!" character may be placed before a name to check for players not on the team. For example, "testfor @p[team=red]" in a Command Block will provide comparator output if a player is on the "red" team. Similarly, "testfor @p[team=!red,team=!blue]" will provide output for players who are neither on "red" nor "blue". Also, if checking for a blank team, the game will actually check for all players without a team.
 Command reference
|Command||Description||Success Conditions[note 1]|
|scoreboard <objectives|players|teams>||The base command of the scoreboard system.||N/A|
|scoreboard objectives list||Lists all existing objectives, with their display name and criteria.||The scoreboard must have at least one objective.|
|scoreboard objectives add <name> <criteria> [display name...]||Creates a new objective with the internal name name, specified criteria, and the optional display name. Without a specified display name, it will default to name. See above section for the meaning of these properties. All arguments are case-sensitive.||name must not be used by an existing objective, and must be at most 16 characters. criteria must be a valid criteria type. display name must be at most 32 characters.|
|scoreboard objectives remove <name>||Deletes all references to the objective with name in the scoreboard system. Data is deleted from the objectives list, player scores, and if it was on a display list, it will no longer be displayed.||name must be an existing objective.|
|scoreboard objectives setdisplay <slot> [objective]||Displays score info for objective in the specified slot. Valid slots are "list", "sidebar" and "belowName". "list" will display score information in the player list (default Tab key), in yellow text to the right of each player's name, and will not display the objective name. "sidebar" will display score information on the right side of the screen at all times, and will display the objective's display name at the top of the list. Even players who are not online, but have a score in this objective, will be displayed in "sidebar". "belowName" will display score below the nametag above the player (only visible in multiplayer). Note that the objective parameter is optional: if no objective is provided, this display slot is cleared (returned to its default state).||objective must exist, if it is specified. slot must also exist. Note that clearing an empty slot will still succeed.|
|scoreboard players list [playername]||Displays all players who are tracked, in some way, by the scoreboard system. The optional playername parameter can be used to display all scores of a particular player.||playername must have recorded scores, if specified. If no playername is specified, there must be at least one tracked player on the scoreboard.|
|scoreboard players set <player> <objective> <score>||Sets the player's score in objective to score, overwriting the previous score if it exists. Note that currently, a bug prevents setting scores of offline players.||objective must exist and cannot be read-only, and score must be between -2,147,483,648 and 2,147,483,647, inclusive. Note that player does not need to be online or even exist.|
|scoreboard players add <player> <objective> <count>||Increments the player's score in objective by count.||objective must exist and cannot be read-only, and count must be between 1 and 2,147,483,647, inclusive. Note that player does not need to be online or even exist.|
|scoreboard players remove <player> <objective> <count>||Decrements the player's score in objective by count.|
|scoreboard players reset <player>||Deletes all scores for player. Note that this applies to all objectives, and does not merely set them to 0: it removes the player from the scoreboard altogether.||Always succeeds, even on players who are not on the scoreboard.|
|scoreboard teams list [teamname]||Lists all teams, with their display names and the amount of players in them. The optional teamname parameter can be used to display all players on a particular team.||If teamname is specified, it must exist and must have players. If no teamname is specified, there must be at least one registered team on the scoreboard.|
|scoreboard teams add <name> [display name...]||Creates a team with the given name and optional display name.||name must not be used by an existing team, and must be at most 16 characters. display name must be at most 32 characters.|
|scoreboard teams remove <name>||Deletes the named team from the scoreboard system.||name must be an existing team.|
|scoreboard teams empty <name>||Removes all players from the named team.||name must be an existing team, and the team must have at least one player.|
|scoreboard teams join <team> [players...]||Assigns the specified players to the specified team. If no player is specified, the player running the command joins the team.||team must exist. Note that the named players do not need to be online or even exist, and can even already be on the team.|
|scoreboard teams leave [players...]||Makes the specified players leave their teams. If no player is specified, the player running the command leaves their team.||Each player must be on a team - it is possible to get a partial success and partial failure, but a command block will report only the failure.|
|scoreboard teams option <team> <color|friendlyfire|seeFriendlyInvisibles> <value>||The base command for team-specific settings.||N/A|
|scoreboard teams option <team> color <value>||Will color the name of all players on this team in chat, above their head, on the Tab menu, and on the sidebar. Valid color values are "black", "dark_blue", "dark_green", "dark_aqua", "dark_red", "dark_purple", "gold", "gray", "dark_gray", "blue", "green", "aqua", "red", "light_purple", "yellow", and "white". Another valid value is "reset" (names show in default color and formatting).||team must exist, and value must be a valid value.|
|scoreboard teams option <team> friendlyfire <true|false>||The default setting, true, has no impact on PvP mechanics. When set to false, players on this team cannot harm each other with melee, bow, or Splash Potion of Harming attacks, but may still inflict negative status effects on each other.||team must exist, and the setting must be "true" or "false".|
|scoreboard teams option <team> seeFriendlyInvisibles <true|false>||When set to true, players on this team will see invisible teammates (and themselves) as semi-transparent instead of completely invisible.||team must exist, and the setting must be "true" or "false".|
- A command's Success Conditions must be met in order for the game to consider the command "successful". This is used to determine a variety of things, such as the output of a Redstone Comparator feeding from Command Block with a command. Note that not all "successful" commands actually do something, and not all "failed" commands fail to do something useful.
 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.
- data: The scoreboard data.
- Objectives: A list of compound tags representing objectives.
- An objective.
- CriteriaName: The criteria of this objective. Must be "dummy", "deathCount", "playerKillCount", "totalKillCount", or "health".
- DisplayName: The display name of this objective. If none was specified during the objective's creation, this will be identical to the Name tag below.
- Name: The internal name of this objective.
- An objective.
- PlayerScores: A list of compound tags representing scores tracked by the scoreboard system.
- A tracked player/objective pair with a score.
- Score: The score this player has in this objective.
- Name: The name of the player who has this score in this objective.
- Objective: The internal name of the objective which this player has this score in.
- A tracked player/objective pair with a score.
- Teams: A list of compound tags representing teams.
- A Team.
- AllowFriendlyFire: 1 or 0 (true/false) - true if players on this team can harm each other.
- SeeFriendlyInvisibles: 1 or 0 (true/false) - true if players on this team can see invisible teammates.
- DisplayName: The display name of this team. If none was specified during the team's creation, this will be identical to the Name tag below.
- Name: The internal name of this team.
- Prefix: The prefix prepended to names of players on this team. Ordinarily, it is a Formatting Code.
- Suffix: The suffix appended to names of players on this team. Ordinarily, it the reset code, "§r", to prevent formatting from spilling over, but it may be blank if prefix is also blank.
- Players: A list of names of players on this team.
- The name of a player on this team.
- A Team.
- DisplaySlots: A set of slots which are displaying specific objectives.
- slot_0: The internal name of the objective displayed in the "list" slot.
- slot_1: The internal name of the objective displayed in the "sidebar" slot.
- slot_2: The internal name of the objective displayed in the "belowName" slot.
- Objectives: A list of compound tags representing objectives.
- data: The scoreboard data.
|13w05a||Added team based functionality to scoreboards.|
Issues relating to "Scoreboard" are maintained on Mojira. Report issues there.