The Ultimate Paintball Plugin! Shoot snowballs at your enemies, get killcoins and activate powerful powerups to reduce their lives to 0 and win the game!
Multi-Arena or BungeeCord with single and multi arena support.
4 different gamemodes (for now)!
Standard Team vs Team: You have to reduce the opponents team's life to 0.
Death Mode: You can take 4 hits before dying, your teammates can revive you. The game ends when all players from a team are dead.
FFA: Free for All! No teams! First to get a certain amount of kills wins!
Kill Confirm: Collect the enemy tag to confirm the kill!
Domination (NEW): Capture game objectives to score points!
A lot more to come...
Achievements, achievements menu.
SQLite (local) and MySQL (online) support.
Extremely configurable. You can edit everything, if something is not editable send me a message and we'll get it going!
Signs, Scoreboard, messages, options and more.
Holographic Leaderboards.
Shots, Kills, Wins
Reward System.
Very easy to setup. A few commands and you ready to play.
Leveling up System.
Exp & Coins Multiplier.
Perks!
Buy and upgrade perks! Get more team lives, killcoins, snowballs, killstreak duration and more!
Perks gets more expensive as you upgrade them! Give your players incentive to keep playing Paintball and other games!
KillStreaks!
Unlock killstreaks by using coins, and get killcoins in-game to use them! Killcoins resets on death, so make sure to get some killstreaks going!
Hats!
Use hats to display particle effects, custom effects or even buffs like permanent Speed and more! Create your own hats, set your own particle effects and buffs.
Bugs
If you have any issues, report via discussion or private message.
Do not use the rating area to report bugs or request features. Please go to discussion.
This plugin is primarily made for newer versions, (1.20+), but it works without any problems from 1.8 to 1.21.10. Unsupported features are automatically disabled.
PlaceholderAPI for placeholders, placeholder list below.
PlaceholderAPI Placeholder List
Player placeholders:
%paintball_wins%
%paintball_losses%
%paintball_games_played%
%paintball_kills%
%paintball_deaths%
Leaderboard Placeholders:
%paintball_wins_POSITION%
%paintball_shots_POSITION%
%paintball_kills_POSITION%
Example:
%paintball_wins_1%
returns the value at Messages.Leaderboard.Wins-Format.
Raw Leaderboard Placeholders:
%paintball_data_kills_POSITION%
%paintball_player_kills_POSITION%
%paintball_data_shots_POSITION%
%paintball_player_shots_POSITION%
%paintball_data_wins_POSITION%
%paintball_player_wins_POSITION%
Arena Placeholders:
%paintball_arena_players_{arena}%
%paintball_arena_max_players_{arena}%
%paintball_arena_min_players_{arena}%
%paintball_arena_status_{arena}%
Required permission:
paintball.setup After using the create command, the plugin will show you how to proceed, but here's a fully written tutorial:
Standard, Death Mode & Kill Confirm
Create your arena - /pb create <name> {type}
Set waiting lobby - /pb setLobby <name>
Set Team A spawn - /pb setSpawnA <name>
Set Team B spawn - /pb setSpawnB <name>
Done! Finish your arena - /pb finish <name>
It is that easy. Now, you can use some extra commands if you want to:
Set min players - /pb setMinPlayers <name> <amount>
Set max players - /pb setMaxPlayers <name> <amount>
Set max lives - /pb setMaxLives <name> <amount>
Set spectator spawn - /pb setSpectatorSpawn <name>
Set arena displayname - /pb setDisplayName <name> <display-name>
Those are optional commands, but after using any of them you have to use /pb finish <name> again to apply the changes.
You can also use them before using the finish command during the setup process.
Domination
Create your arena - /pb create <name> {type}
Set waiting lobby - /pb setLobby <name>
Set Team A spawn - /pb setSpawnA <name>
Set Team B spawn - /pb setSpawnB <name>
Add game objectives - /pb setObjective <name> <Objective>
Objectives will spawn a beacon, so you should have a 3x3 area cleared.
Objectives can go from A to G.
Example: /pb setObjective name A
Done! Finish your arena - /pb finish <name>
FFA
The setup for FFA is basically the same, but you'll be adding spawns.
Create your arena - /pb create <name> FFA
Set waiting lobby - /pb setLobby <name>
Add how many spawns you want - /pb addSpawn <name>
Done! Finish your arena - /pb finish <name>
For this mode, you don't have lives, but you can use
/pb setKillsToWin <name> <amount>
to set the amount of kills for a player to win the match.
Command: paintball
Aliases: pb
Player commands
/pb join {arena} - no permission.
if no arena is specified, it functions as a autojoin command.
/pb leave - no permission.
/pb stats - no permission.
/pb achievements {type} - no permission
types: wins, shots, kills, gamesplayed
if no type is specified, it shows a menu with all achievements
/pb shop - Main shop, no permission
/pb hats - Hats shop, no permission
/pb killstreaks - KillStreaks unlock shop, no permission
/pb perks - Perks shop, no permission
/pb close - Used to close inventory
Manager commands
/pb setgspawn - paintball.admin
/pb start {arena} - paintball.start
/pb stop {arena} - paintball.stop
/pb reload - paintball.admin
Updates all config files.
Others:
/pb coins set/add/remve <player> <amount>
Permission: paintball.admin
Updates player balance, command will not work with Vault support enabled.
/pb update <player>
Permission: paintball.admin
Sends a update to database.
/pb help <page>
Permission: paintball.admin.
Shows all commands.
Chances to Execute Commands
For every file and feature below, you can add a chance to execute commands.
Example of a default command:
'eco give %player% 100'
However, rewards can have a percentage system:
'100%: eco give %player% 100' -> 100% chance of giving 100 coins.
'25%: eco give %player% 100' -> 25% chance of giving 25 coins.
and so on.
This applies for levels.yml and rewards section in options.yml.
Level Up System
Players can level up and get rewards by playing the game!
Please do not change Level-1 as it is the default Database value, you can just use display-name to not show "Level-1" in game, the section name is just a backend thing.
Note that the reload command will not apply changes for levels.yml ATM.
How to Earn Exp Players can earn Exp by playing, kills and wins.
KillStreaks
You'll get a special in-game currency (killcoins) after killing players. With those, you can buy special powerups that last for a short period of time.
Note that players have KillStreaks locked by default, they'll need to buy the access to them via the shop before the game starts.
Players with the
paintball.killstreaks.all permission can get every killstreak without having to buy them first.
Here's how your killstreaks.yml will look like:
Each killstreak can have its own options, so feel free to modify them however you want!
Hats can be either cosmestic or have a special effect. You can choose to enable each hat perk or just use it as cosmestic. Add more hats in the hats.yml file!
How it works:
buyPermission: Gives this permission to all players that you want to be able to buy the hat.
permission: the permission itself that players are buying to use the hat.
Special permission:
paintball.hats.all. Access to everything.
Hat Effect List:
TNT - Spawns a TNT on death that kill enemies
SPEED - Gives permanent Speed II
DIAMONDS - Drops diamonds from player's head (cosmestic)
GOLD - Drops golds from player's head (cosmestic)
GHOST - Chance to survive a hit
SURVIVOR - Invencibility time from respawning 5->8
SNOW - Gets more snowballs on spawn and respawn.
more to come!
Here's a preview of hats.yml:
Perks
Buy and upgrade your perks. You can edit perk levels and utility, players can have a perk that adds +3 lives to their team, and upgrade it to +10 and so on, it's your choice!
headstart:
name: "&fHeadstart"
item: "GOLD_INGOT : 1"
slot: 16
maxLevel: 5
values:
perLevel: 1
descriptionVariable: "%extra_killcoins%"
description:
- "&7Start each game with &e%extra_killcoins% &7Killcoins!"
- "&8(+1 per level)"
cost:
1: 5000
2: 10000
3: 15000
4: 20000
5: 25000
Game Modes
Standard Team vs Team
Team vs Team. Each team has 300 (by default) lives.
First team to reduce the enemy lives to 0 wins.
All KillStreaks, hats and perks fully available.
Kill Confirmed
Team vs Team. Each team has 300 (by default) lives.
First team to reduce the enemy lives to 0 wins.
All KillStreaks, hats and perks fully available.
After killing a player, they will drop a tag. You need to collect tags to confirm kills.
Killing players without confirming kills does not give more snowballs, killstreaks and does not count towards your stats, so play around that!
FFA
Free For All
Random Spawns
First to get a certain amount of kills wins
KillStreaks and Hats are still available (by default) in this mode, but, of course, some of team that would benefit your team only works for you now. Some perks, like getting more lives are disabled in this mode.
Death Mode
Team vs Team. Each player can take up to four hits, one for each piece of armor.
When a player is hit, part of their armor changes to the color of the opposing team. Once a player is fully painted in the enemy’s color, they are eliminated and become a spectator.
Teammates can bring back eliminated players by throwing a special potion at them. The team that eliminates all members of the opposing team wins the match.
Hats, Perks and KillStreaks are disabled in this mode.
Domination (NEW 1.2.0)
Team vs Team.
First team to score 300 points (by default) wins.
Score points by capturing objectives, +4 points (by default) per second for each objective.
All KillStreaks, hats and perks fully available.
Planned Modes: CTF, Base Domination and more!
Language File
All messages that players can see are editable. Some of them, like setup messages, are not.
Click below to see the full language.yml, this file is from 1.0.0 and might have changed.
Code (Text):
Messages:
Chat:
Default-Format: '%teamcolor%%playername%&7: %message%'
Spectator-Format: '&7[SPECTATOR] %teamColor%%playername%&7: %message%'
Join: '&7%player% &ejoined the game. (&7%players%&e/&7%maxplayers%&e)'
Left: '&7%player% &eleft the game. (&7%players%&e/&7%maxplayers%&e)'
Command-Failed: '&cYou cannot use commands while playing paintball!'
Restoring-Period: '&cThis game is restarting, please wait...'
Join-Cooldown: '&cPlease wait...'
Cannot-Join: '&cCouldn''t join this game, please try another arena.'
Already-Started: '&cThis game already started!'
Already-InGame: '&cAlready playing!'
No-Game-Available: '&cThere are no games available for this gamemode.'
No-Permission: '&cNo permission!'
No-Permission-To-Buy: '&cYou don''t permission to purchase that item.'
Not-Enough-Money: '&cNot enough money!'
Unlocked-For-Free: '&aUnlocked for free by special permission!'
Selected-For-Free: '&aSelected via special permission'
Game-Is-Full: '&cThis game is full!'
Empty: '&7empty'
Draw: '&cDraw'
No-Value: '&fN/A'
Kill-Confirmed: '&a&lKill Confirmed!'
Kill-Denied: '&a&lKill denied!'
Revived: '&a&lRevived by %player%!'
Revive-Name: '&dReviving fluid'
Tag-Name: '%color%%player%'
Starting: '&eThe game starts in &b%time% &eseconds.'
No-Game-Available-On-This-Server: '&cThere is no games on this server.'
Wait-To-Try-Again: '&cPlease try again in a few seconds.'
Game-Cancelled-Lack-Of-Players: '&cThe game was cancelled due lack of players.'
Countdown-Cancelled-Lack-Of-Players: '&cCountdown cancelled due lack of players.'
Game-Canceled: '&cGame canceled by an Administrator.'
Game-Canceled-Players-Left: '&cGame canceled due lack of players.'
Skill-Recharded: '&eYour &c%ability% ability &eis ready to use!'
ActionBar-Skill-Recharded: '&eYour &c%ability% ability &eis ready to use!'
Recharged: '&cYou''ve reached the limit of this item!'
Recharging: '&cWait %time% to use this ability.'
Player-Stats:
- '&7&m---------------&7[&c&lPAINTBALL STATS&7]&m---------------'
- ' '
- '&8Exp: &b%exp%'
- '&8Rank: &b%rank%'
- '&8Games Played: &b%games_played%'
- '&8Wins: &b%wins%'
- '&8Losses: &b%losses%'
- '&8Kills: &b%kills%'
- '&8Deaths: &b%deaths%'
- '&8Shots Fired: &b%shots%'
- '&8Coins: &b%coins%'
- ' '
- '&7&m-------------------------------------'
Game-Start:
Default:
- '&7&m--------------&7[&6&lPAINTBALL&7]&m--------------'
- ' '
- '&eKill your opponents! Don''t die to get killstreaks and'
- '&ebuy strong power ups!'
- ' '
- '&7&m----------------------------------'
FFA:
- '&7&m--------------&7[&6&lPAINTBALL&7]&m--------------'
- ' '
- '&eKill your opponents! Don''t die to get killstreaks and'
- '&ebuy strong power ups!'
- ' '
- '&7&m----------------------------------'
Kill-Confirmed:
- '&7&m--------------&7[&6&lPAINTBALL&7]&m--------------'
- ' '
- '&eKill your opponents and get their tags! Don''t die to get killstreaks and'
- '&ebuy strong power ups!'
- ' '
- '&7&m----------------------------------'
Death-Mode:
- '&7&m--------------&7[&6&lPAINTBALL&7]&m--------------'
- ' '
- '&ePaint your enemies to your team color! Revive'
- '&eteammates by throwing potions at them!'
- ' '
- '&7&m----------------------------------'
Game-End:
- '&7&m--------------&7[&6&lPAINTBALL&7]&m--------------'
- ' '
- '&7Winner: %color% %winner%'
- ' '
- '&e1: &b%killer_1% &7with &b%kills_1% &7kills'
- '&e2: &b%killer_2% &7with &b%kills_2% &7kills'
- '&e3: &b%killer_3% &7with &b%kills_3% &7kills'
- ' '
- '&7&m-------------------------------------'
Achievement:
- '&7&m---------------&7[&6&lACHIEVEMENT&7]&m---------------'
- ' '
- '%name% - %description%'
- ' '
- '&7&m----------------------------------'
Leaderboard:
No-Data: '&7...'
Wins-Format: '&e%position%. &b%player% &7- &e%wins% &7wins'
Kills-Format: '&e%position%. &b%player% &7- &e%kills% &7kills'
Shots-Format: '&e%position%. &b%player% &7- &e%shots% &7shots'
KillStreaks:
Menu-Name: '&eKillStreaks'
Shop-Menu-Name: '&7KillStreak Shop'
Not-Available: '&cYou don''t have this KillStreak! You can buy it on the shop
before the game starts!'
Disabled: '&cThis KillStreak is not enabled in this mode!'
Not-Enough: '&cNot enough KillStreak coins! Kill players without dying to get
more coins!'
Unlocked: '&aUnlocked the KillStreak &e%killstreak%&a!'
Already-Unlocked: '&aKillStreak already unlocked!'
Activated: '%color%%player% &eactivated &a%killstreak%'
Expired: '&a%killstreak% &eexpired'
Nuke-Countdown: '&4&lNUKE in %time%s'
EnderEye: '&e%player% swapped places with you!'
Hats:
Shop-Menu-Name: '&7Hats'
Hats-Unlocked: '&aHat &e%hat%&a unlocked!'
Hat-Selected: '&aHat &e%hat%&a selected!'
Achievements:
Menu-Name: '&7Paintball Achievements'
Perks:
Already-Maxed: '&cYou have already maxed this perk!'
Upgrade: '&aYou upgraded &e%name% &ato level &e%level%!'
Cost: '&7Cost: &e%cost%'
Purchase: '&eClick to purchase!'
Maxed: '&aMAXED OUT'
Menu-Name: '&6Perks'
Transfusion-Activated: '&dTransfusion! &7Converted &e%coins% &7coins from leftover
killcoins.'
Titles:
Title:
Starting: '&eGame starts in:'
Subtitles:
Starting: '&e%time%'
Teams:
Selector:
Lore-Lines:
- '%team%: &8%players%'
Full: '&cThis team is full!'
Selected: '&6Team selected!'
Already-Selected: '&cYou already on this team.'
Full-In-Order-To-Balance: '&cYou cannot join this team due the amount of players.'
Menu-Name: '&9Team Selector'
Red-Name: RED
Blue-Name: BLUE
Red-ChatColor-Name: RED
Blue-ChatColor-Name: BLUE
Red-Color-Value: '&c'
Blue-Color-Value: '&9'
State:
Waiting: '&aWAITING'
Starting: '&6STARTING'
InGame: '&cIN GAME'
Ending: '&4ENDING'
Restoring: '&9RESTORING'
TimeUnits:
Milliseconds: Milliseconds
Seconds: Seconds
Minutes: Milliseconds
Hours: Hours
Days: Days
Permanent: Permanent
Sign:
Line:
'1': '&7[&cPaintball&7]'
'2': '%state%'
'3': '%mapname%'
'4': '%players%/%maxplayers%'
Scoreboard:
Waiting-State-Line: '&aWaiting for players...'
Starting-State-Line: '&6Starting in &b%time%'
Title: '&e&lPAINTBALL'
Lobby-Format:
- ' '
- 'Map: &a%mapname%'
- 'Players: &b%players%/%maxplayers%'
- 'Needed: &b%minplayers%'
- ' '
- 'State: %capitalize_state%'
- ' '
- yourserver.com
Default-Scoreboard-Format:
- ' '
- '&fTime Left: &a%time_left%'
- ' '
- '%TeamAColorFormatted%&f: &b%livesA%'
- '%TeamBColorFormatted%&f: &b%livesB%'
- ' '
- '&fYour Kills: &6%kills%'
- '&fMap: &a%mapname%'
- ' '
- yourserver.com
Kills-Confirmed-Scoreboard-Format:
- ' '
- '&fTime Left: &a%time_left%'
- ' '
- '%TeamAColorFormatted%&f: &b%livesA%'
- '%TeamBColorFormatted%&f: &b%livesB%'
- ' '
- '&fYour Kills: &6%kills%'
- '&fMap: &a%mapname%'
- ' '
- yourserver.com
FFA-Scoreboard-Format:
- ' '
- '&fTime Left: &a%time_left%'
- ' '
- '&f1. &a%pos_1%'
- '&f2. &a%pos_2%'
- '&f3. &a%pos_3%'
- ' '
- '&fYour Kills: &6%kills%'
- '&fMap: &a%mapname%'
- ' '
- yourserver.com
DeathMode-Scoreboard-Format:
- ' '
- '&fTime Left: &a%time_left%'
- ' '
- '%TeamAColorFormatted%&f: &b%aliveA%'
- '%TeamBColorFormatted%&f: &b%aliveB%'
- ' '
- '&fYour Kills: &6%kills%'
- '&fMap: &a%mapname%'
- ' '
- yourserver.com
Position-Placeholder: '&7%player% &f- &b%kills%'
Options File
Change sounds, items, icons, economy, game settings setup your database and more. If you want a specific option, feel free to let me know!
Click below to see the full options.yml, this file is from 1.0.0 and might have changed.
Q:
The game says the team is full but there is no player on the team/team is not full. A: This happens because of the team balancing system that tries to match teams according the amount of players.
Q:
Can I add more hats? A: Yes, check above to see how.
Q:
Can I add more KillStreaks? A: No, killstreaks are hardcoded, feel free to suggest more!
Q:
Can I add more Perks? A: No, perks are hardcoded, feel free to suggest more!
Q: Does this plugin supports X version?
A: Yes. 1.8 or above is supported, no questions asked.
Please note that Java 16 is required.
Q:
How does Bunge support work? A: You can have multiple arenas running on a Bungee server, when the player joins the server we will be added to the next avaialable game.
Or, you can also have a game per server, not recommended, but you can!
If you have any suggestions go to Discussion and I'll be happy to read them.
By buying Paintball you agree to
You are not allowed to distribute this plugin.
You are not allowed to decompile this plugin.
Use only for your network/server.
NO refunds.
All support given is on Spigot only. You will not have Discord, Skype or any of those type of contact to ask for support.
I'll probably reply in a few minutes, otherwise wait at least 12 hours or check my profile to see any updates.
THIS IS A SPIGOT/SPIGOT FORK SOFTWARE. No refunds will be given if the plugin does not work on your server software.