| Two in one | Bungee/MultiArena | Extremely Configurable | Kits | Easy to Setup | Achievements |
CUSTOM PREMADE SETUP
You can get a premade setup made by @zArrowTan here: https://builtbybit.com/resources/dragons-escape-setup-modern-minigame.75625/
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.
Dragons can run all systems by himself, however, you can install Vault to work with global economy.
Optionally, you can use only PlaceholderAPI to work with Leaderboards, so HolographicDisplays (see below) isn't a requirement.
The following placeholders are available, they are self explanatory:
%dragons_all_players%
%dragons_dragonescape_wins%
%dragons_dragonescape_gamesplayed%
%dragons_dragonescape_losses%
%dragons_wins%
%dragons_gamesplayed%
%dragons_losses%
Arena Placeholders:
%dragons_arena_players_{arena}%
%dragons_arena_max_players_{arena}%
%dragons_arena_min_players_{arena}%
%dragons_arena_status_{arena}%
Usage example (DeluxeMenus):
Required permission: dragons.setup
First of all set global spawn using /dr setgspawn
If there are two players alive and both are from the same team the game will end.
Spectators of the Winner Team will also be rewarded with a win if they don't leave the game before it ends.
You can set the map to TEAMS or SOLO mode by using
Sign format:
Required permission: dragons.setup
First of all set global spawn using /dr setgspawn
(NEW) Optional: Add Win-Location area.
If not set, the game will end after the player reaches the last Waypoint.
(NEW) Optional: Add Death locations.
You can add a Death Area by using
Sign format:
Command: dragons
Aliases: drag, dr
Manager commands
Arena Config Commands:
Others:
You can add kits, add potions to kits and more.
Leap axe cannot be remove as a kit item.
To add potion effect to the kit, add a custom line named potion-effects, for example:
...
type: "BOTH"
potion-effects:
- 'SPEED : 1000 : 1'
permission: ""
...
EFFECT : DURATION IN SECONDS : LEVEL
Potion Effect List here!
[SPOILER="kits.yml"]
#-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x#
#-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x Kits Config x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x#
#
#Items:
#
# !!!!!! IMPORTANT !!!!!!
#For 1.13 you need to use material name instead of ID
#https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html
#
#Normal item "ID : AMOUNT"
#Item with data "ID:DATA : AMOUNT"
#Item with enchantment "ID : AMOUNT : enchant:ENCHANT_NAME:LEVEL"
#Item with name and/or lore "ID : AMOUNT : name:name : lore:lore"
#You can combine all those type of items however you want.
#
# !!! Kits made for a certain gamemode will be disabled on Kits menu !!!
# !!! Please do not change the Kit Identifier !!!
#
#
#
# All kits will have the Leap item.
# Please do not change the special-item item type, you can change the name.
# Please to not change the Leap item from AXE, you can change the Axe Material, but not the Axe itself.
#
#-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x#
inventory:
dragons-name: '&9Dragons Kits'
dragons-rows: 2
dragon-escape-name: '&9&lDragon Escape Kits'
dragon-escape-rows: 2
Kits:
Leap:
needs-permission: false
type: "BOTH"
permission: ""
dragons-slot: 0
dragon-escape-slot: 0
price: 0
cooldown: 6000
maxUses: 2
display-item: 'IRON_AXE : 1 : name:&6Leap'
items:
- 'IRON_AXE : 1 : name:&6Leap'
lore:
- '&7Click to gain a'
- '&7boost!'
- '&7'
- '&7Cooldown: 6s'
- '&7Dragons Max Uses: 3'
- '&7'
- '&7This kit works for both'
- '&7gamemodes!'
Leaper:
needs-permission: false
type: "BOTH"
permission: ""
dragons-slot: 2
dragon-escape-slot: 2
price: 1000
cooldown: 4000
maxUses: 8
display-item: 'DIAMOND_AXE : 1 : name:&6Leaper'
items:
- 'DIAMOND_AXE : 1 : name:&6Leaper'
lore:
- '&7Click to gain a'
- '&7boost!'
- '&7'
- '&7Cooldown: 4s'
- '&7Dragons Max Uses: 8'
- '&7'
- '&7This kit works for both'
- '&7gamemodes!'
DragonMaster:
needs-permission: false
type: "DRAGONS"
permission: ""
dragons-slot: 4
price: 3500
cooldown: 6000
maxUses: 3
display-item: 'EMERALD : 1 : name:&6Dragon Master'
items:
- 'IRON_AXE : 1 : name:&6Dragon Master'
special-items:
- 'EMERALD : 1 : name:&6Dragon Bait'
lore:
- '&7Throws a item to'
- '&7distract dragons!'
- '&7'
- '&7This kit is for Dragons'
- '&7gamemode only!'
Archer:
needs-permission: false
type: "DRAGONS"
permission: ""
dragon-escape-slot: 6
price: 5000
cooldown: 6000
maxUses: 3
display-item: 'BOW : 1 : name:&oArcher'
items:
- 'IRON_AXE : 1 : name:&6Dragon Master'
- 'BOW : 1 : name:&6Archer'
- 'ARROW : 26'
lore:
- '&7Shoot dragons away'
- '&7from you!'
- '&7'
- '&7This kit is for Dragons'
- '&7gamemode only!'
Warper:
needs-permission: false
type: "DRAGONESCAPE"
permission: ""
dragon-escape-slot: 4
price: 8000
cooldown: 6000
maxUses: 2
display-item: 'ENDER_PEARL : 1 : name:&oWarper'
items:
- 'IRON_AXE : 1 : name:&6Warper'
- 'ENDER_PEARL : 2 : name:&6&oWarper'
lore:
- '&7Throw the Enderpearl to teleported'
- '&7to the player in front of you.'
- '&7You can also teleport back'
- '&7to safe yourself!'
- '&7'
- '&7This kit is for DragonEscape'
- '&7gamemode only!'
Jumper:
needs-permission: false
type: BOTH
display-name: '&bJumper'
permission: ''
dragons-slot: 6
dragon-escape-slot: 6
price: 4700
cooldown: 6300
maxUses: 3
display-item: 'IRON_BOOTS : 1 : HideItemInfo : name:&oJumper'
items:
- 'IRON_AXE : 1 : name:&6Jumper'
lore:
- '&7Can jump higher!'
- '&7'
- '&7This kit works for both'
- '&7gamemodes!'
potion-effects:
- JUMP:30000:1
[/SPOILER]
You can have how many achievements you want.
[SPOILER="achievements.yml"]
dragons_wins:
'1':
enabled: true
display-name: '&8&lThe Survivor'
description: '&7First Dragons win.'
commands:
- dragons coins add %player% 100
'3':
enabled: true
display-name: '&8&lThe 3x Survivor'
description: '&7Win 3 games of Dragons'
commands:
- dragons coins add %player% 300
dragons_games:
'10':
enabled: true
display-name: '&8&lDragon Hunter'
description: '&7Play 10 games of Dragons'
commands:
- dragons coins add %player% 80
dragon_escape_wins:
'1':
enabled: true
display-name: '&8&lThe Survivor'
description: '&7First Dragons win.'
commands:
- dragons coins add %player% 100
'3':
enabled: true
display-name: '&8&lGame Master'
description: '&7Win 3 games of Dragon Escape'
commands:
- dragons coins add %player% 300
dragon_escape_games:
'10':
enabled: true
display-name: '&8&lVeteran'
description: '&7Play 10 games of Dragon Escape'
commands:
- dragons coins add %player% 80
[/SPOILER]
Placeholder: {dragons_wins_position}
Placeholder: {de_wins_position}
Example of HolographicDisplays database.yml
Note that the Placeholder value of the Hologram can be changed at language.yml in Wins-Format.
If you want to work with another Hologram plugin, you can hook the stats via PlaceholderAPI.
Hologram Leaderboard:
{de_records_map_position}
Example:
Personal Records
Send All Data to Database (Options.Leaderboard.Send-All-Data-To-Database), false by default
Disabled by default, you have to set Storage.Accept-Arena-Connections to true and restart the server.
Example of how the system works
To connect arenas, use /dragons connectArena , example /dragons connectArena Jungle Jungle2. Jungle now hosts the leaderboard for Jungle2.
After connecting, you can force all connected arenas to have their time updated, copying the the main arena
The reset map command supports a extra argument to work with this system
There are two ways of disconnecting arenas
You can change how Dragons game mode works.
By setting Options.Game.Dragons-Fight-Mode.Enabled to true, players are able to win the game by completing a goal, see below:
Players can unlock special Trail Effects on the Trails Shop. Example of a trails.yml file:
Config Paths:
FPS Instability (1.15+)
This is a minecraft-side problem, I can't do much about it.
Disabling fireworks, explosions and falling blocks in config should help.
Dragon killing everyone at the start (Dragon Escape)
Your waypoint setup is probably incorrect. When creating an arena, make sure to set at least one waypoint closer (not on Dragon spawn, but close, in front of it) to the Dragon first, then you can gradually add waypoints to move the Dragon however you want. The Dragon will go to the closest Waypoint OR to the next checkpoint that the game calculated according to your waypoint setup.
If you are having too much trouble, send me a Private Message, I can fix your setup.
https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Sound.html
https://hub.spigotmc.org/javadocs/spigot/org/bukkit/potion/PotionEffectType.html
https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html
import com.floodeer.dragons.Dragons;
import com.floodeer.dragons.DragonsAPI;
import com.floodeer.dragons.api.DragonTargetEvent;
import com.floodeer.dragons.api.GameEndEvent;
import com.floodeer.dragons.api.GameStartEvent;
import com.floodeer.dragons.api.PlayerAxeUseEvent;
import com.floodeer.dragons.game.GamePlayer;
import com.floodeer.dragons.game.GameType;
import com.floodeer.dragons.game.IGame;
import com.floodeer.dragons.game.dragons.DragonSctructure;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import java.util.UUID;
public class APIShowCase {
private final DragonsAPI api;
public APIShowCase() {
api = Dragons.getAPI();
}
//API Methods
public GamePlayer getPlayerData(Player bukkitPlayer);
public GamePlayer getPlayerData(UUID uuid);
public GamePlayer getPlayerData(String name);
public Game getGame(String name);
public Game getGame(GamePlayer fromPlayer);
public void saveData(Player... players);
public void updateLeaderboard(boolean receiveAfter);
//Game Events
@EventHandler
public void onGameStart(GameStartEvent event) {
IGame game = event.getGame();
if(event.getType() == GameType.DRAGONS) {
game.getPlayers().forEach(player -> player.getP().sendMessage("You are playing Dragons!"));
}
}
@EventHandler
public void onGameEnd(GameEndEvent event) {
IGame game = event.getGame();
if(event.getType() == GameType.DRAGON_ESCAPE) {
GamePlayer winner = event.getWinner(); // event.getPositions().get(0), depending on your settings.yml
Player second = event.getPositions().get(1);
Player third = event.getPositions().get(2);
}
}
@EventHandler
public void onPlayerUseKit(PlayerAxeUseEvent event) {
if(event.getKit().getName().equalsIgnoreCase("NoShift") && event.getPlayer().isSneaking())
event.setCancelled(true);
}
@EventHandler
public void onDragonTarget(DragonTargetEvent event) {
if(event.getType() == DragonSctructure.TargetType.PLAYER) {
event.getTarget().sendMessage("Be careful!");
}
}
}
[SPOILER="Screenshots"]
[/SPOILER]
UTF-8 support for all files.
[SPOILER="{arena}.yml"]
Name: Jungle
GameMode: DragonEscape
Map:
MinPlayers: 6
MaxPlayers: 16
Sign:
world: world
x: -42.0
y: 14.0
z: -162.0
isSignSet: true
Locations:
LOBBY:
world: Jungle
x: 84.26799554417639
y: 120.0
z: 40.50190751808889
pitch: 0.08600964
yaw: 66.523926
player-spawns:
- '{"world":"Jungle","x":7.489832717715597,"y":55.0,"z":6.085813520288813,"pitch":2.668272,"yaw":-1.9910556}'
- '{"world":"Jungle","x":4.643508293064777,"y":55.0,"z":6.424022754223054,"pitch":2.668272,"yaw":-1.9910556}'
- '{"world":"Jungle","x":3.1466997298962482,"y":55.0,"z":9.10849463136831,"pitch":2.668272,"yaw":-1.9910556}'
- '{"world":"Jungle","x":6.8352282812087415,"y":55.0,"z":11.318404087569151,"pitch":2.668272,"yaw":-1.9910556}'
- '{"world":"Jungle","x":10.91290716559956,"y":55.0,"z":11.255796319344599,"pitch":2.668272,"yaw":-1.9910556}'
- '{"world":"Jungle","x":14.11670391014089,"y":55.0,"z":10.93273754259852,"pitch":2.668272,"yaw":-1.9910556}'
DRAGON_SPAWN:
world: Jungle
x: 7.114245670303945
y: 57.15459809869719
z: -24.886777647048568
pitch: 8.177026
yaw: -0.69974065
waypoints:
- '{"world":"Jungle","x":9.983605204019833,"y":56.41480873525568,"z":15.261004472700012,"pitch":9.984588,"yaw":4.0343695}'
- '{"world":"Jungle","x":5.4268454577624485,"y":57.90631731040234,"z":37.9431885960062,"pitch":18.161627,"yaw":64.200294}'
- '{"world":"Jungle","x":-14.619521409991806,"y":58.64610667384385,"z":37.999411790632486,"pitch":8.349183,"yaw":89.67838}'
- '{"world":"Jungle","x":-34.34155045683803,"y":62.37474364723093,"z":37.09218952200751,"pitch":6.6277037,"yaw":77.97226}'
- '{"world":"Jungle","x":-53.73859717845133,"y":65.3617153612614,"z":52.05505871493212,"pitch":4.38978,"yaw":47.41589}'
- '{"world":"Jungle","x":-71.91997346257044,"y":65.3617153612614,"z":68.44101976583354,"pitch":4.6480007,"yaw":19.613869}'
- '{"world":"Jungle","x":-75.79281622644147,"y":67.96567885004376,"z":85.8693820933607,"pitch":7.918812,"yaw":-6.4665775}'
- '{"world":"Jungle","x":-73.61880073830015,"y":71.69243992751575,"z":101.79407942672206,"pitch":10.501026,"yaw":-40.293724}'
- '{"world":"Jungle","x":-65.53676660330004,"y":69.45184960441517,"z":109.99420575923622,"pitch":16.78443,"yaw":-51.311264}'
- '{"world":"Jungle","x":-42.295906209554666,"y":69.45184960441517,"z":116.1965308995149,"pitch":5.93911,"yaw":-82.55623}'
- '{"world":"Jungle","x":-15.450554968775737,"y":75.44157089716718,"z":119.05074278435984,"pitch":0.43037018,"yaw":-85.9992}'
- '{"world":"Jungle","x":3.1512534315531866,"y":79.92130297135077,"z":120.22873728915037,"pitch":-0.25822237,"yaw":-91.33583}'
- '{"world":"Jungle","x":15.246673919027934,"y":85.51875364380412,"z":120.80750872922776,"pitch":-2.1518543,"yaw":-110.01376}'
- '{"world":"Jungle","x":24.057098822511968,"y":91.49766406627846,"z":99.0617033783937,"pitch":-1.205041,"yaw":-201.76906}'
- '{"world":"Jungle","x":20.376702764399212,"y":97.48638489597938,"z":79.00622801419965,"pitch":13.255391,"yaw":-177.75423}'
SKY:
world: Jungle
x: 20.376702764399212
y: 110.22464798331559
z: 78.91207345920614
pitch: 61.457
yaw: -221.56621
[/SPOILER]
[SPOILER="language.yml"]
Messages:
Prefix: '&9[Dragons] '
Join: '&7%player% &ejoined the game. (&7%players%&e/&7%maxplayers%&e)'
Left: '&7%player% &eleft the game. (&7%players%&e/&7%maxplayers%&e)'
Chat-Format: '&7%playername%: &r%message%'
Chat:
Spectator-Format: '&7[SPECTATOR] &7%displayname%: &f%message%'
Restoring-Period: '&cThis game is restarting, please wait...'
Already-Started: '&cThis game already started!'
Already-InGame: '&cAlready playing!'
Game-Not-Found: '&cNo game found, you are now on the Queue to play.'
No-Permission: '&cNo permission!'
Game-Is-Full: '&cThis game is full!'
Starting: '&eThe game starts in &b%time% &eseconds.'
No-Winner: '&bNo winner!'
Empty-Value: '&bNo one'
Command-Failed: '&cYou cannot use commands while playing dragons!'
Countdown-Cancelled: '&cNot enough players to start the game, countdown &lCANCELLED.'
Game-Cancelled: '&cThe game was cancelled by an Administrator.'
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.'
Enough-Money: '&cYou don''t have enough money to buy this!'
Successful-Purchase: '&aYou successfully purchased &9%item%&a.'
Successful-Selected: '&aYou selected &9%item%&a.'
Kit-Disabled: '&cThis kit is disabled on this gamemode!'
Player-Eliminated: '&7%player% &ewas eliminated! %alive% player(s) left.'
Eliminated: '&cEliminated! &7You''re now on spectator mode.'
Grace-Period-Seconds: '&eThe Grace-Period ends in &b%time% &eseconds!'
Grace-Period-Second: '&eThe Grace-Period ends in &b%time% &esecond!'
Achievement:
- '&7&m---------------&7[&6&lACHIEVEMENT&7]&m---------------'
- ' '
- '%name% - %description%'
- ' '
- '&7&m----------------------------------'
Dragons:
Game-Start:
- '&7&m---------------&7[&6&lDRAGONS&7]&m---------------'
- ' '
- '&7Survive!'
- ' '
- '&7&m----------------------------------'
Game-End:
- '&7&m---------------&7[&c&lDRAGON ESCAPE&7]&m---------------'
- ' '
- '&7Winner: %winner%'
- ' '
- '&7&m----------------------------------'
Dragon-Name: '&c&lDragon'
DragonEscape-Name: '&4&lDragon'
DragonEscape:
Game-Start:
- '&7&m---------------&7[&6&lDRAGONS&7]&m---------------'
- ' '
- '&7Run!'
- ' '
- '&7&m----------------------------------'
Game-End:
- '&7&m---------------&7[&c&lDRAGON ESCAPE&7]&m---------------'
- ' '
- '&7Winner: %winner%'
- ' '
- '&7&m----------------------------------'
Player-Stats:
- '&7&m---------------&7[&c&lDragons&7]&m---------------'
- ' '
- '&8Dragon Escape Wins: &b%dragonEscape_wins%'
- '&8Dragon Escape Games: &b%dragonEscape_gamesPlayed%'
- ' '
- '&8Dragons Wins: &b%dragons_wins%'
- '&8Dragons Games: &b%dragons_gamesPlayed%'
- ' '
- '&8Balance: &b%balance%'
- ' '
- '&7&m----------------------------------'
TimeUnits:
Milliseconds: Milliseconds
Seconds: Seconds
Minutes: Milliseconds
Hours: Hours
Days: Days
Permanent: Permanent
Titles:
Titles:
Player-Eliminated: '&b%player%'
Join: '&eYou are playing on map:'
Left: '&eYou left the game'
Title:
Starting: '&eGame starts in:'
Subtitles:
Join: '&b%mapname%'
Starting: '&eGame starts in:'
Player-Eliminated: '&7was eliminated!'
Sign:
Line:
1-Dragons: '&7[&cDragons&7]'
Dragon-Escape: '&7[&cDragon Escape&7]'
'2': '%state%'
'3': '%mapname%'
'4': '%players%/%maxplayers%'
State:
Waiting: '&aWAITING'
Starting: '&6STARTING'
InGame: '&cIN GAME'
Ending: '&4ENDING'
Restoring: '&8RESTORING'
Motd:
State:
Waiting: '&aWAITING'
Starting: '&6STARTING'
InGame: '&cIN GAME'
Ending: '&4ENDING'
Dragons-Scoreboard:
Title: '&e&lDRAGONS'
DragonEscape-Scoreboard:
Title: '&e&lDRAGON ESCAPE'
Leaderboard:
No-Data: '&7Waiting...'
Loading-Data: '&7Loading...'
Wins-Format: '&e%position%. &b%player% &7- &e%wins% &7wins'
Menus:
Spectator-Name: '&7Alive Players'
Scoreboard:
Lobby-Format:
- ' '
- 'Mode: &a%gamemode%'
- ' '
- 'Map: &a%mapname%'
- 'Players: &b%players%/%maxplayers%'
- 'Needed: &b%minplayers%'
- ' '
- 'State: %capitalize_state%'
- ' '
- yourserver.com
Dragons-Scoreboard-Format:
- ' '
- 'Time Left: &a%time_left%'
- ' '
- 'Players: &b%players%'
- 'Specs: &b%specs%'
- ' '
- 'Dragons: &b%dragons%'
- ' '
- yourserver.com
[/SPOILER]
[SPOILER="options.yml"]
Locations:
spawn: ''
Storage:
Type: SQLite
MySQL:
Host: localhost
Port: '3306'
User: root
Password: ''
Database: test
Update-Interval: '5'
Leaderboard:
Data-Limit: '10'
Options:
Save-Inventory: 'true'
Disable-Spectator: 'false'
Spectator-GameMode: 'false'
Bungee:
Enabled: 'false'
Lobby-Server: lobby
Server-Name: wz1
Enable-Join-When-No-Games: 'false'
Join-Next-Available-Game: 'false'
Whitelisted-Commands:
- sr
- tell
- r
PreStart-Countdown: '35'
Time-After-Game: '8'
Assist-Expiry-Seconds: '12'
Use-Vault: 'false'
Use-CoinsAPI: 'false'
Enable-Rewards: 'false'
Per-Arena-Chat: 'true'
Reset-Stats-When-Rejoin: 'true'
Economy:
Coins-Per-Win: '250'
Coins-Per-Game: '50'
Coins-Per-Game-Death: '10'
Coins-First-Place: '100'
Coins-Second-Place: '80'
Coins-Third-Place: '70'
Game:
Max-Dragons: '7'
Water-Damage: 'true'
Spawn-Falling-Blocks: 'false'
Spawn-Fireworks: 'true'
Grace-Period: '5'
Max-Length: '600'
Dragon-Escape-First-Place-As-Win: 'false'
Sounds:
Starting: CLICK:2
Double-Jump: ENTITY_BAT_TAKEOFF:2
Purchase-Sound: LEVEL_UP:2
Selected-Sound: LEVEL_UP:3
Started: ENDERDRAGON_GROWL:2
Items:
Leave:
Item: 'BARRIER : 1 : name:&cLeave'
Slot: '9'
Spectator-Item: 'COMPASS : 1 : name:&7Players'
Shop:
Item: 'EMERALD : 1 : name:&6Shop'
Slot: '5'
Rewards:
Win-Commands:
- eco give %player% 100
[/SPOILER]
If you have any suggestions go to Discussion and I'll be happy to read them.
User @Bluntvloei - $10
Want to donate? Buy me a coffee.