Namespaces

Variants

Share

Share
Views
Actions

Scoreboard

From Minecraft Wiki
Jump to: navigation, search

The scoreboard system is a complex gameplay mechanic intended mostly for map makers. It is used via commands and command blocks.

Contents

[edit] Objectives

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
trigger Score is only changed by commands, and not by game events such as death. The /trigger command can be used by a player to set or increment/decrement their own score in an objective with this criteria. The /trigger command will fail if the objective has not been "enabled" for the player using it, and the objective will be disabled for the player after they use the /trigger command on it. Note that the /trigger command can be used by ordinary players even if Cheats are off and they are not an Operator. This is useful for player input via /tellraw interfaces. 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

Some criteria use the Statistics and Achievements systems to form compound criteria.[1] 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.[2]

A list of known compound criteria follows:

Criteria Base Description Can be Modified? Number of sub-criteria
achievement Accepted sub-criteria are: "acquireIron", "bakeCake", "blazeRod", "bookcase", "breedCow", "buildBetterPickaxe", "buildFurnace", "buildHoe", "buildPickaxe", "buildSword", "buildWorkBench", "cookFish", "diamonds", "diamondsToYou", "enchantments", "exploreAllBiomes", "flyPig", "fullBeacon", "ghast", "killCow", "killEnemy", "killWither", "makeBread", "mineWood", "onARail", "openInventory", "overkill", "overpowered", "portal", "potion", "snipeSkeleton", "spawnWither", "theEnd", and "theEnd2". 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 34
stat Base for criteria related to a player's statistics. Accepted sub-criteria are: "animalsBred", "boatOneCm", "climbOneCm", "crouchOneCm", "damageDealt", "damageTaken", "deaths", "diveOneCm", "drop", "fallOneCm", "fishCaught", "flyOneCm", "horseOneCm", "jump", "junkFished", "leaveGame", "minecartOneCm", "mobKills", "pigOneCm", "playerKills", "playOneMinute", "sprintOneCm", "swimOneCm", "talkedToVillager", "timeSinceDeath", "tradedWithVillager", "treasureFished", and "walkOneCm". Score increments automatically for a player when they perform the action specified by the sub-criterion. Yes 28
stat.useItem The sub-criteria are the ID number (such as "stat.useItem.1") or ID name (such as "stat.useItem.minecraft.stone") of a block or item. Most blocks and items are accepted, except various 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 items are used on mobs, whether to name, tame, feed, breed, saddle, leash, shear, milk, or gather stew from; when armor is put on directly; when leather armor is washed in a cauldron; and all instances mentioned above.

There are 357 items attainable in creative mode, without using commands and including blocks with similar IDs but different datavalues, that can use this stat and 195 that cannot.

Yes 318 (636)[note 1]
stat.breakItem The sub-criteria are the ID number (such as "stat.breakItem.256") or ID name (such as "stat.breakItem.minecraft.bow") 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 (100)[note 1]
stat.mineBlock The sub-criteria are the ID number (such as "stat.mineBlock.1") or ID name (such as "stat.mineBlock.minecraft.stone") of a block. Most blocks are accepted, except for various indestructible or technical blocks.

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 135 (270)[note 1]
stat.killEntity The sub-criteria are the name of an entity. Valid names are: "Bat", "Blaze", "CaveSpider", "Chicken", "Cow", "Creeper", "Enderman", "EntityHorse", "Ghast", "LavaSlime", "MushroomCow", "Ozelot", "Pig", "PigZombie", "Sheep", "Silverfish", "Skeleton", "Slime", "Spider", "Squid", "Villager", "Witch", "Wolf", and "Zombie". 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: "Bat", "Blaze", "CaveSpider", "Chicken", "Cow", "Creeper", "Enderman", "EntityHorse", "Ghast", "LavaSlime", "MushroomCow", "Ozelot", "Pig", "PigZombie", "Sheep", "Silverfish", "Skeleton", "Slime", "Spider", "Squid", "Villager", "Witch", "Wolf", and "Zombie". 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.

Yes 24
teamkill The sub-criteria are the color of a team. Valid colors 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". Increments when a player has killed a member of a team with the specified color. Yes 16
killedByTeam The sub-criteria are the color of a team. Valid colors 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". Increments when a player has been killed by a member of a team with the specified color. Yes 16
  1. a b c d
    Prior to 14w06a, stat.craftItem, stat.useItem, stat.breakItem, and stat.mineBlock only accepted numeric IDs and not ID names. The addition of ID names means that these compound criteria effectively have double the sub-criteria they previously had, but the new criteria serve the same exact roles as their numeric counterparts. For convenience, the first number listed is the number of blocks/items which these compound criteria accept, and the second is the literal number of sub-criteria.

