Sueta

Paintball Battle | Team Minigame | [1.8-1.21.1]

1.11.2

Fully configurable Paintball minigame. KillStreaks, Hats, Perks and more!

·Config

ATTENTION: NO MORE FUNCTIONALITIES WILL BE ADDED TO THIS PLUGIN.

What is Paintball Battle?
Paintball Battle is a minigame which basically consist in 2 teams throwing snowballs to their opponents. At the beginning of the game, both teams have a certain amount of lives. Every time a user is killed, 1 life will be discounted from his team. The first team to reach 0 lives will lose the game.

More Info on the game

- Every hit with a snowball is a kill.
- When you are killed you will spawn in your Team's Spawn.
- When you make a kill you earn KillCoins.
- Multiple arenas can be running at the same time.

To help your team win the battle, you can buy KillStreaks using killcoins, unlock Hats that give you abilities during the game, or permanent perks. Arenas are pretty easy to create, and most of the plugin is configurable.

Requirements and Dependencies:
- SPIGOT (not craftbukkit)
- HolographicDisplays (Optional, for Top Holograms) https://dev.bukkit.org/projects/holographic-displays
- Vault (Optional, for Economy) http://dev.bukkit.org/bukkit-plugins/vault/
- PlaceholderAPI (Optional, for the scoreboard and chat)
https://www.spigotmc.org/resources/placeholderapi.6245/

If you want to help me maintain this project alive, I would be grateful if you donate and support my work :)


- ✓ Fully Configurable

  • Arena Cooldowns, Time and Team Lives.
  • Teams Customization (Name, Color, Item).
  • Inventories Customization.
  • Sounds.
  • Winners Command Rewards.
  • All Messages.

- ✓ 8 KillStreaks (more incoming, you can suggest one!)

KillStreaks
  • More Snowballs (You will receive extra snowballs)
  • Strong Arm (You will throw snowballs at high speed)
  • Triple Shoot (You will throw 3 snowballs at a time)
  • +3 Lives (Regain 3 Lives for your team)
  • Teleport (Teleports you to your death location)
  • Lightning Strike (Kills your sorrounding enemies in a radius)
  • Nuke (Kills all of your enemies)
  • Fury Mode (You will be immune to snowballs, and you won't consume them)

- ✓ 9 Hats (more incoming, you can suggest one!)

Hats
  • Speed Hat (Gives you permanent Speed I)
  • Jump Hat (Gives you Jump I when sneaking for X seconds)
  • Protector Hat (Gives you a small chance of dodging snowballs hits)
  • Time Hat (All of your killstreaks last X more seconds)
  • Guardian Hat (Gives you Invulnerability and Slowness II when sneaking for X seconds)
  • Present Hat (At the start of the game one of your teammates will receive 3 killcoins)
  • Assassin Hat (Killing the user who last killed you will give you an extra killcoin)
  • Chicken Hat (You will shoot eggs instead of snowballs)
  • Explosive Hat (Gives you a small chance of exploding when you are killed, killing nearby enemies)

- ✓ 3 Permanent Perks with Configurable levels

Perks
  • Extra Lives (Allows you to start the game with additional lives)
  • Initial Killcoins (Allows you to start the game with additional killcoins)
  • Extra Killcoins (Allows you to receive additional killcoins when doing a kill)

- ✓ Top Holograms for Wins and Kills (Global, Monthly, Weekly)
- ✓ Multiple Arenas
- ✓ Per Arena Chat
- ✓ Play Again Item
- ✓ Command Whitelist
- ✓ PlaceholderAPI variables and support for Scoreboard and Chat
- ✓ MySQL Database
- ✓ 3 Types of Economies
(Paintball, Vault or TokenManager)
- ✓ API
- ✓ Save players wins, loses, ties, kills
- ✓ Works in 1.8+


Before creating an arena it's important to set the Main Lobby using /paintball setmainlobby

Creating a Paintball arena is very easy, just follow these steps.
1) Use the /paintball create <arena> command.
2) Use the /paintball edit <arena> command to open the GUI Inventory where you can set arena properties.
3) Set the Arena Lobby by clicking the first item. Players will spawn at your location when entering the arena.
4) Set the Team 1 and Team 2 Spawns by clicking the second and third item.
5) You can use the other items to modify some Arena properties like time, amount of starting lives, min and max players and Team colors.

6) Now, use the /paintball enable <arena> command to be able to play on it.
7) Finally, you can create a Sign to join the arena. Just use the following format:
[Paintball]
arena_name


8) If you want to edit the arena again, remember to disable it first using /paintball disable <arena>


Most of the aspects of the plugin are configurable, but NOT ALL OF THEM. If you want something to be modifiable just ask me and I will try to add a config for it!

config.yml Tutorial

#Cooldown to start the game when reaching the minimum amount of players.
arena_starting_cooldown: 20

#Duration of the game.
arena_time_default: 360

#Duration of the last phase when ending the game.
arena_ending_phase_cooldown: 10

#When enabled, players will be able to choose their team before the game starts.
choose_team_system: true

#Lives of each team.
team_starting_lives_default: 100

#Invulnerability period in seconds when a user is killed.
respawn_invulnerability: 4

#How many snowballs will the player receive when doing a kill.
snowballs_per_kill: 8

#The initial amount of snowballs of the players when the game starts.
initial_snowballs: 64

#How many killcoins does the player will receive when doing a kill.
#You can use "-" to set a random number between two numbers. "1-3" means the player could will 1, 2 or 3 killcoins.
coins_per_kill: "1-2"

