✦ Tower Defense X ✦ [Create towers and enemies/bosses with your custom designs!]

DIVINE ✦ Tower Defense X ✦ [Create towers and enemies/bosses with your custom designs!] 4.6

    The best tower defense plugin out there! Recreate the famous BTD in minecraft with special features!
You have to Like the resource before downloading.
Native Minecraft Version:1.13Tested Minecraft Versions:
  • 1.7
  • 1.8
  • 1.9
  • 1.10
  • 1.11
  • 1.12
  • 1.13
  • 1.14
  • 1.15
  • 1.16
  • 1.17
  • 1.18
  • 1.19
  • 1.20
[IMG]


[IMG]


Tower Defense X: This minigame is about surviving waves and hordes of enemies! Though you can't really fight by yourself for too long because you will get overwhelmed with the increasing strength and numbers of enemies! Therefore, you should build towers that will automatically attack enemies and help you with your fight! You can unlock new towers as you level up and progress. Build different towers and upgrade them to ensure that you can survive the waves! This plugin is highly inspired by Balloon Tower Defense (BTD), I tried to imitate it and add my own ideas suiting Minecraft!

[IMG]


- Create your custom towers with your own properties and designs! There are 16 default towers!
- Create your custom enemies with your own properties and designs! There are 16 default enemies!
- You can also create Bosses!
- Supports MythicMobs!! so you can create custom cool entities as mobs and bosses.
- Versus mode! When playing in a multiplayer arena you can join the enemy team and start controlling the enemy waves!
- Survival Event! When in versus mode, there is a chance that a survival event will begin where enemy team players can hunt down the defenders and kill them removing some of their coins!
- Endless mode!
- Multiple paths!
- HEX color support!
- The core of the game is highly customizable! You can change each difficulty rewards and effects on the game, the coins each tower/upgrade costs, how many coins/exp does each enemy give, when do new enemies spawn, how much tougher are these enemies and so on! You can change game mechanics dramatically!
- Multi-arena! You can make many arenas and in the same world too!
- Bungee-Mode! The plugin can be installed along other plugins like in your factions server and it can also take over the server and force players to join the lobby! Or even a specific arena and once the arena finishes the server restarts
- Classes! Create your own classes and give them special abilities and buffs! You can also make them require permission! There are 10 default classes
- Boosters! Encourage users to play with temporary coin boosters
- Parties system! All done through a gui, You can create a party and invite players
- Achievements! customize the achievements requirements and awards, and view the achievements in a cool scrollable gui
- Leaderboards for many stats! kills, coins, wins, games played, waves survived, player exp, towers built, sold, upgraded, etc... and you can also display players head
- Ranks! players earn exp and rank up unlocking new towers until they reach the maximum rank which is configurable, you can also run your own commands when a player reaches a certain rank
- Prestiges! Players can reset their rank and increase their prestige! This will prevent players from getting bored after achieving the max rank
- Fully customizable scoreboards!
- Spectator mode!
- MySQL Support and normal files support
- Titles support!
- Built in world manager, you can create, delete, import, backup, restore, tp, setspawn, list, worlds.
- You can customize most of the plugin messages, inventory names, signs format, arena states, items, titles, chat prefixes! BUT NOT ALL. some things are forced to be english!
- PlaceholderAPI and MVdWPlaceholderAPI Support!
- Holograms support! you can make holographic stats and a holographic leaderboard and display tower names in holograms through HolographicDisplays or DecentHolograms! (both supported)
- Give winners/losers custom maps and display your own images!
- Clickable Play Again chat messages
- Fully independent! Can run fully by itself without the need of a single plugin! It doesn't even need multiverse due to its own world management system!
- Create your own coin modifiers for vips! You can give them double coins or triple and so on!
- Broadcaster system that announces certain messages every x seconds
- Lobby countdown shortening system! If the arena has a certain number of players the timer will be shortened to begin faster
- Join signs, Auto join signs, Leave signs, Leaderboard signs!
- Tower shooting effects! (Shot trails)
- Difficulty voting system!
- You can send messages to party members only by starting your message with an exclamation mark
- A profile gui where you can see all of your stats and your unlocked achievements
- A guide item to help players learn more about enemies
- Amazing rollback system
- Lightweight cooldown system
- Edit arenas on the fly!
- Supports UUID and normal names
- Built in coins system, but it can also use vault economy
- A fireworks ending
- You can separate the spectators chat, team chat, and the lobby chat!
- You can create permissions that allow players to have more slots per party
- Players names are colored based on their team, players health is shown below their name, players coins are shown in the tablist!, and enemies show health bars
- You can run your own commands on players when the arena starts or when players win
- You can have an animated scoreboard title
- Basic API and Events
- Create and edit arenas on the fly! You can also create towers easily!
- Smooth, well designed, and created to be able to handle large amount of players