A player's score in any objective may be changed via commands, unless it is read-only (currently, only objectives with the 'health' criterion 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" criterion.

[edit] 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.

Slot Description
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 players will be shown even if offline, and untracked players will not be shown. In addition, fake players with names starting with a # will not show up in the sidebar under any circumstances.
sidebar.team.<color> There are 16 team-specific sidebar display slots. These operate the same as the standard sidebar slot, but only display to players who are on teams which use the specified color (for example, "sidebar.team.green" displays to players on "green" teams). Valid colors 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".
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.

[edit] Teams

Teams are a combination of name, display name, prefix, suffix, friendly fire options, 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]" will provide output for players who are not on "red". Also, "testfor @p[team=!]" will check for all players on a team, while "testfor @p[team=] will check for those without a team.

[edit] 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 listed and described in Display Slots. 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, and "*" (an asterisk) in place of playername will display all scores for all players tracked by the scoreboard system. 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> [dataTag] Sets the player's score in objective to score, overwriting the previous score if it exists. "*" (an asterisk) may be used in place of player to represent every player tracked by the scoreboard. 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. If player exists and a dataTag is specified, player must match dataTag. Note that dataTag must define the type of tag such as {powered:1b} if looking for powered creepers.
scoreboard players add <player> <objective> <count> [dataTag] Increments the player's score in objective by count. "*" may be used to represent all players tracked by the scoreboard. 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. If player exists and a dataTag is specified, player must match dataTag. Note that dataTag must define the type of tag such as {powered:1b} if looking for powered creepers.
scoreboard players remove <player> <objective> <count> [dataTag] Decrements the player's score in objective by count. "*" may be used to represent all players tracked by the scoreboard.
scoreboard players reset <player> [objective] Deletes score or all scores for player. If objective is specified, only that objective is cleared; otherwise this applies to all objectives. Note this does not merely set the score(s) to 0: it removes the player from the scoreboard altogether (or for the given objective). "*" may be used to represent all players tracked by the scoreboard. Always succeeds, even on players who are not on the scoreboard.
scoreboard players enable <player> <trigger> Enables player to use the /trigger command on the specified trigger objective. Until this has been done, player's attempts to /trigger that objective will fail. Once they have used the /trigger command on it, it will be disabled again. "*" may be used to represent all players tracked by the scoreboard. trigger must be an objective of the criteria "trigger".
scoreboard players test <player> <objective> <min> [max] Outputs whether or not player's score in objective is within the range min to max (inclusive). If not specified or if "*" is used, max defaults to 2,147,483,647. Using a "*" for min means -2,147,483,648. For player "*" may be used to represent all players tracked by the scoreboard. objective must exist, and player's score in it must exist and be at least min and no greater than max. Note that player does not need to be online or even exist.
scoreboard players operation <targetName> <targetObjective> <operation> <selector> <objective> Applies an arithmetic operation altering targetName's score in targetObjective, using selector's score in objective as input.

<operation> may be:

  • "+=" Addition: add selector's score to targetName's
  • "-=" Subtraction: subtract selector's score from targetName's
  • "*=" Multiplication: set targetName's score to the product of targetName and selector's scores
  • "/=" Integer Division: set targetName's score to itself divided by selector's score
  • "%=" Modular Division: set targetName's score to the remainder of the division between itself and selector's score
  • "=" Assign: set targetName's score to selector's score
  • "<" Min: if selector's score is less than targetName's score, then set targetName's score to selector's score
  • ">" Max: if selector's score is greater than targetName's score, then set targetName's score to selector's score
  • "><" Swaps the scores of selector with targetName

In all cases except "><", selector's score in objective will remain unchanged. "*" may be used in place of either targetName or selector (but not both) to represent all players tracked by the scoreboard.

