Skywarz
The gold standard of Skywars.
This is a beta version
If you spot bugs, please open an issue on GitHub before writing a review.
After seven years and over 30,000 downloads, I decided to completely redo the original Skywarz. This project contains over 17,000 lines of code and more than 190 Java classes, that showcase my skills in Java. Made with security and future extendability in mind.
Legacy versions (< 2.0) are not supported anymore
Overview
Skywarz Features
Multiarena sign (and states)
You can create signs for a multiarena server. If you use Bungeecord, you have to use a separate Bungeecord sign plugin that utilizes the motd of the target arena server as the status. It is planned to add Bungeecord signs natively in the future.
(By default) If the color is green, it means a player is able to join the match in theory.
Media
[Tutorial and further media follows]
Scoreboards
All scoreboards are completely changable through scoreboards.yml
Configurations
Skywarz contains many configurations. Not every is listed below, but most are.
The gold standard of Skywars.
This is a beta version
If you spot bugs, please open an issue on GitHub before writing a review.
After seven years and over 30,000 downloads, I decided to completely redo the original Skywarz. This project contains over 17,000 lines of code and more than 190 Java classes, that showcase my skills in Java. Made with security and future extendability in mind.
Legacy versions (< 2.0) are not supported anymore
Overview
Skywarz Features
-
Multiarena & Bungeecord
-
Teams (and solo support)
-
SQL Database support for MySQL, SQLite, Postgres, Microsoft SQL, and more
-
Player leaderboard and statistics
-
Underlying TTL caching of database query results
-
Priority join (Premium join)
-
Chest refill (togglable per arena)
-
Protection phase (togglable per arena)
-
Spectators (with Teleporter)
-
Quickstart
-
Arena Reset
-
Simplistic kit creator
-
Advanced kit selector
-
Animated team selector
-
Particles, effects and winner celebration
-
Easy setup & per arena customization
-
Customizable items
-
Customizable signs
-
Customizable messages
-
Customizable scoreboards
-
Customizable kits (kits.yml & in-game kit creator)
Multiarena sign (and states)
You can create signs for a multiarena server. If you use Bungeecord, you have to use a separate Bungeecord sign plugin that utilizes the motd of the target arena server as the status. It is planned to add Bungeecord signs natively in the future.
(By default) If the color is green, it means a player is able to join the match in theory.
Media
[Tutorial and further media follows]
Scoreboards
All scoreboards are completely changable through scoreboards.yml
Configurations
Skywarz contains many configurations. Not every is listed below, but most are.
Spoiler: Configuration files
Spoiler: main.yml
Code (YAML):
# <================================================>
# Main configuration
# Here contained are general purpose settings.
# [[ Skywarz 2.0.0-beta.1 by ~aparx ]]
# <================================================>
bungeecord :
# If true, this server is seen as a dedicated Skywarz server.
# This implies that only one arena is active at once for this server.
enabled : false
# The dedicated arena that is represented by this dedicated server.
# If the above boolean is true, a player will be put into a match for this arena.
# If the arena does not exist and the player has no setup permission, they are kicked.
arena : <Arena >
# The Motd when the Bungeecord mode is enabled (can be used for external analysis)
motd :
- ' {name }'
- ' {state.color } {state.name }'
# The fallback server players are teleported when a match ends or they leave
fallback : lobby
celebration :
# If enabled, effects will spawn to celebrate a winner at the lobby when a match is done
enabled : true
# The radius in which fireworks randomly spawn to celebrate the winner
firework spawn radius : 20.0
# The minimum height offset to the lobby spawn at which fireworks spawn
firework height : 5.0
chat :
# When a player is not alone in a team, they will automatically only be able to chat
# with their team, unless they use one of following tags at the beginning of their message.
# The tags are case-insensitive.
everyone tag :
- '@everyone'
- '@ all'
- '@a'
# Valid units: 'ticks', 'seconds', 'minutes', 'hours' and 'days'
duration :
# The different durations of all running game phases
phases:
DONE:
== : Skywarz.TickDuration
unit : seconds
amount : 15
IDLE:
== : Skywarz.TickDuration
unit : seconds
amount : 45
PLAYING:
== : Skywarz.TickDuration
unit : minutes
amount : 25
# How long players cannot take damage (protection time)
protection:
== : Skywarz.TickDuration
unit : seconds
amount : 15
# The interval in which an opened chest is refilled
chest refill:
== : Skywarz.TickDuration
unit : minutes
amount : 3
# Main configuration
# Here contained are general purpose settings.
# [[ Skywarz 2.0.0-beta.1 by ~aparx ]]
# <================================================>
bungeecord :
# If true, this server is seen as a dedicated Skywarz server.
# This implies that only one arena is active at once for this server.
enabled : false
# The dedicated arena that is represented by this dedicated server.
# If the above boolean is true, a player will be put into a match for this arena.
# If the arena does not exist and the player has no setup permission, they are kicked.
arena : <Arena >
# The Motd when the Bungeecord mode is enabled (can be used for external analysis)
motd :
- ' {name }'
- ' {state.color } {state.name }'
# The fallback server players are teleported when a match ends or they leave
fallback : lobby
celebration :
# If enabled, effects will spawn to celebrate a winner at the lobby when a match is done
enabled : true
# The radius in which fireworks randomly spawn to celebrate the winner
firework spawn radius : 20.0
# The minimum height offset to the lobby spawn at which fireworks spawn
firework height : 5.0
chat :
# When a player is not alone in a team, they will automatically only be able to chat
# with their team, unless they use one of following tags at the beginning of their message.
# The tags are case-insensitive.
everyone tag :
- '@everyone'
- '@ all'
- '@a'
# Valid units: 'ticks', 'seconds', 'minutes', 'hours' and 'days'
duration :
# The different durations of all running game phases
phases:
DONE:
== : Skywarz.TickDuration
unit : seconds
amount : 15
IDLE:
== : Skywarz.TickDuration
unit : seconds
amount : 45
PLAYING:
== : Skywarz.TickDuration
unit : minutes
amount : 25
# How long players cannot take damage (protection time)
protection:
== : Skywarz.TickDuration
unit : seconds
amount : 15
# The interval in which an opened chest is refilled
chest refill:
== : Skywarz.TickDuration
unit : minutes
amount : 3
Spoiler: messages.yml
Code (YAML):
# <============================================================>
# Language configuration
# The primary message definitions in your target language.
# This configuration does *not* contain all translations.
# [[ Skywarz 2.0.0-beta.1 by ~aparx ]]
# <============================================================>
prefix : §b [Skywarz ]§r
successPrefix : §a [Skywarz ]
warningPrefix : §c [Skywarz ]
errors:
generic : ' {warningPrefix } Error : {0 }'
syntax : ' {warningPrefix } Syntax : {usage }'
in a match : ' {warningPrefix } You are in a match already!'
not in a match : ' {warningPrefix } You are not in a match!'
not a number : ' {warningPrefix } Value {0 } is not a number!'
not an integer : ' {warningPrefix } Value {0 } is not an integer!'
arena not found : ' {warningPrefix } Cannot find arena {0 }!'
permission : ' {warningPrefix } You do not have the permission for this action!'
command not found : ' {warningPrefix } Command not found. Try §r/sw help§c.'
match is full : ' {warningPrefix } Cannot join : Match is full!'
not a player : ' {warningPrefix } Argument is not a valid player!'
match:
join:
error : ' {warningPrefix } You cannot join this match!'
broadcast : §a [- ]§7 Player §r {player.name }§7 has joined the game.
leave:
success : ' {successPrefix } You left the match!'
broadcast : §c [- ]§7 Player §r {player.name }§7 has left the game.
team switch:
error : ' {warningPrefix } You cannot join this team!'
priority:
error : ' {warningPrefix } Match is full. Could not find anyone that is kickable!'
kick : ' {warningPrefix } You have been kicked for someone that is VIP.'
dequeued : ' {warningPrefix } An error occurred. You have been dequeued.'
broadcast:
idle:
countdown : ' {prefix }§7 The game starts in §8 {match.time.left.literal }§7!'
require players : ' {prefix }§7 Require §c {match.missing }§7 more players to start!'
done:
countdown : ' {prefix }§7 The match closes in {match.time.left.literal }!'
protection:
countdown : ' {prefix }§7 Protection phase ends in {time.left.literal }!'
ended : ' {prefix } Protection has ended, you are now vulnerable!'
quickstart:
success : ' {successPrefix } The game will start shortly.'
error : ' {warningPrefix } Cannot quickstart your match.'
killed : ' {prefix }§7 Player {player.team.color } {player.name }§7 was killed by {killer.team.color } {killer.name }§7!'
death : ' {prefix }§7 Player {player.team.color } {player.name }§7 died!'
kit:
select : ' {successPrefix } You selected the Kit {player.kit.displayName }§a!'
assign : ' {successPrefix } You have been assigned the Kit {player.kit.displayName }§a!'
finish:
title:
you won : §aYou won!
you lost : §cYou lost!
team won : Team {team.displayName }§r won!
broadcast:
team won :
- ' {team.color } [Skywarz ] Team §l {team.displayName } won!'
- ' {team.color } [Skywarz ] Thanks for using Skywarz!'
chat:
team : ' {sender.team.color } [TEAM ] §r {sender.name } : §7 {message }'
all : '§8 [ ALL ] {sender.team.color } {sender.name } : §7 {message }'
spectator : '§8§o [DEAD ] §7 {sender.name } : §7 {message }'
stats:
fetching : ' {prefix } §7Fetching statistics ...'
none other : ' {warningPrefix } Player {target.name } has no stats in Skywarz'
none self : ' {warningPrefix } You have stats in Skywarz'
overview :
- ' {prefix } §7Stats for §8 {target.name }§7:'
- '{prefix} §8• §7Points : §e {target.total.points }'
- '{prefix} §8• §7Played : §b {target.total.played }'
- '{prefix} §8• §7Won : §b {target.total.won }'
- '{prefix} §8• §7Kills : §b {target.total.kills }'
- '{prefix} §8• §7Deaths : §b {target.total.deaths }'
- '{prefix} §8• §7K/D : §b {target.total.kd }'
- ' {prefix } §8• §7Win %: §b{target.total.winChance}'
leaderboard:
overview :
- ' {prefix } §7The top §e10§7 of Skywarz:'
- ' {content }'
- ' {prefix } §7It can take up to §81h§7 to refresh.'
line : ' {prefix } §e #{place}§r {player.name}§7 - {player.stats.points} Points -
{player.stats.kd } K/D'
time:
TICKS:
plural : ticks
singular : tick
SECONDS:
plural : seconds
singular : second
MINUTES:
plural : minutes
singular : minute
HOURS:
plural : hours
singular : hour
DAYS:
plural : days
singular : day
state:
SETUP : Setup
IDLE : Idle
PLAYING : Playing
DONE : Done
team:
RED : Red
GREEN : Green
BLUE : Blue
WHITE : White
BLACK : Black
CYAN : Cyan
ORANGE : Orange
YELLOW : Yellow
PURPLE : Purple
MAGENTA : Magenta
LIME : Lime
GRAY : Gray
# Language configuration
# The primary message definitions in your target language.
# This configuration does *not* contain all translations.
# [[ Skywarz 2.0.0-beta.1 by ~aparx ]]
# <============================================================>
prefix : §b [Skywarz ]§r
successPrefix : §a [Skywarz ]
warningPrefix : §c [Skywarz ]
errors:
generic : ' {warningPrefix } Error : {0 }'
syntax : ' {warningPrefix } Syntax : {usage }'
in a match : ' {warningPrefix } You are in a match already!'
not in a match : ' {warningPrefix } You are not in a match!'
not a number : ' {warningPrefix } Value {0 } is not a number!'
not an integer : ' {warningPrefix } Value {0 } is not an integer!'
arena not found : ' {warningPrefix } Cannot find arena {0 }!'
permission : ' {warningPrefix } You do not have the permission for this action!'
command not found : ' {warningPrefix } Command not found. Try §r/sw help§c.'
match is full : ' {warningPrefix } Cannot join : Match is full!'
not a player : ' {warningPrefix } Argument is not a valid player!'
match:
join:
error : ' {warningPrefix } You cannot join this match!'
broadcast : §a [- ]§7 Player §r {player.name }§7 has joined the game.
leave:
success : ' {successPrefix } You left the match!'
broadcast : §c [- ]§7 Player §r {player.name }§7 has left the game.
team switch:
error : ' {warningPrefix } You cannot join this team!'
priority:
error : ' {warningPrefix } Match is full. Could not find anyone that is kickable!'
kick : ' {warningPrefix } You have been kicked for someone that is VIP.'
dequeued : ' {warningPrefix } An error occurred. You have been dequeued.'
broadcast:
idle:
countdown : ' {prefix }§7 The game starts in §8 {match.time.left.literal }§7!'
require players : ' {prefix }§7 Require §c {match.missing }§7 more players to start!'
done:
countdown : ' {prefix }§7 The match closes in {match.time.left.literal }!'
protection:
countdown : ' {prefix }§7 Protection phase ends in {time.left.literal }!'
ended : ' {prefix } Protection has ended, you are now vulnerable!'
quickstart:
success : ' {successPrefix } The game will start shortly.'
error : ' {warningPrefix } Cannot quickstart your match.'
killed : ' {prefix }§7 Player {player.team.color } {player.name }§7 was killed by {killer.team.color } {killer.name }§7!'
death : ' {prefix }§7 Player {player.team.color } {player.name }§7 died!'
kit:
select : ' {successPrefix } You selected the Kit {player.kit.displayName }§a!'
assign : ' {successPrefix } You have been assigned the Kit {player.kit.displayName }§a!'
finish:
title:
you won : §aYou won!
you lost : §cYou lost!
team won : Team {team.displayName }§r won!
broadcast:
team won :
- ' {team.color } [Skywarz ] Team §l {team.displayName } won!'
- ' {team.color } [Skywarz ] Thanks for using Skywarz!'
chat:
team : ' {sender.team.color } [TEAM ] §r {sender.name } : §7 {message }'
all : '§8 [ ALL ] {sender.team.color } {sender.name } : §7 {message }'
spectator : '§8§o [DEAD ] §7 {sender.name } : §7 {message }'
stats:
fetching : ' {prefix } §7Fetching statistics ...'
none other : ' {warningPrefix } Player {target.name } has no stats in Skywarz'
none self : ' {warningPrefix } You have stats in Skywarz'
overview :
- ' {prefix } §7Stats for §8 {target.name }§7:'
- '{prefix} §8• §7Points : §e {target.total.points }'
- '{prefix} §8• §7Played : §b {target.total.played }'
- '{prefix} §8• §7Won : §b {target.total.won }'
- '{prefix} §8• §7Kills : §b {target.total.kills }'
- '{prefix} §8• §7Deaths : §b {target.total.deaths }'
- '{prefix} §8• §7K/D : §b {target.total.kd }'
- ' {prefix } §8• §7Win %: §b{target.total.winChance}'
leaderboard:
overview :
- ' {prefix } §7The top §e10§7 of Skywarz:'
- ' {content }'
- ' {prefix } §7It can take up to §81h§7 to refresh.'
line : ' {prefix } §e #{place}§r {player.name}§7 - {player.stats.points} Points -
{player.stats.kd } K/D'
time:
TICKS:
plural : ticks
singular : tick
SECONDS:
plural : seconds
singular : second
MINUTES:
plural : minutes
singular : minute
HOURS:
plural : hours
singular : hour
DAYS:
plural : days
singular : day
state:
SETUP : Setup
IDLE : Idle
PLAYING : Playing
DONE : Done
team:
RED : Red
GREEN : Green
BLUE : Blue
WHITE : White
BLACK : Black
CYAN : Cyan
ORANGE : Orange
YELLOW : Yellow
PURPLE : Purple
MAGENTA : Magenta
LIME : Lime
GRAY : Gray
Spoiler: scoreboards.yml
Code (YAML):
# <=================================================================>
# Scoreboard configuration
# Edit to modify the in-game scoreboards shown to participants.
# [[ Skywarz 2.0.0-beta.1 by ~aparx ]]
# <=================================================================>
# Scoreboard shown during IDLE state
idle:
title : ' §lLobby§r '
# The different lines of this scoreboard.
# Tip: use less than 15 characters for better readability.
lines :
- ' '
- 'Map:'
- §b {match.arena }
- ' '
- 'Kit:'
- ' {player.kit.displayName }'
playing :
# Scoreboard shown during PLAYING state
alive:
title : ' §b§lSKYWARZ§r '
# The different lines of this scoreboard.
# Tip: use less than 15 characters for better readability.
lines :
- ' '
- 'Map:'
- §b {match.arena }
- ' '
- 'Time:'
- §e {match.time.left.format }
- ' '
- 'Alive:'
- §e {match.alive }
- ' '
- 'Kills:'
- §c {player.match.stats.kills }
# Scoreboard shown during PLAYING state
dead:
title : ' §b§lSKYWARZ§r '
# The different lines of this scoreboard.
# Tip: use less than 15 characters for better readability.
lines :
- ' '
- 'Map:'
- §b {match.arena }
- ' '
- 'Time:'
- §e {match.time.left.format }
- ' '
- 'Alive:'
- §e {match.alive }
# Scoreboard shown during DONE state
done:
title : ' §b§lSKYWARZ§r '
# The different lines of this scoreboard.
# Tip: use less than 15 characters for better readability.
lines :
- ' '
- 'Map:'
- §b {match.arena }
- ' '
- 'Winner:'
- ' {match.winner.color } {match.winner.name }'
- ' '
- §7~§oby aparx
# Scoreboard configuration
# Edit to modify the in-game scoreboards shown to participants.
# [[ Skywarz 2.0.0-beta.1 by ~aparx ]]
# <=================================================================>
# Scoreboard shown during IDLE state
idle:
title : ' §lLobby§r '
# The different lines of this scoreboard.
# Tip: use less than 15 characters for better readability.
lines :
- ' '
- 'Map:'
- §b {match.arena }
- ' '
- 'Kit:'
- ' {player.kit.displayName }'
playing :
# Scoreboard shown during PLAYING state
alive:
title : ' §b§lSKYWARZ§r '
# The different lines of this scoreboard.
# Tip: use less than 15 characters for better readability.
lines :
- ' '
- 'Map:'
- §b {match.arena }
- ' '
- 'Time:'
- §e {match.time.left.format }
- ' '
- 'Alive:'
- §e {match.alive }
- ' '
- 'Kills:'
- §c {player.match.stats.kills }
# Scoreboard shown during PLAYING state
dead:
title : ' §b§lSKYWARZ§r '
# The different lines of this scoreboard.
# Tip: use less than 15 characters for better readability.
lines :
- ' '
- 'Map:'
- §b {match.arena }
- ' '
- 'Time:'
- §e {match.time.left.format }
- ' '
- 'Alive:'
- §e {match.alive }
# Scoreboard shown during DONE state
done:
title : ' §b§lSKYWARZ§r '
# The different lines of this scoreboard.
# Tip: use less than 15 characters for better readability.
lines :
- ' '
- 'Map:'
- §b {match.arena }
- ' '
- 'Winner:'
- ' {match.winner.color } {match.winner.name }'
- ' '
- §7~§oby aparx
Spoiler: sign.yml
Code (YAML):
# <==============================================================================>
# Sign configuration
# Edit to update the sign layout of Skywarz signs.
# Note: as of the version (see below) these signs only work for multi-arena.
# [[ Skywarz 2.0.0-beta.1 by ~aparx ]]
# <==============================================================================>
lines :
- ' {state.color }§l [SW ]'
- ' {state.color } {state.name }'
- ' {name }'
- ' {alive }/ {maxPlayers }'
# Sign configuration
# Edit to update the sign layout of Skywarz signs.
# Note: as of the version (see below) these signs only work for multi-arena.
# [[ Skywarz 2.0.0-beta.1 by ~aparx ]]
# <==============================================================================>
lines :
- ' {state.color }§l [SW ]'
- ' {state.color } {state.name }'
- ' {name }'
- ' {alive }/ {maxPlayers }'
Spoiler: database.yml
Code (YAML):
# <============================================================================>
# Primary database configuration
# Change the values to have Skywarz connected to your database.
# Supported: MySQL, Postgres, Microsoft SQL, H2, Derby, HSQLDB and Sqlite.
# [[ Skywarz 2.0.0-beta.1 by ~aparx ]]
# <============================================================================>
# True to enable this configured database.
# Note: Skywarz will shut down if the connection cannot be established!
active : false
# The Java Database Connectivity (JDBC) URL that identifies your target database.
# For MySQL, simply replace "<hostname>" and "<database>" with your respective values.
# Read: https://tableplus.com/blog/2019/09/jdbc-connection-strings.html
jdbc : jdbc:mysql://<hostname>/<database>
username : <username>
password : <password>
# Primary database configuration
# Change the values to have Skywarz connected to your database.
# Supported: MySQL, Postgres, Microsoft SQL, H2, Derby, HSQLDB and Sqlite.
# [[ Skywarz 2.0.0-beta.1 by ~aparx ]]
# <============================================================================>
# True to enable this configured database.
# Note: Skywarz will shut down if the connection cannot be established!
active : false
# The Java Database Connectivity (JDBC) URL that identifies your target database.
# For MySQL, simply replace "<hostname>" and "<database>" with your respective values.
# Read: https://tableplus.com/blog/2019/09/jdbc-connection-strings.html
jdbc : jdbc:mysql://<hostname>/<database>
username : <username>
password : <password>
Spoiler: chests.yml
Code (YAML):
# <==============================================================================>
# Chest configuration
# Edit the items and their possibility of appearing in chests!
# The higher the weight, the higher the chance the item is put into a chest.
# [[ Skywarz 2.0.0-beta.1 by ~aparx ]]
# <==============================================================================>
# The probability that a specific slot is being set an item to within a chest.
# This value should be between 0 and 100 (Default: 35).
fill slot probability : 35
# A list of all items possibly occurring in chests.
# You can add enchantments by defining an "enchants" section as in this example:
# - ==: Skywarz.ChestItem
# weight: 10.0
# type: diamond chestplate
# enchants:
# PROTECTION_FIRE: 2
# Enchantments names are done after Bukkit's enchantment enumeration:
# https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/enchantments/Enchantment.html
items:
- == : Skywarz.ChestItem
weight : 21.0
type : golden leggings
- == : Skywarz.ChestItem
weight : 18.75
type : golden pickaxe
- == : Skywarz.ChestItem
weight : 12.5
type : iron pickaxe
- == : Skywarz.ChestItem
weight : 25.0
type : wooden sword
- == : Skywarz.ChestItem
weight : 31.25
type : wooden axe
- == : Skywarz.ChestItem
weight : 15.0
type : golden sword
- == : Skywarz.ChestItem
weight : 6.25
type : diamond pickaxe
- == : Skywarz.ChestItem
weight : 21.0
type : golden boots
- == : Skywarz.ChestItem
weight : 12.5
type : iron shovel
- == : Skywarz.ChestItem
weight : 6.25
type : diamond shovel
- == : Skywarz.ChestItem
weight : 31.25
type : wooden pickaxe
- == : Skywarz.ChestItem
weight : 5.0
type : diamond chestplate
- == : Skywarz.ChestItem
weight : 31.0
type : leather boots
- == : Skywarz.ChestItem
weight : 11.0
type : diamond helmet
- == : Skywarz.ChestItem
weight : 10.0
type : iron chestplate
- == : Skywarz.ChestItem
weight : 16.0
type : iron leggings
- == : Skywarz.ChestItem
weight : 11.0
type : diamond boots
- == : Skywarz.ChestItem
weight : 16.25
type : stone pickaxe
- == : Skywarz.ChestItem
weight : 25.0
type : leather chestplate
- == : Skywarz.ChestItem
weight : 31.0
type : leather leggings
- == : Skywarz.ChestItem
weight : 6.25
type : diamond axe
- == : Skywarz.ChestItem
weight : 8.75
type : iron ingot
amount : 8
- == : Skywarz.ChestItem
weight : 19.0
type : chainmail boots
- == : Skywarz.ChestItem
weight : 16.25
type : stone shovel
- == : Skywarz.ChestItem
weight : 31.25
type : wooden shovel
- == : Skywarz.ChestItem
weight : 19.0
type : chainmail helmet
- == : Skywarz.ChestItem
weight : 21.0
type : golden helmet
- == : Skywarz.ChestItem
weight : 13.125
type : gold ingot
amount : 8
- == : Skywarz.ChestItem
weight : 16.25
type : stone axe
- == : Skywarz.ChestItem
weight : 5.833333333333333
type : iron block
- == : Skywarz.ChestItem
weight : 15.0
type : golden chestplate
- == : Skywarz.ChestItem
weight : 13.0
type : stone sword
- == : Skywarz.ChestItem
weight : 12.5
type : iron axe
- == : Skywarz.ChestItem
weight : 16.0
type : iron boots
- == : Skywarz.ChestItem
weight : 18.75
type : golden shovel
- == : Skywarz.ChestItem
weight : 19.0
type : chainmail leggings
- == : Skywarz.ChestItem
weight : 10.0
type : iron sword
- == : Skywarz.ChestItem
weight : 8.75
type : gold block
- == : Skywarz.ChestItem
weight : 5.0
type : diamond sword
- == : Skywarz.ChestItem
weight : 18.75
type : golden axe
- == : Skywarz.ChestItem
weight : 11.0
type : diamond leggings
- == : Skywarz.ChestItem
weight : 16.0
type : iron helmet
- == : Skywarz.ChestItem
weight : 13.0
type : chainmail chestplate
- == : Skywarz.ChestItem
weight : 31.0
type : leather helmet
- == : Skywarz.ChestItem
weight : 26.25
type : stone
amount : 32
- == : Skywarz.ChestItem
weight : 4.375
type : diamond
amount : 8
- == : Skywarz.ChestItem
weight : 43.75
type : grass block
amount : 32
- == : Skywarz.ChestItem
weight : 43.75
type : acacia planks
amount : 32
- == : Skywarz.ChestItem
weight : 43.75
type : acacia wood
amount : 32
- == : Skywarz.ChestItem
weight : 43.75
type : dirt
amount : 32
- == : Skywarz.ChestItem
weight : 43.75
type : birch planks
amount : 32
- == : Skywarz.ChestItem
weight : 15.0
type : cobweb
- == : Skywarz.ChestItem
weight : 43.75
type : birch wood
amount : 32
- == : Skywarz.ChestItem
weight : 7.5
type : golden carrot
amount : 16
- == : Skywarz.ChestItem
weight : 19.5
type : melon slice
amount : 32
- == : Skywarz.ChestItem
weight : 15.0
type : beef
amount : 16
- == : Skywarz.ChestItem
weight : 15.0
type : cooked beef
amount : 10
- == : Skywarz.ChestItem
weight : 19.5
type : baked potato
amount : 16
- == : Skywarz.ChestItem
weight : 37.5
type : apple
amount : 32
- == : Skywarz.ChestItem
weight : 7.5
type : golden apple
amount : 3
- == : Skywarz.ChestItem
weight : 22.5
type : carrot
amount : 32
- == : Skywarz.ChestItem
weight : 15.0
type : flint and steel
- == : Skywarz.ChestItem
weight : 25.0
type : stick
- == : Skywarz.ChestItem
weight : 10.0
type : water bucket
- == : Skywarz.ChestItem
weight : 8.0
type : lava bucket
- == : Skywarz.ChestItem
weight : 5.0
type : ender pearl
# Chest configuration
# Edit the items and their possibility of appearing in chests!
# The higher the weight, the higher the chance the item is put into a chest.
# [[ Skywarz 2.0.0-beta.1 by ~aparx ]]
# <==============================================================================>
# The probability that a specific slot is being set an item to within a chest.
# This value should be between 0 and 100 (Default: 35).
fill slot probability : 35
# A list of all items possibly occurring in chests.
# You can add enchantments by defining an "enchants" section as in this example:
# - ==: Skywarz.ChestItem
# weight: 10.0
# type: diamond chestplate
# enchants:
# PROTECTION_FIRE: 2
# Enchantments names are done after Bukkit's enchantment enumeration:
# https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/enchantments/Enchantment.html
items:
- == : Skywarz.ChestItem
weight : 21.0
type : golden leggings
- == : Skywarz.ChestItem
weight : 18.75
type : golden pickaxe
- == : Skywarz.ChestItem
weight : 12.5
type : iron pickaxe
- == : Skywarz.ChestItem
weight : 25.0
type : wooden sword
- == : Skywarz.ChestItem
weight : 31.25
type : wooden axe
- == : Skywarz.ChestItem
weight : 15.0
type : golden sword
- == : Skywarz.ChestItem
weight : 6.25
type : diamond pickaxe
- == : Skywarz.ChestItem
weight : 21.0
type : golden boots
- == : Skywarz.ChestItem
weight : 12.5
type : iron shovel
- == : Skywarz.ChestItem
weight : 6.25
type : diamond shovel
- == : Skywarz.ChestItem
weight : 31.25
type : wooden pickaxe
- == : Skywarz.ChestItem
weight : 5.0
type : diamond chestplate
- == : Skywarz.ChestItem
weight : 31.0
type : leather boots
- == : Skywarz.ChestItem
weight : 11.0
type : diamond helmet
- == : Skywarz.ChestItem
weight : 10.0
type : iron chestplate
- == : Skywarz.ChestItem
weight : 16.0
type : iron leggings
- == : Skywarz.ChestItem
weight : 11.0
type : diamond boots
- == : Skywarz.ChestItem
weight : 16.25
type : stone pickaxe
- == : Skywarz.ChestItem
weight : 25.0
type : leather chestplate
- == : Skywarz.ChestItem
weight : 31.0
type : leather leggings
- == : Skywarz.ChestItem
weight : 6.25
type : diamond axe
- == : Skywarz.ChestItem
weight : 8.75
type : iron ingot
amount : 8
- == : Skywarz.ChestItem
weight : 19.0
type : chainmail boots
- == : Skywarz.ChestItem
weight : 16.25
type : stone shovel
- == : Skywarz.ChestItem
weight : 31.25
type : wooden shovel
- == : Skywarz.ChestItem
weight : 19.0
type : chainmail helmet
- == : Skywarz.ChestItem
weight : 21.0
type : golden helmet
- == : Skywarz.ChestItem
weight : 13.125
type : gold ingot
amount : 8
- == : Skywarz.ChestItem
weight : 16.25
type : stone axe
- == : Skywarz.ChestItem
weight : 5.833333333333333
type : iron block
- == : Skywarz.ChestItem
weight : 15.0
type : golden chestplate
- == : Skywarz.ChestItem
weight : 13.0
type : stone sword
- == : Skywarz.ChestItem
weight : 12.5
type : iron axe
- == : Skywarz.ChestItem
weight : 16.0
type : iron boots
- == : Skywarz.ChestItem
weight : 18.75
type : golden shovel
- == : Skywarz.ChestItem
weight : 19.0
type : chainmail leggings
- == : Skywarz.ChestItem
weight : 10.0
type : iron sword
- == : Skywarz.ChestItem
weight : 8.75
type : gold block
- == : Skywarz.ChestItem
weight : 5.0
type : diamond sword
- == : Skywarz.ChestItem
weight : 18.75
type : golden axe
- == : Skywarz.ChestItem
weight : 11.0
type : diamond leggings
- == : Skywarz.ChestItem
weight : 16.0
type : iron helmet
- == : Skywarz.ChestItem
weight : 13.0
type : chainmail chestplate
- == : Skywarz.ChestItem
weight : 31.0
type : leather helmet
- == : Skywarz.ChestItem
weight : 26.25
type : stone
amount : 32
- == : Skywarz.ChestItem
weight : 4.375
type : diamond
amount : 8
- == : Skywarz.ChestItem
weight : 43.75
type : grass block
amount : 32
- == : Skywarz.ChestItem
weight : 43.75
type : acacia planks
amount : 32
- == : Skywarz.ChestItem
weight : 43.75
type : acacia wood
amount : 32
- == : Skywarz.ChestItem
weight : 43.75
type : dirt
amount : 32
- == : Skywarz.ChestItem
weight : 43.75
type : birch planks
amount : 32
- == : Skywarz.ChestItem
weight : 15.0
type : cobweb
- == : Skywarz.ChestItem
weight : 43.75
type : birch wood
amount : 32
- == : Skywarz.ChestItem
weight : 7.5
type : golden carrot
amount : 16
- == : Skywarz.ChestItem
weight : 19.5
type : melon slice
amount : 32
- == : Skywarz.ChestItem
weight : 15.0
type : beef
amount : 16
- == : Skywarz.ChestItem
weight : 15.0
type : cooked beef
amount : 10
- == : Skywarz.ChestItem
weight : 19.5
type : baked potato
amount : 16
- == : Skywarz.ChestItem
weight : 37.5
type : apple
amount : 32
- == : Skywarz.ChestItem
weight : 7.5
type : golden apple
amount : 3
- == : Skywarz.ChestItem
weight : 22.5
type : carrot
amount : 32
- == : Skywarz.ChestItem
weight : 15.0
type : flint and steel
- == : Skywarz.ChestItem
weight : 25.0
type : stick
- == : Skywarz.ChestItem
weight : 10.0
type : water bucket
- == : Skywarz.ChestItem
weight : 8.0
type : lava bucket
- == : Skywarz.ChestItem
weight : 5.0
type : ender pearl
Spoiler: items/kit selector
Code (YAML):
# <========================================>
# Kit Selector configuration
# Edit to update the item and menu.
# [[ Skywarz 2.0.0-beta.1 by ~aparx ]]
# <========================================>
# The position of the item in the inventory (0 through 8)
slot : 0
# The item with which a player can interact
item:
type : chest
name : §bKit selector
enchants:
LUCK : 1
lore :
- §8Click to select your kit
flags :
- hide enchants
menu :
# The title of the kit selector inventory
title : Kit Selector
# Kit Selector configuration
# Edit to update the item and menu.
# [[ Skywarz 2.0.0-beta.1 by ~aparx ]]
# <========================================>
# The position of the item in the inventory (0 through 8)
slot : 0
# The item with which a player can interact
item:
type : chest
name : §bKit selector
enchants:
LUCK : 1
lore :
- §8Click to select your kit
flags :
- hide enchants
menu :
# The title of the kit selector inventory
title : Kit Selector
Spoiler: items/leave.yml
Code (YAML):
# <========================================>
# Leave item configuration
# Edit to update the item.
# [[ Skywarz 2.0.0-beta.1 by ~aparx ]]
# <========================================>
item:
item:
type : red dye
name : §cLeave
enchants:
LUCK : 2
lore :
- §8Click to leave this match
flags :
- hide enchants
# Leave item configuration
# Edit to update the item.
# [[ Skywarz 2.0.0-beta.1 by ~aparx ]]
# <========================================>
item:
item:
type : red dye
name : §cLeave
enchants:
LUCK : 2
lore :
- §8Click to leave this match
flags :
- hide enchants
Spoiler: items/quickstart.yml
Code (YAML):
# <========================================>
# Quickstart item configuration
# Edit to update the item.
# [[ Skywarz 2.0.0-beta.1 by ~aparx ]]
# <========================================>
# The position of the item in the inventory (0 through 8)
slot : 7
# The item with which a player can interact
item:
type : nether star
name : §aQuickstart
lore :
- §8Click to quick start your lobby
# Quickstart item configuration
# Edit to update the item.
# [[ Skywarz 2.0.0-beta.1 by ~aparx ]]
# <========================================>
# The position of the item in the inventory (0 through 8)
slot : 7
# The item with which a player can interact
item:
type : nether star
name : §aQuickstart
lore :
- §8Click to quick start your lobby
Spoiler: items/team selector.yml
Code (YAML):
# <========================================>
# Team selector configuration
# Edit to update the item and menu.
# [[ Skywarz 2.0.0-beta.1 by ~aparx ]]
# <========================================>
# The position of the item in the inventory (0 through 8)
slot : 1
# The item with which a player can interact. Use bed, concrete or wool as a type
# to have it replaced with the color of the team a player has joined (it being the default).
item:
type : white bed
name : §bTeam selector
enchants:
ARROW_KNOCKBACK : 2
lore :
- §8Click to select your team
flags :
- hide enchants
menu :
# The title of the team selector inventory
title : Team Selector
team:
status :
# Applied to a team item to show a player that they have already joined the team
joined : Joined this team
# Applied to a team item to indicate that the team is already full
full : This team is full
# Applied to a team item to indicate the team to be joinable
joinable : Click to join this team
# Applied to a team item to showcase who joined a team
member : §8• {0 }
# Team selector configuration
# Edit to update the item and menu.
# [[ Skywarz 2.0.0-beta.1 by ~aparx ]]
# <========================================>
# The position of the item in the inventory (0 through 8)
slot : 1
# The item with which a player can interact. Use bed, concrete or wool as a type
# to have it replaced with the color of the team a player has joined (it being the default).
item:
type : white bed
name : §bTeam selector
enchants:
ARROW_KNOCKBACK : 2
lore :
- §8Click to select your team
flags :
- hide enchants
menu :
# The title of the team selector inventory
title : Team Selector
team:
status :
# Applied to a team item to show a player that they have already joined the team
joined : Joined this team
# Applied to a team item to indicate that the team is already full
full : This team is full
# Applied to a team item to indicate the team to be joinable
joinable : Click to join this team
# Applied to a team item to showcase who joined a team
member : §8• {0 }
Spoiler: items/teleporter.yml
Code (YAML):
# <===================================================>
# Teleporter item configuration
# Edit to update the item and menu.
# The teleporter is a menu with which a spectator
# can teleport to other living participants.
# [[ Skywarz 2.0.0-beta.1 by ~aparx ]]
# <===================================================>
# The position of the item in the inventory (0 through 8)
slot : 0
# The item with which a player can interact
item:
type : compass
name : §7Teleporter
enchants:
LUCK : 2
lore :
- §8Click to teleport to players
flags :
- hide enchants
menu :
# The title of the teleporter inventory
title : Teleporter
# Teleporter item configuration
# Edit to update the item and menu.
# The teleporter is a menu with which a spectator
# can teleport to other living participants.
# [[ Skywarz 2.0.0-beta.1 by ~aparx ]]
# <===================================================>
# The position of the item in the inventory (0 through 8)
slot : 0
# The item with which a player can interact
item:
type : compass
name : §7Teleporter
enchants:
LUCK : 2
lore :
- §8Click to teleport to players
flags :
- hide enchants
menu :
# The title of the teleporter inventory
title : Teleporter
Skywarz Permissions
- skywarz.*
Grants permission to anything Skywarz related - skywarz.play (default)
Grants the ability to participate in Skywarz matches - skywarz.priority
Ensures if the to be joining match is full in idle phase, a non-priority player is kicked to make space - skywarz.setup
Grants access to everything setup related (manage, delete and create arenas and more) - skywarz.stats.*
Grants permission to anything stats related (read and write)- skywarz.stats.self (default)
Grants permission to see the player's own statistics - skywarz.stats.other
Grants permission to see the other players' statistics - skywarz.stats.modify
Grants permission to modify the stats of players
- skywarz.stats.self (default)
Skywarz Commands
- /sw help
Lists all descriptive commands - /sw join <Arena>
Permission: skywarz.play, skywarz.* - /sw leave <Arena>
Permission: skywarz.play, skywarz.* (implicitly)
- /sw stats (Player)
Permission: skywarz.stats.self, skywarz.stats.other, skywarz.stats.*, skywarz.*
- /sw stats reset <Player>
Permission: skywarz.stats.modify, skywarz.stats.*, skywarz.* - /sw leaderboard
Permission: skywarz.stats.other, skywarz.stats.*, skywarz.* - /sw arena list
Permission: skywarz.setup, skywarz.*
- /sw arena create:delete <Arena>
Permission: skywarz.setup, skywarz.*
- /sw arena set lobby <Arena> (unsaved)
Permission: skywarz.setup, skywarz.*
Updates the idle lobby spawn of an arena - /sw arena set spectator <Arena> (unsaved)
Permission: skywarz.setup, skywarz.* - /sw arena set point <Arena> <1:2> (unsaved)
Permission: skywarz.setup, skywarz.*
Sets a playground corner, i.e. the box in which all spawns exist and players can freely move and play within. It explicitly defines the area that is arena-reset by default. - /sw arena add spawn <Arena> <Team> (unsaved)
Permission: skywarz.setup, skywarz.*
Adds a spawn to given team and arena. The amount of spawns can be independant to the final maximum team size. Players spawn randomly for their given team (if possible). - /sw arena remove spawn <Arena> <Team> (Spawn-ID) (unsaved)
Permission: skywarz.setup, skywarz.*
Removes the given spawn or all spawns from given team. - /sw arena save <Arena>
Saves and applies all changes for an arena. If a match is currently ongoing in that arena, the changes won't apply to that specific match.
- /sw arena set rule team.size <Arena> <Number>
Permission: skywarz.setup, skywarz.*
Updates the maximum team size for the arena (default: 2) - /sw arena set rule world.weather <Arena> <clear:downfall>
Permission: skywarz.setup, skywarz.*
Updates the perceived weather environment for all participants (default: clear)
- /sw arena set rule world.time <Arena> <Number>
Permission: skywarz.setup, skywarz.*
Updates the world time for all participants (default: 6000) - /sw arena set rule refill <Arena> <true:false>
Permission: skywarz.setup, skywarz.*
Toggles chest refills for given arena (default: true)
- /sw arena set phase.protection <Arena> <true:false>
Permission: skywarz.setup, skywarz.*
Toggles the protection phase for given arena (default: true)
- /sw bungee update <Arena>
Permission: skywarz.setup, skywarz.*
Updates the dedicated arena in which players are put when they join the server, if Bungeecord is enabled - /sw bungee toggle (true:false)
Permission: skywarz.setup, skywarz.*
Enables or disables the Bungeecord mode. This only works if a valid dedicated arena has been set (see /sw bungee update)
Kit commands:
- /sw kit create <DisplayName...>
Permission: skywarz.setup, skywarz.*
Creates an empty kit with given display name. The final name will be the display name but without color codes. - /sw kit edit <KitName...>
Permission: skywarz.setup, skywarz.*
Enters the kit edit mode, in which the player inventory will represent the kit's inventory one-to-one when saved. - /sw kit save:cancel
Permission: skywarz.setup, skywarz.*
Leaves and saves or cancels the kit edit mode
Tip: you can use color codes (using ampersands '&') on all items for kits!
Servers using this plugin
Shoot me a DM if you want your server to be listed here.
Track the process
You can track how Skywarz is developing, what is planned,
what is currently being developed and more in Skywarz' GitHub!
I hope you like this plugin. Please leave feedback in DMs.
This is an alpha version, thus bugs can occur.
If you see a bug, please open an issue on GitHub.
Quick facts
- Edition: Minecraft Java
- File type: .jar
- Minecraft versions listed: 1.14, 1.15, 1.16
- How to install: Install the matching mod loader (Forge, Fabric or NeoForge) for your Minecraft version. → Download the .jar. → Put it in the .minecraft/mods folder and launch that loader profile.
- Where to get it: Opens on Spigot — not every file is mirrored on our own servers.
Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.
aparx' skywarz is a free Minecraft Java mod. Compatible with Minecraft 1.14, 1.15, 1.16, 1.17 and newer. Downloaded 33,959 times (via Spigot). Download it and open it directly in the game.