Scoreboard

From Better Than Wolves 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.

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 Read-only?
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. No
deathCount Score increments automatically for a player when they die. No
playerKillCount Score increments automatically for a player when they kill another player. No
totalKillCount Score increments automatically for a player when they kill another player or a mob. No
health Ranges from 0 to 20; represents the amount of half-hearts the player has. May appear as 0 for players before their health has changed for the first time. Yes

A player's score in any objective may be changed via commands, unless it is read-only. It may be increased or decreased by a specific amount, or set to a specific value.

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.

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 offline players may 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

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 a single 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<ref group="note" name="success">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.</ref>
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. Always succeeds.
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, else the objective will be created with a displayname identical to name and the command will seem to fail.
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.
scoreboard players set <player> <objective> <score> Sets the player's score in objective to score, overwriting the previous score if it exists. objective must exist, 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 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.
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, else the team will be created with a displayname identical to name and the command will seem to fail.
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. The help text says that the subcommand is "clear", not "empty"; bug? 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". Other valid values are "reset" (names show in default color and formatting), "obfuscated" (same as effect seen in obfuscated parts of the End Poem), "bold", "strikethrough", "underline", and "italic". See Formatting Codes for information about how these will appear. 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".

<references group="note"/>

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.
      •  PlayerScores: A list of compound tags representing scores tracked by the scoreboard system.
      •  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.
      •  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.

History

Template:History Template:History Template:History Template:History

Issues

Template:Issue list

Gallery

Template:Gameplay Template:Minecraft