Minecraft – How to make that when a team gets a specific amount of kills the player wins

minecraft-commandsminecraft-java-edition

The aim of the game is that there will be two teams facing each other, with a shop system at the spawn of each team. The currency of the shop will be by paying using emeralds. I want to make that each time a player gets a kill on an enemy player, the killer will receive 3 emeralds, and when one team gets 100 kills, that team wins the game.

I've already added the teams to the scoreboard, but I don't know how to make that whenever a team reaches a hundred kills the team wins, and I also don't know how to give an emerald to a player that recently killed an enemy.

Best Answer

If each player has individual scores, the first step would be to add them all up into one cohesive team score. One way to do this would be to use a fake player for each team.

Setup:

/scoreboard objectives add teamScore dummy

Run whenever you want to update the scores:

/scoreboard players set red teamScore 0
/scoreboard players operation red teamScore += @a[team=red] enemyKills
/scoreboard players set blue teamScore 0
/scoreboard players operation blue teamScore += @a[team=blue] enemyKills

This will create two scores in teamScore. One named red with the combined enemyKills scores of everyone on the red team, and one named blue with the combined enemyKills scores of everyone on the blue team.

To test if a team has won:

/scoreboard players test red teamScore 100

will test if the red team has won, while

/scoreboard players test blue teamScore 100

will test if the blue team has won.

Obviously, you don't have to use red and blue for the team names, and you could do this for more teams if necessary. And you don't need to use enemyKills for your scoreboard objective, the names were just arbitrarily chosen and could be any valid name.

Hope this helps! If you find anything unclear, just comment below.