Discretion: This project is rather outdated, it will not be worked on in the future.

What is CrystalWars?
CrystalWars is a team wars variant game that features any amount of teams that can be set. Battle enemy teams in the conquest of being the last team standing! CrystalWars is an easy to manage, fun to play, and extremely configurable game that you and your players will enjoy!
Features
Unlimited teams! Create any amount of teams you want! 4v4, 2v2v2, all you need is enough players!
MySQL Database support! Keep your player's stats up-to-date across multiple servers!
Easy to use kits! Which are Completely Customizable! CrystalWars comes with 4 premade kits. (Archer, Fighter, Builder, and Ninja
Everything customizable! Configure all messages, sounds, and game settings!
No-lag Scoreboard! Also completely customizable! Customize your scoreboard per-world if need be.
Stats Tracking and GUI! Players can view their own stats using /cw stats. Once again this GUI is completely customizable.
Simple permissions! Give your admins crystal.* and your regular players crystal.command, crystal.aj (or crystal.autojoin).
Leaderboards! Easy and simple to manage leaderboards per-world! Track who's playing the most and view other player's stats!
Name your teams! No more boring "Red" or "Blue" teams! You could have the "Dragons" face off against the "Wizards"!
All games are completely automatic! You won't need to worry about world or player management.
Simple GUI management , you can easily modifiy costs, remove and add items, everything simplified for easy configuration!
Run certain commands based on who wins or loses! You can reward winners and punish losers!
Double Jump! A brand new item which increases player's mobility! Fight in the skies and create strong fortifications!
Automatic Ore Respawn! An easy way to motivate other players to venture around the map to get the ores!
Join with Signs, Entities, or by GUI! All three ways are easy to setup!
Screenshots / Examples
Scoreboard (InGame)

Scoreboard (Lobby)

Leaderboard

Stats GUI

Beginning Message

Example /cw check message

Example CrystalWars Map

Setup
Warning . The setup of the teams can be difficult at first. A good guide is /cw help setup
There is a command ( /cw check ) that you can use for help on what you need to do to setup your map.
You just downloaded the plugin, that's great! But! Now, you have to work out how to setup the plugin.
First of all, you'll need a map. I recommend creating one for now, or you can use a flatworld for testing reasons.
Generally, there should be islands for each team, and a middle island for all the teams to fight at. The map should be around Y = 20, as players will die at -10. Additionally, Middle should have some sort of ore (whatever is used in the Shop GUI, default is Quartz Ore) to encourage players to go to mid to upgrade their tools.
You'll want to /cw create at least two teams . Once you've done that, go to the place(s) where you want the team members to spawn.
For example, stand around Red's base and do /cw create spawn red. You can specify however many spawns you want . The team members will
be spread out around the spawns.
The spectator spawnpoint should be in the middle of the map, at a high-ish point. Players will be prevented from placing blocks if they go above the spectator's spawn.
You can spawn in NPCs extremely easily once their team has been created. To create an NPC for joining a team, the command is
/cw create NPC [teamName]
The NPC Command can additionally be used for Server Joining, simply replace the teamName with the world name of the server.
In order to delete these NPCs, the command is
/cw delete NPC - This will delete the closest NPC/Leaderboard.
Once you've created the spawns, you'll want to set the shop, resourceSpawn, and crystal locations for each team.
To do this, go to the appropriate location and type the appropriate command.
To set shops: /cw set [coalShop/endShop/teamShop] [teamName]
To set crystals: /cw set crystal [teamName]
To set resource generators: /cw set resourceSpawn [teamName]
Depending on the size of your server, you may want to modify the maxSize of the lobby, and when the game will start.
To do this, simply type:
/cw set maxSize [size] (This is the maximum amount of players allowed in the game)
/cw set startAt [amount] (This is when the countdown will start)
Assuming you've followed all of these steps correctly, doing /cw check will only tell you that you haven't set the builders.
The command to do this is simply
/cw set builders [Builder Names]
So, for example, /cw set builders MSWS and Notch
That should be everything! If you're experiencing issues or having trouble setting up the plugin, feel free to contact me at MSWS#9499.
Permissions
Main Command :
- crystal.command - Permission to access /cw
Sub-Commands :
- crystal.[command] - Permission for /cw [command]
- Eg: crystal.start - Allows usage of /cw start
Kit Permissions :
- crystal.kit.[kitName] - Permission to access specific kits
Sign Permissions :
- crystal.sign - Permission for creating signs
- crystal.sign.delete - Permission for deleting signs
Chat Permissions :
- crystal.teamchat - Permission for using team chat
- crystal.teamchat.spy - Permission for viewing other team chats
Miscellaneous :
- crystal.bypass.limit - Permission to bypass player/world max
- crystal.stats.others - Allows viewing of other player's stats
Gameplay
Players will be spawned on their own respective islands. Depending on what your configuration is, they'll want to collect some coal from their generator. From there, they can get wool and venture around the map. Once a team's crystal is destroyed, they will be notified immediately and will not respawn if they die again. Once there is only one remaining team left, the game is over and players are teleported to the endLocation predefined.
Support
If you have any problems, suggestions, or bugs to report, please do so here
Alternatively, you can also contact me via my Spigot , Discord (MSWS#9499), or Email ( imodmaker@gmail.com ).
Configuration
config.yml
#Thank you for downloading CrystalWars!
#CrystalWars is a multi-team functional minigame
#Where your goal is to eliminate other team's crystals
#Below are the defaults set for games and you can change them however you like
#I recommend keeping things how they are, however, if you know what you're
#Doing then go ahead and go crazy
#Documentation will be listed where necessary
#If you have any questions feel free to contact me at MSWS#9499
################################################
# +------------------------------------------+ #
# | Quick Settings | #
# +------------------------------------------+ #
################################################
Prefix: '&5&l(&dCrystal&5&l)&7'
HelpLength: 10
BeginningTimer: 7
DefaultCountdown: 20
MaxCrystalHealth: 100
HealthBarLength: 20
RespawnTime: 5
#In Seconds
LeaderboardRefreshRate: 60
#Simply say what Class and line logs are sent from
DetailedLogs: false
OreRespawn: #In seconds
Min: 30
Max: 60
#Enable this to disguise the /cw command to players without permission.
FakeInvalidCommand: false
################################################
# +------------------------------------------+ #
# | Database Settings | #
# +------------------------------------------+ #
################################################
Database: #If not enabled, then Crystal will use stats.yml
Enabled: false
Username: 'plntmc'
Servername: 'crystalwars'
Password: 'password'
IP: '10.0.0.208'
Port: '3306'
################################################
# +------------------------------------------+ #
# | Chat Settings | #
# +------------------------------------------+ #
################################################
ChatFormat: #You can use %prefix% if you have PEX
Enabled: true
Format: '%teamColor%%player%&r %message%'
TeamPrefix: '#'
TeamChatFormat: '%teamColor%&l%teamName% %teamColor%%player%&r %message%'
#TeamPrefix is what players will put to chat to their team. Eg: #test
Status: #Statuses will also appear next to player usernames when they die
CrystalAlive: "\u2713"
CrystalDead: '%amo%'
Dead: "\u2717"
################################################
# +------------------------------------------+ #
# | Sound Settings | #
# +------------------------------------------+ #
################################################
#Customize sounds below, make sure to specify a valid sound
#otherwise you will be spammed errors
Sounds:
Countdown: 'NOTE_PLING' #Sound from the scoreboard when the timer is <=10
ActionSound: 'CLICK' #Sound that the action bar will make when the game starts
ActionStart: 'NOTE_PLING' #Sound that action bar will make when the action timer ends
BowCharge: 'NOTE_PLING' #Sound that will be played while an arrow is charing
ItemGiven: 'ITEM_PICKUP' #Sound played when a player receives an item from their kit
Kill: 'LEVEL_UP' #Sound that's played to someone when they kill someone
GameOver: 'LEVEL_UP' #Sound played when game ends
CrystalHit: 'SILVERFISH_HIT' #Sound played by crystal when it's hit
PlayerHitCrystal: 'BLAZE_HIT' #Sound played to someone when they damage the crystal
DoubleJump: 'GHAST_FIREBALL' #Sound played when someone double jumps/leaps
IncorrectInventory: 'ITEM_BREAK' #Sound played when someone clicks on an empty slot in a GUI
KitSelected: 'LEVEL_UP' #Sound played when someone selects a kit from /kit
InvalidBalance: 'HORSE_BREATHE' #Sound played when someone attempts to buy something they can't afford
Purchase: 'LEVEL_UP' #Sound played when someone purchases an item
################################################
# +------------------------------------------+ #
# | Kit Settings | #
# +------------------------------------------+ #
################################################
#Permission for kits: crystal.kit.[kitName], customize GUI in guis.yml
#You can add whatever kits you want, just make sure to add the
#Permission to the wanted players
Kits:
Archer:
sword:
Icon: WOOD_SWORD
Unbreakable: true
bow:
Icon: BOW
Unbreakable: true
receive:
arrow: #Players with kit archer will receive 1 arrow every 7 seconds, max 5
Icon: ARROW
Name: '&eArcher Arrow'
Rate: 7
Max: 5
attributes:
poweredBow: 1000 #Archers can charge a bow for 1 second, the arrow will break wool
Fighter:
sword:
Icon: STONE_SWORD
Unbreakable: true
attributes:
#Fighters will deal 4 more damage points
damage: 4
Builder:
sword:
Icon: WOOD_SWORD
Unbreakable: true
receive:
wool:
Icon: WOOL
Name: '&eBuilder Block'
SetDataTo: true
Rate: 2
Max: 32
Ninja:
receive:
ball:
Icon: SNOW_BALL
Name: '&dNinja Star'
Rate: 5
Max: 2
attributes:
doubleJump: 30 #Ninjas will be able to use double jump every 30 seconds
fallDamage: false #Ninjas will also not take any fall damage
################################################
# +------------------------------------------+ #
# | Gameplay Settings | #
# +------------------------------------------+ #
################################################
MaxGameLength: 30 #In Minutes, modify the message in lang.yml, set to -1 to disable
InventorySaver: BLAZE_ROD #What material will the inventory saver be?
LeapWith: #What should item names contain to leap
Regular: 'Leap Feather'
Super: 'Super Leap'
NPC:
ServerType: SLIME
TeamType: SHEEP
Names:
Team: '%teamColor%&l%teamName%'
Lobby: '&dWaiting for players &l(%players%/%max%)'
Countdown: '&d&lStarting in &b&l%startTime%'
InGame: '&e&lIn Game'
Title: '&e&l%world%'
WarnEnding: #Percents to warn players that the game will end (50% of gametime, 75%, etc)
- 50
- 75
- 90
CommandsOnWin: #Placeholders are %teamName%, %teamColor%, %world%, and %player%
- 'say %teamColor%%player% has won the game in %world%'
CommandsOnLose:
- 'say %player% lost %world%'
BreakableBlocks:
default: #Blocks that can be broken in any world unless a manual list is set
- 'WOOL'
- 'LONG_GRASS'
- 'STAINED_GLASS'
- 'DIAMOND_ORE'
- 'COAL_ORE'
- 'REDSTONE_ORE'
- 'QUARTZ_ORE'
- 'LAPIS_ORE'
- 'GOLD_ORE'
- 'TNT'
- 'OBSIDIAN'
- 'LEAVES'
- 'LEAVES_2'
#game0: #in game0, only Netherrack would be breakable
#- NETHERRACK
ArrowsBreak: #Blocks that can be broken in any world BY AN ARROW (with the poweredBow Attribute) same rules as above
default:
- 'WOOL'
#game0:
#- 'WOOL'
#- 'STAINED_GLASS'
################################################
# +------------------------------------------+ #
# | Scoreboard Settings | #
# +------------------------------------------+ #
################################################
Scoreboard:
ActionTimeLeft: '&lGame Start [%progressBar%&r&l] &a%time%'
Title:
InGame: '&d&lCRYSTALWARS'
Lobby: '&d&lWaiting for players...'
Countdown: '&d&lStarting in &b&l%startTime%'
Lobby:
- '&b&lServer'
- '&d%world%'
- ' '
- '&b&lPlayers'
- '&d%players%/%maxSize%'
- ' '
- '&b&lTeam'
- '%teamColor%%teamName%'
- ' '
- '&b&lKit'
- '&d%kit%'
#Set separate scoreboards for ingame per world here, if no scoreboard is set then default will be used
default:
- '&6&lAlive Teams'
- '&6%alivePlayers%'
- ' '
- '%red_Status% %team_red%'
- '%yellow_Status% %team_yellow%'
- '%green_Status% %team_green%'
- '%blue_Status% %team_blue%'
- ' '
- '&c&lPlaytime'
- '&e%time%'
#game0:
#- '&6&lAlive Teams'
#- '&6%alivePlayers%'
#- ' '
#- '%team_red%: %red_Status%'
#- '%team_blue%: %blue_Status%'
#- ' '
#- '&c&lPlaytime'
#- '&e%time%'Similar projects
Plugin →Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
25MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
Emotecraft
Create your own emotes in Minecraft.
7.5MSueta
Simple Tpa
A simple tpa plugin which sends requests
5.4MSueta
Common Network
Forge and Fabric Unified Networking Solution
3.9MSueta
Set Home
A lightweight plugin for players to set their homes.
3.8MSueta