[IMG]


Please keep in mind this is recorded on an early version. Things can change a lot in coming versions but the core idea will be the same.

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]
[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]
[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

The plugin is highly customizable but not fully!! There are some things that are hard-coded like sounds and SOME texts! Below you will find a list of all files generated by the plugin! Using this you will be able to see EXACTLY what you can change and what you cannot!
Config.yml (v1.0): https://pastebin.com/LkU7Bikf
Customization.yml (v1.0): https://pastebin.com/usF55Hic
Classes.yml (v1.0): https://pastebin.com/AVxE1EAD
Enemies.yml (v1.5): https://pastebin.com/p5RGrbrr
Towers.yml (v1.0): https://pastebin.com/bZQaT8ZX
Achievements.yml (v1.0): https://pastebin.com/aAw6BDxP
Broadcaster.yml (v1.0): https://pastebin.com/SaD7KUW1
Each arena will generate a settings file: https://pastebin.com/i3NdhetC
[IMG]

Format: /Command - Description - Permission

- /towerdefense [/td] - Shows a list of commands - None
- /td Join - Puts the player in the game lobby - None
- /td Leave - Removes the player from the game - None
- /td Autojoin- Puts the player in the best available arena - None
- /td List - Shows a list of arenas and other information - None
- /td Admin - Shows a list of admin commands - towerdefense.admin
- /td Setlobby - Sets the lobby location - towerdefense.setlobby
- /td Setspawn - Sets the arena players spawn - towerdefensee.setspawn
- /td Create - Creates a new arena - towerdefense.create
- /td Delete - Deletes an exisiting arena - towerdefense.delete
- /td AddPathSpawn - Adds a path that the enemies follow - towerdefense.addpathspawn
- /td RemovePathSpawn - Removes the last added enemy path - towerdefense.removepathspawn
- /td Showpath - Shows the path of enemies - towerdefense.showpath
- /td Buildingarea - Gives a tool to specify where towers can be built - towerdefense.buildingarea
- /td Towers - Shows a list of tower management commands - towerdefense.towers
- /td Start - Forces an arena to start - towerdefense.start
- /td Stop - Forces an arena to stop - towerdefense.stop
- /td Cheat - Gives you 999999 arena coins! - towerdefense.cheat
- /td Coins - Modifies a player coins - towerdefense.coins
- /td Addbooster - Adds a coin booster - towerdefense.addbooster
- /td Holograms - Manages holographic features - towerdefense.holograms
- /td Reset - Resets a player stats - towerdefense.reset
- /td Edit - Edits arena settings - towerdefense.edit
- /td Editmode - Allows the user to modify surroundings in bungeemode - towerdefense.editmode
- /td Reload - Reloads the plugin - towerdefense.reload
- /td Worldmanager - Shows a list of worldmanagement commands - towerdefense.worldmanager

[IMG]

A huge thank you to @mmuziek for making this awesome tutorial on version 1.5!
A huge thank you to @ItsPat for making this awesome tutorial on version 1.4!
[IMG]

- You first want to set the lobby location by doing /td setlobby
so that when players do /td join they will be teleported there where they can select an arena to join!

- To create an arena, teleport to the arena world and do the command /td create <Name> <minPlayers> <maxPlayers>
This will create a new arena with your defined name.
Min players is the minimum amount of players required for the game to start the countdown. and max players is the maximum amount of players the arena can handle at a time! The arena is considered Single player if the maxPlayers value was 1.

- Now you can set the waiting lobby for the arena using the command /td setlobby <Arena>. This is where players will wait for the arena countdown to finish and they can vote for difficulty or equip classes there.

- Then set the location that the players will teleport to when the game actually begins using /td setspawn <Arena> (This should be inside the map)

- Now you need to setup the enemies path, go to the location where enemies spawn and type /td addpathspawn <Arena> 1. then go for the next point that they should move to and run the command /td addpathspawn <Arena> 1 again. The last path added is the location where if an enemy reaches it, the players health goes down. In case you made a mistake while adding paths you can delete the last added path with /td removepathspawn <Arena> 1. You can also check the paths added using /td showpath <Arena> 1.

The 1 written above is the Path ID. Use Path ID = 1 for your first route. If you have a second route, repeat the process using Path ID = 2 and so on, (For example you would use /td addpathspawn <Arena> 2 not /td addpathspawn <Arena> 1)

- Finally, you need to select the central blocks of towers. Basically the blocks that players have to right click to open the tower builder menu and build a tower there! To do this, use the command /td buildingarea <Arena>. This will give you a tool that when you left click a block with it you can make that block a central block.

- And finish! You just have to enable the arena in the arena editor (/td edit <Arena>) and hit save!

- You could also use the worldmanager commands to backup your worlds just incase anything went wrong
:)