objective and targetObjective must exist, targetObjective cannot be read-only, and all requested targets/selectors must have scores in the specified objectives (if some do and some do not, the operation will succeed only for the combinations where both the target and the selector have a score). Note that player does not need to be online or even exist.
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. "*" may be used to represent all players tracked by the scoreboard. 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...]
scoreboard teams leave <team> [players...]
Makes the specified players leave their teams. If no player is specified, the player running the command leaves their team. "*" may be used to represent all players tracked by the scoreboard. 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 <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".
scoreboard teams option <team> nametagVisibility <never|hideForOtherTeams|hideForOwnTeam|always> Controls the visibility of nametags for players on the given team, and defaults to "always". When set to "never", no nametags will show above any player on the given team. When set to "hideForOtherTeams", only the nametags of players on other teams will be hidden. When set to "hideForOwnTeam", only nametags of other players on one's own team will be hidden. When set to "always", all nametags will be visible. team must exist, and the setting must be "never", "hideForOtherTeams", "hideForOwnTeam", or "always".
scoreboard teams option <team> deathMessageVisibility <never|hideForOtherTeams|hideForOwnTeam|always> Controls the visibility of death messages for players on the given team, and defaults to "always". When set to "never", no death messages will appear in chat for any player on the given team. When set to "hideForOtherTeams", only the death messages of players on other teams will be hidden. When set to "hideForOwnTeam", only death messages of other players on one's own team will be hidden. When set to "always", all death messages will appear in chat. team must exist, and the setting must be "never", "hideForOtherTeams", "hideForOwnTeam", or "always".
  1. 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.

[edit] 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.

          •  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.

          •  RenderType: The type of data to store. Defaults to "integer".

      •  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.

          •  Locked: 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.

      •  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.

          •  NameTagVisibility: The value of the nametagVisibility option of this team.

          •  DeathMessageVisibility: The value of the deathMessageVisibility option of this team.

          •  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 is the reset code, "§r", to prevent formatting from spilling over, but it may be blank if prefix is also blank.

          •  TeamColor: The text-based color ("black", "dark_blue", etc.) given to the team. Does not exist if no color is set.

          •  Players: A list of names of players on this team.

            • The name of a player on this team.

      •  DisplaySlots: A set of slots which are displaying specific objectives. If a slot is empty, its tag is not present.

        •  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.

        •  slot_3: The internal name of the objective displayed in the "sidebar.team.black" slot.

        •  slot_4: The internal name of the objective displayed in the "sidebar.team.dark_blue" slot.

        •  slot_5: The internal name of the objective displayed in the "sidebar.team.dark_green" slot.

        •  slot_6: The internal name of the objective displayed in the "sidebar.team.dark_aqua" slot.

        •  slot_7: The internal name of the objective displayed in the "sidebar.team.dark_red" slot.

        •  slot_8: The internal name of the objective displayed in the "sidebar.team.dark_purple" slot.

        •  slot_9: The internal name of the objective displayed in the "sidebar.team.gold" slot.

        •  slot_10: The internal name of the objective displayed in the "sidebar.team.gray" slot.

        •  slot_11: The internal name of the objective displayed in the "sidebar.team.dark_gray" slot.

        •  slot_12: The internal name of the objective displayed in the "sidebar.team.blue" slot.

        •  slot_13: The internal name of the objective displayed in the "sidebar.team.green" slot.

        •  slot_14: The internal name of the objective displayed in the "sidebar.team.aqua" slot.

        •  slot_15: The internal name of the objective displayed in the "sidebar.team.red" slot.

        •  slot_16: The internal name of the objective displayed in the "sidebar.team.light_purple" slot.

        •  slot_17: The internal name of the objective displayed in the "sidebar.team.yellow" slot.

        •  slot_18: The internal name of the objective displayed in the "sidebar.team.white" slot.

[edit] History

Official release
1.5 13w04a Added scoreboard.
13w05a Added team-based functionality.
1.7.2 13w36a Added statistic-based objective criteria.
Upcoming
1.8 14w02a Entities other than players can now be part of teams and have objective scores.
14w06a Added the trigger and team kill-based objective criteria.
Added /scoreboard players enable.
"*" can be used in a player name argument to represent all players tracked by the scoreboard.
Added the "objective" argument to /scoreboard players reset.
Statistic objective criteria now use named IDs instead of numerical IDs.
Added the achievement.overpowered objective criterion.
14w07a Added /scoreboard players operation and /scoreboard players test.
Scores for fake players that have a name beginning with "#" won't appear in the sidebar.
Added team-specific sidebar display slots.
Added the nametagVisibility team option.
14w10a Added the deathMessageVisibility team option.
Added a dataTag argument to /scoreboard players set, /scoreboard players add, and /scoreboard players remove.
Added the stat.crouchOneCm, stat.sprintOneCm, and stat.timeSinceDeath objective criteria.
14w25a Added =, <, and > to /scoreboard players operation.
14w29a Player/entity names in the sidebar are now secondarily sorted by alphabetical order.
14w30a Added the stat.talkedToVillager and stat.tradedWithVillager objective criteria.

[edit] Issues

Issues relating to "Scoreboard" are maintained on the issue tracker. Report issues there.

[edit] Gallery

[edit] References