Harry Potter House Points-like Plugin

Hello, lovelies.
I am looking for / requesting a 1.12.2 sponge plugin that acts sort of like the house points in Harry Potter.
I am wanting to set up different teams, similar to the different houses. The players can join whichever team they prefer, and every month, the team’s players complete quests / events / etc and can gain points.
I’d like the plugin to have commands to add and subtract points from houses / players.
For example, Player 1 completes a quest and gets 5 points. The points are then added to that person’s team’s pool for that month.
Perhaps the points could be displayed in a sign or holograph.

If this is something you can do, please respond.^^

1 Like

Are you asking for a whole quest system, or just something to track points?

Because you could pretty easily accomplish that with a few aliases with scoreboards.

I’m hoping for it to just track the points. I’d like to set up quests with, say, an NPC plugin where the player has to talk to Person 1 to start the quest, then deliver an item to Person 2. Person 2 would be the complete of the quest and give that person’s team 5 points.

If you are willing to use command blocks, there is a pretty straightforwards way to do this with scoreboards.

First, you would want to setup your scoreboards:

/scoreboard objectives add Points dummy Points
/scoreboard objectives setdisplay sidebar Points

Then you would setup each team as follows:

/scoreboard teams add <team>
/scoreboard players set <team> Points 0

For example, for a team Griffindor:

/scoreboard teams add Griffindor
/scoreboard players set Griffindor Points 0

For every player you want participating in the quests, you would have them join the team they participate in.

/scoreboard teams join <team> <player>
/scoreboard players set <player> Points 0

Lastly, in a command block that is on repeat OR a function that runs in the game loop, you would have something like this function:

/scoreboard players set temp Points 0
/scoreboard players operation temp Points += @a[team=Griffindor] Points
/scoreboard players operation Griffindor Points = temp Points

This must be repeated for every team you have, but once you have decided on the teams you want you can create this in a function then leave it. It is important that these commands run in sequence so I would recommend sticking this in a function file.

Finally, in game, when you want to reward a player for doing something, you would type:

/scoreboard players <player> add Points <x>

The game will automatically add their points to the sidebar, which will display the top players points. Since we made each team a ‘Player’, so to speak, the top teams will be on top of the leaderboard. If you want to completely hide players, you would make player points a separate objective, and change the function to:

/scoreboard players set temp playerpoints 0
/scoreboard players operation temp playerpoints+= @a[team=Griffindor] playerpoints
/scoreboard players operation Griffindor Points = temp playerpoints

Which might look nicer, but you have to remember to set points of players to playerpoints and not Points.

2 Likes

@Wundero to add onto this, Minecraft functions can probably be used to this effect, in order to change it from being command blocks or multiple commands to a single command alias.

I did think about that, but I figured a plugin would be a lot easier and allow staff to use them, as well.