- If you want to make all players automatically join tower defense when they join the server you need to enable bungee mode in config.yml! If you have a bungee cord and a lobby system, This plugin will only be on your game server and NOT in your hub server, if you want to join through signs from your hub server, then you need to have a plugin such as TeleportSigns in your hub.

- Using bungee mode, if you have 1 arena setup then players will automatically join that arena once they join the server and when the arena finishes the server will close! If you had multiple arenas in the server then the plugin will simply run the command /td join to put all players in the lobby where they can select an arena! This also prevents them from leaving the lobby and there is no restarting done here!
- To create tower defense signs the first line must be - To create a lobby join sign the second line should be 'join' - To create an arena join sign the second line join be 'join' and the third line should be the arena name - To create a leave sign the second line should be 'leave' - To create an autojoin sign the second line should be 'autojoin', additionally you can specify if you want the autojoin to look for singleplayer arenas only or multiplayer arenas only by writing 'singleplayer' or 'multiplayer' in the third line - To create leaderboard signs the second line should be 'top' and the third line should be the stat name, example 'kills', 'wins', 'games_played' etc... and the fourth line should be the rank you are looking for! If you want to display the TOP player (rank 1) then write in the fourth line '1'

[IMG]

This plugin works from 1.7.9 and upwards! But it is mainly designed for 1.10! You may encounter some issues in lower versions for example, in lower versions there is no option to disable collision and therefore some enemies might block each other causing the wave to slow down.
Also enemies health bars don't appear correctly so disable them in config.yml

Using mysql is highly recommended as it increases the performance and protects you from some issues

Enemy movements are not normal! They make look a little stuttery and they can also look somewhere else while walking.

If you want any holographic feature, you will need to install HolographicDisplays or DecentHolograms!
If you use HolographicDisplays and want to use the Holographic Stats feature, you will need to install ProtocolLib too otherwise the stats holograms will collide.

Current tower abilities are: multi-target, burn, lightning, farm, slow

Tower shooting effects (Shot trails) may be expensive in terms of performance! Modify the plugin and change settings to what suit you best!

There are some extra permissions!
towerdefense.createsigns to create signs
towerdefense.breaksigns to break signs
towerdefense.unblockcmds to be able to use commands while in game
towerdefense.globalchat allows the player to start a message with @ to be sent to everyone if the chat separation features are enabled in config.yml

If vault is enabled in the config, Leaderboards will not show 'Coins' as the player vault money, it will still display the player coins

To use custom MythicMobs as enemies, you should go to enemies.yml and set your enemy 'Entity' field as follows:
# For custom MythicMobs, your entity should be 'MYTHICMOBS:<Name>'. For example 'MYTHICMOBS:SkeletalKnight'
so instead of 'ZOMBIE' for example, you put the above.
Some MythicMobs may not be supported (especially flying ones). Keep that in mind and contact me for special support for these mobs.


Ask about any concern in the discussion area before purchasing.

Before posting a negative review, please ask for help!

[IMG]

Tell me your server IP's and I will add them here as long as they have the plugin running on them!

- jogar.craftsgp.net
- bitcubes.eu


[IMG]

his API is very basic and doesn't allow to do a lot of things as of now.
Code:
package me.wazup.addon;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;
import java.util.Map.Entry;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
import me.wazup.towerdefense.Enums.Stat;
import me.wazup.towerdefense.PlayerData;
import me.wazup.towerdefense.TowerDefense;
import me.wazup.towerdefense.TowerDefenseAPI;

public class Addon extends JavaPlugin {