#When creating a player top hologram using /rvp createtophologram command, how many players should the hologram display?
top_hologram_number_of_players: 10

#How often should the top holograms be updated? (in seconds)
top_hologram_update_time: 300

#Type of economy used for the Paintball Shop. You can use "paintball", "vault" or "token_manager".
economy_used: "paintball"

#If this option is set to true, players will receive the rewards when they are teleported back to the lobby. This allows you to give Item rewards, but if the user leaves the game when the arena is finishing, he won't receive any reward. If the option is set to false, players will receive the rewards inside the arena, just right after finishing the game.
rewards_executed_after_teleport: false

#If enabled, a message will be sent to all players in these worlds when a paintball arena is about to start.
broadcast_starting_arena:
enabled: true
worlds:
- "paintball"
- "lobby"

#Here you can create your own teams to define when setting up an arena. It doesn't necessarily must be the name of a color. You can add your own armor color for each team using the color ID from this link: https://minecraftcommand.science/armor-color
teams:
blue:
name: "&1&lBlue"
color: 18175
item: "BLUE_WOOL"
red:
name: "&4&lRed"
color: 16711680
item: "RED_WOOL"

#These commands will be enabled when playing.
commands_whitelist:
- "/paintball leave"
- "/help"

#Whether the Paintball chat system should be enabled or not.
arena_chat_enabled: true

#The chat format when playing Paintball.
arena_chat_format: "&f<&8[&7%team%&8] &a%player%&f> %message%"

#The leave item will appear when the game is starting and finishing.
leave_item_enabled: true

#The killstreaks item is used for opening the KillStreaks menu and will appear during the game.
killstreaks_item_enabled: true

#The hats item is used to select a hat which gives special abilities before the game.
hats_item_enabled: true

#The play again item will appear when the game is finishing.
play_again_item_enabled: true

#Commands to be executed to the winners/losers/ties of a game.
#You can use the %random% variable to generate a random number, using the final kills of the player, just follow this format:
%random_min-max%
min and max values could be a formula. You can use the 'kills' variable in this formula.

winners_command_rewards:
- "msg %player% &aYou've won! Here, take this reward."
- "paintball givecoins %player% %random_10*kills-20*kills%"

#You need to use a valid sound name for your Minecraft Version
#1.8: https://github.com/Attano/Spigot-1.8/blob/master/org/bukkit/Sound.java
#1.9+: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Sound.html
#Format: "Sound;Volume;Pitch"
killedBySound: "BLOCK_NOTE_BLOCK_PLING;10;0.1"
killSound: "ENTITY_FIREWORK_ROCKET_BLAST;10;2"
expireKillstreakSound: "BLOCK_NOTE_BLOCK_BASEDRUM;10;2"
snowballShootSound: "ENTITY_ARROW_SHOOT;10;0.5"
shopUnlockSound: "ENTITY_FIREWORK_ROCKET_BLAST;10;2"
hatAbilityActivatedSound: "BLOCK_CHEST_OPEN;10;1.5"
explosiveHatSound: "ENTITY_GENERIC_EXPLODE;10;1"
startCooldownSound: "BLOCK_NOTE_BLOCK_PLING;10;1"
startGameSound: "BLOCK_NOTE_BLOCK_PLING;10;2"

#Here you can define the particle to display when throwing snowballs. You should use particles listed here: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Particle.html
Set it to 'none' to not display particles.
snowball_particle: SNOW_SHOVEL

#Players will be able to buy killstreaks during a game using killcoins. Each of the killstreaks have their own properties.
#You need to use a valid item Name for your Minecraft Version
#1.8-1.12: https://helpch.at/docs/1.8/org/bukkit/Material.html
#1.13+: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Material.html
#For the activateSound the format is "sound;volume;pitch;global" If you add the "global" argument it means all of the players in the game will hear it.
#You can disable a killstreak by setting the slot to -1
killstreaks_items
more_snowballs:
item: SNOWBALL
name: "&6&lMore Snowballs"
lore:
- "&7You will receive 32 extra snowballs."
- ""
- "&7Cost: &a2 Killcoins"
- ""
- "&aClick to activate!"
slot: 0
snowballs: 32
cost: 2
activateSound: "ENTITY_VILLAGER_YES;10;1"

#Players will be able to select an already unlocked hat from the shop. Here you can define their properties.
hats_items:
jump_hat:
item: SLIME_BLOCK
name: "&6&lJump Hat"
lore:
- "&7Gives you Jump I when sneaking for"
- "&710 seconds."
- ""
- "&7Status: %status%"
duration: 10
cooldown: 30

shop.yml Tutorial

Most of this file is just translation of items so I am going to explain you just the important sections.

#Players will be able to buy permanent perks for their Paintball games on the shop. Here you can define the possible levels of these perks. You can add your own levels for the 3 types of perks. Just follow the format below.
#Format: "amount;cost;name_of_the_perk"
#Extra Lives Perk: Allows your team to start with additional lives.
#Initial KillCoins: Allows you to start with additional killcoins.
#Extra KillCoins: Allows you to receive more killcoins when doing a kill.
perks_upgrades:
extra_lives:
- "1;1000;&6&lExtra Lives I"
- "2;2000;&6&lExtra Lives II"
- "3;4000;&6&lExtra Lives III"
- "4;6000;&6&lExtra Lives IV"
- "5;8000;&6&lExtra Lives V"

#You can disable any item by setting the slot to -1

Similar projects

Config →