/scoreboard
In this tutorial, I will be showing you how to use the /scoreboard command along with showing some example commands.
/scoreboard objectives (add|list|modify|remove|setdisplay)
/scoreboard players (add|enable|get|list|operation|remove|reset|set)
If you have ever coded before in any language, scoreboards are variables. This means each scoreboard you have stores a number for every player and entity. You can change peoples scores, make there score go up when a game event happens (eg. they shoot a bow) and you can test for anyone with a certain score in a selector. They are very powerful.
The /scoreboard command is very complicated at first but once you get use to it and practice they start to make more sense. When I started I didn't get them at all but now I know how it works, /scoreboard has become one of my favorite commands.
/scoreboard has lots of different commands to do separate purposes so I will start with the '/scoreboard objectives' commands.
/scoreboard objectives
This part of the command is used to create, remove, etc. It is essentially the part where you manage your scoreboards.
The first command we will look at is to add a scoreboard, to do this you need to use '/scoreboard objectives add'.
/scoreboard objectives add <name> <criteriaType> [display name ...]
The first argument to '/scoreboard objectives add' is the name, this is uses to make the scoreboard unique to all the rest. Then you need to put in a criteria type. Criteria types are what makes people gain score on the scoreboard.
You can either have one which automatically updates to game events or you can put 'dummy' and its score is only changed by commands, and not by game events such as death. This is useful for event flags, state mappings, and currencies.
If you want it to automatically update, the best way to understand it is to check out this complete list of them here.
/scoreboard objectives (add|list|modify|remove|setdisplay)
/scoreboard players (add|enable|get|list|operation|remove|reset|set)
If you have ever coded before in any language, scoreboards are variables. This means each scoreboard you have stores a number for every player and entity. You can change peoples scores, make there score go up when a game event happens (eg. they shoot a bow) and you can test for anyone with a certain score in a selector. They are very powerful.
The /scoreboard command is very complicated at first but once you get use to it and practice they start to make more sense. When I started I didn't get them at all but now I know how it works, /scoreboard has become one of my favorite commands.
/scoreboard has lots of different commands to do separate purposes so I will start with the '/scoreboard objectives' commands.
/scoreboard objectives
This part of the command is used to create, remove, etc. It is essentially the part where you manage your scoreboards.
The first command we will look at is to add a scoreboard, to do this you need to use '/scoreboard objectives add'.
/scoreboard objectives add <name> <criteriaType> [display name ...]
The first argument to '/scoreboard objectives add' is the name, this is uses to make the scoreboard unique to all the rest. Then you need to put in a criteria type. Criteria types are what makes people gain score on the scoreboard.
You can either have one which automatically updates to game events or you can put 'dummy' and its score is only changed by commands, and not by game events such as death. This is useful for event flags, state mappings, and currencies.
If you want it to automatically update, the best way to understand it is to check out this complete list of them here.
Or you can just tab through them (I do that for everything!)
Once you have selected criteria type then you can optionally have a display name, this is for the sidebar but if you leave this empty it will have its display name the same as its actual name (The difference is display names can have spaces, colour coding and formatting). However adding a display name may seem very complicated.
Display names are written is JSON which is a syntax for storing and exchanging data. You can use this website here to try make a display name if you wish but make sure you paste in the same information I have used in the screenshot below and not ALL of the command given.
Once you have selected criteria type then you can optionally have a display name, this is for the sidebar but if you leave this empty it will have its display name the same as its actual name (The difference is display names can have spaces, colour coding and formatting). However adding a display name may seem very complicated.
Display names are written is JSON which is a syntax for storing and exchanging data. You can use this website here to try make a display name if you wish but make sure you paste in the same information I have used in the screenshot below and not ALL of the command given.
/scoreboard objectives add ShootBow minecraft.used:minecraft.bow ["",{"text":"Is Shooting?","color":"gold","bold":true}]
Your scoreboard objective should now be created! If you are unsure or ever want to check all your scoreboards do:
/scoreboard objectives list
This will send you a list of all your objectives and what criteria type they are.
Your scoreboard objective should now be created! If you are unsure or ever want to check all your scoreboards do:
/scoreboard objectives list
This will send you a list of all your objectives and what criteria type they are.
If you ever want to remove a scoreboard objective you can also do
/scoreboard objectives remove <name>
/scoreboard objectives remove <name>
There is also a command called '/scoreboard objectives setdisplay' where you can make it show on your screen somewhere.
/scoreboard objectives setdisplay <slot> [objective]
Slot is the place you want it to show, here is a complete list of the options.
/scoreboard objectives setdisplay <slot> [objective]
Slot is the place you want it to show, here is a complete list of the options.
Slot
list sidebar sidebar.team.<color> belowName |
Description
Displays a yellow number without a heading on the tab menu, where online players are shown. Visible even in singleplayer. Shows on the right hand side of the screen. Shows entities 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. 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". 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. |
^ Credit to Minecraft Wiki for descriptions ^
Then put the objective name you want to be displayed.
/scoreboard objectives setdisplay sidebar ShootBow
Here is what they all look like:
Then put the objective name you want to be displayed.
/scoreboard objectives setdisplay sidebar ShootBow
Here is what they all look like:
Note if the objective name is shown (for example the sidebar) it will show the display name if there is one. (The screenshots 2/3 are the outdated 1.12 screenshots but you get the idea)
/scoreboard players
This part of the command is used to edit peoples scores in the scoreboard we created in the last part of the command.
Firstly we have the add command:
/scoreboard players add <player> <objective> <count>
This command is used to increase any players score on any objective. The arguments are quite obvious. Here is an example:
/scoreboard players add @e[limit=3,sort=nearest] ShootBow 1
/scoreboard players
This part of the command is used to edit peoples scores in the scoreboard we created in the last part of the command.
Firstly we have the add command:
/scoreboard players add <player> <objective> <count>
This command is used to increase any players score on any objective. The arguments are quite obvious. Here is an example:
/scoreboard players add @e[limit=3,sort=nearest] ShootBow 1
/scoreboard players remove <player> <objective> <count>
You can also do the exact same thing but to remove a score instead.
You may want to set peoples scores instead of adding to their current scores, to do this just use a 'set' instead:
/scoreboard players set <player> <objective> <count>
/scoreboard players set @e[limit=5,sort=nearest] ShootBow 0
However if you are using it for the same example I used above (Reset peoples scores) then instead you can use the 'reset' command:
/scoreboard players reset <player> [objective]
However if you are using it for the same example I used above (Reset peoples scores) then instead you can use the 'reset' command:
/scoreboard players reset <player> [objective]
This makes them not have a score at all instead of having a score of 0, this is what entities have by default.
There are lots of other commands in scoreboard players such as 'list'
/scoreboard players list
And 'operation' which you can add, multiply etc. two scoreboards together. However you do not need to know this for now and these are rarely ever used. If you ever want to look into them just search it on the internet, send me a comment on my youtube channel or try work it out yourself using Tab Completion. Most of these commands are very self explanatory.
There are lots of other commands in scoreboard players such as 'list'
/scoreboard players list
And 'operation' which you can add, multiply etc. two scoreboards together. However you do not need to know this for now and these are rarely ever used. If you ever want to look into them just search it on the internet, send me a comment on my youtube channel or try work it out yourself using Tab Completion. Most of these commands are very self explanatory.
How do I check for a certain score?
Well if you check back on my selectors tutorial you will see a complete list of them all and what to do. However to save you the effort and summarize, you put:
To check for a minimum score on a scoreboard:
@e[scores={NAME=AMOUNT..}]
To check for a maximum score on a scoreboard:
@e[scores={NAME=..AMOUNT}]
To check if a score is between two values on a scoreboard:
@e[scores={NAME=AMOUNT1..AMOUNT2}]
And to check if a score is an exact value on a scoreboard:
@e[scores={NAME=AMOUNT}]
So for example
say @a[scores={ShootBow=5}]
Would say all players who have an exact 'ShootBow' score of 5.
Well if you check back on my selectors tutorial you will see a complete list of them all and what to do. However to save you the effort and summarize, you put:
To check for a minimum score on a scoreboard:
@e[scores={NAME=AMOUNT..}]
To check for a maximum score on a scoreboard:
@e[scores={NAME=..AMOUNT}]
To check if a score is between two values on a scoreboard:
@e[scores={NAME=AMOUNT1..AMOUNT2}]
And to check if a score is an exact value on a scoreboard:
@e[scores={NAME=AMOUNT}]
So for example
say @a[scores={ShootBow=5}]
Would say all players who have an exact 'ShootBow' score of 5.
This was a complicated and long tutorial so if you have any questions, feel free to message me on my YouTube channel! I hope it makes sense as it took a long time to write up and then have to update to 1.13! ~Blue