  public void example(){
  TowerDefenseAPI api = TowerDefense.api;

  //Get a player playerdata
  Player p = Bukkit.getPlayer("Wazup92");
  PlayerData data = api.getPlayerData(p);

  //Modifying some of their stats
  data.addCoins(p, 50);
  data.kills += 10;

  //Some booleans
  api.isInArena(p);
  api.isSpectating(p);
  api.isPlaying(p);

  //Getting top players
  //First you have to load all players data, this should be Async
  try {
  HashMap<String, String> playersData = api.getAllPlayersData();
  //You can now get top players out of the playersData, ordered by a specfic stat
  //If the third argument (int) is bigger than the amount of entries in the playersData hashmap, it will be filled with 'NO_PLAYER'
  List<Entry<String, Integer>> top = api.getTopPlayers(playersData, Stat.KILLS, 10);
  //Top now contains the top 10 players, ordered by their kills stat
  //Entry key is the player name, and the entry value is their score
  for(int i = 0; i < top.size(); i++){
  Bukkit.broadcastMessage("# " + (i+1) + " is " + top.get(i).getKey() + " with a score of " + top.get(i).getValue());
  }
  } catch (SQLException e){
  e.printStackTrace();
  }
  //If you want to modify offline players stats, then you have to use a different method, because you can't use the PlayerData class on offline players
  //The following method returns true if the stat was updated, and it returns false if the player name wasn't found or the stat wasn't updated for some reason
  //The boolean at the end 'increment' is whether you want to SET their stat to the give value, or you want to add it up
  try {
  boolean updated = api.modifyOfflinePlayerStat("Wazup92", Stat.COINS, 50, true);
  } catch (SQLException e){
  e.printStackTrace();
  }

  }

}
Events:
- TDArenaStartEvent
- TDArenaFinishEvent
- TDArenaStopEvent
- TDPlayerJoinArenaEvent
- TDPlayerLeaveArenaEvent
Plugin's lobby scoreboard placeholders (customization.yml):
%kills%, %enemies_spawned%, %coins%, %wins%, %games_played%, %highest_wave_survived%, %player_exp%, %player_next_rank_exp%, %player_rank%, %towers_built%, %tower_upgrades%, %towers_sold%

Plugin's arena scoreboard placeholders (customization.yml):
%arena_players%, %arena_max_players%, %arena_viewers%, %arena_name%, %arena_mode%, %arena_wave%, %arena_difficulty%, %arena_final_wave%, %arena_health%, %arena_max_health%, %date%

The placeholders mentioned below are for PlaceholderAPI, if you want to use MVdWPlaceholderAPI placeholders then use the same placeholders below but replace the first % with { and replace the last % with }

Non-player specific placeholders:
%towerdefense_players_count%, %towerdefense_parties_count%, %towerdefense_lobby_players_count%, %towerdefense_arenas_count%

Player-specific placeholders:
%towerdefense_arena%, %towerdefense_party_leader%, %towerdefense_kills%, %towerdefense_enemies_spawned%, %towerdefense_coins%, %towerdefense_wins%, %towerdefense_games_played%, %towerdefense_highest_wave_survived%, %towerdefense_player_exp%, %towerdefense_player_next_rank_exp%, %towerdefense_player_rank%, %towerdefense_towers_built%, %towerdefense_tower_upgrades%, %towerdefense_towers_sold%

[IMG]

Check out my other projects as well!

[IMG][IMG]
[IMG][IMG][IMG][IMG]
[IMG][IMG]
[IMG][IMG]
[IMG] [IMG]


Discounts:
- If you own 3 or more of my plugins, you can purchase any of the remaining plugins for 35% off! (づ。◕‿‿◕。)づ
If you don't own 3 or more but you want to purchase 3 at once, you get a 25% discount! (ノ◕ヮ◕)ノ*:・゚✧
To perform any of the above, you need to contact me through email -> [email protected] and also message me here as well!

̿̿ ̿̿ ̿̿ ̿'̿'\̵͇̿̿\З= ( ▀ ͜͞ʖ▀) =Ε/̵͇̿̿/’̿’̿ ̿ ̿̿ ̿̿ ̿̿

[IMG]


There are several ways to get support! Please use any of the following
  1. Email: [email protected]
  2. Discussion area
  3. Private Message
  4. Discord (Click image below to join)
[IMG]

[IMG]

By purchasing this plugin you to the following!
- You are not allowed to redistribute this plugin in any way!
- Refunds are not allowed!
- Source code costs additional money!
- I'm not obligated to do updates within a specific time period!
[IMG]
Go to download
tuper
Author tuper
Legend

Posts

373

Likes

679

Resources

135

Downloads 0
Views 201
First release
Last update
Rating 0.00 star(s) 0 ratings
Top