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

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

The best tower defense plugin out there! Recreate the famous BTD in minecraft with special features!




  • Added %tower_damage% and %tower_range% placeholders for the Tower-Upgrades Menu Stats item
  • You can now create enemies that are unique for each arena. This can be done by having an enemies.yml file in the arena folder. This will make that arena use this specific enemies.yml file. It is recommended to copy the global enemies file and paste it in the arena folder next to settings.yml if you want to have arena-specific enemies.
----------, Jan 1, 2025

  • You can now completely customize the arena item lore in the arena selector
  • Add a description field in the arena-settings.yml for each arena. You can now add a description and display it in the arena selector
----------, Dec 30, 2024

  • Confirmed 1.21 support
  • Fixed a bug where some items were not interactable in latest versions like the class selector
  • Updated tower shooting effects to use Minecraft default particle library.
----------, Sep 30, 2024

  • You can now customize the names and format of stats inventory items in customization.yml
  • Removed start up error due to invalid custom map url in config.yml
----------, Jun 9, 2024

  • All sounds can now be disabled / customized in sounds.yml
----------, May 27, 2024

  • Added MythicMobs support!!
To use it, in your enemies.yml you can set the enemy entity type 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.
----------, Mar 7, 2024

  • Added DecentHolograms support
  • Fixed an error that occured with the archer and archer+ classes in the latest minecraft versions
----------, Feb 12, 2024

  • Fixed a bug where classes with no permission were inaccessible to non-opped players
----------, Jan 9, 2024

  • Fixed a bug where the /td command contained a debugging broadcast
----------, Aug 17, 2023

MAJOR UPDATE
  • Added support for all minecraft items and blocks up to 1.20
  • You can now create towers with any of the new minecraft items.
  • This update requires reseting towers.yml and recreating any towers you had. I added a converter that automatically updates your towers.yml in case you do not want to reset, however this converter might be inaccurate and your old towers wont look correctly. Feel free to try it if you want.
  • This required a lot of internal changes. So please backup your plugin files before updating to this version as things may go wrong here. If that happens, revert back to the old files and an older version until I fix any issue.
----------, Jul 25, 2023

  • Confirmed 1.20 support
  • Renamed the stat 'Highest wave survived' to 'Wave survived' so that it fits in signs
----------, Jul 9, 2023

  • Fixed a bug where when creating a top sign it would send an incorrect message.
  • Added a clear way to disable the message broadcaster in broadcaster.yml
----------, Mar 25, 2023

  • Added HEX color support
----------, Mar 23, 2023

  • Fixed an important bug that broke the game for old Minecraft versions when an enemy dies
----------, Jan 24, 2023

  • Removed tower conversion code. Please do not update to this version if you did not have versions 3.5 or 3.6 or 3.7 installed before
  • TowerDefense.getInstance().join method is now made public. This can allow other plugins and API's to make players join the gamemode.
----------, Oct 16, 2022

  • Fixed a bug where entities could burn under the sun if no helmet was provided.
  • Added support to spawn bat enemies
----------, Oct 11, 2022

  • Fixed a bug where if 2 players play and enemy with 1 coin get killeds they get 0 instead of 0.5 (Decimal distribution is now supported)
----------, Oct 8, 2022

  • Added an option to disable receiving notifications from me
  • Added 'required-rank' property to arenas. You can now make arenas require a certain rank to play them
  • Fixed a bug with join signs updating blocks behind them
  • Confirmed 1.19 support
----------, Jul 18, 2022

  • The plugin has been finally updated from using material IDS which have been removed since 1.13.2. It will now use material names instead of ID's
  • Added support for all new minecraft blocks to be used in towers!
  • Added a tower converter that converts your previous files that contain tower data using material ID to the new format. Hopefully, this will help you avoid needing to recreate towers, Though if you encounter issues, it is recommended that you reset towers.yml and recreate anything you had. (Backup your towers.yml before installing this version)
  • Added a safety check in loading boosters
  • Fixed a bug in towers command where towers with a space in their name were not recognized.
----------, Mar 9, 2022

  • Fixed a bug where enderman was teleporting and therefore couldn't be used as a mob.
  • Added an option in config.yml to enable witch healing using potions. (It is now disabled by default)
  • Massive code organizations
----------, Dec 25, 2021

  • You can now use titles without TitleManager
  • Added a notifications system. I can now send you notifications in-game!
  • Organized the code and did a clean up
----------, Oct 30, 2021

  • You can now have multiple paths!
  • Fixed a bug where the spectator menu was not working in latest minecraft versions
  • Changed the command deletepath and addpath to removepathspawn and addpathspawn
----------, Sep 16, 2021

  • Added a clickable play again message that appears at the end of a match
  • Added a safety check for a bug where two waves would spawn if the enemies died quickly on some servers
  • You can now customize the holographic leaderboard style
----------, Jul 3, 2021

  • Fixed a bug where doing /reload was undoing recent config changes.
----------, May 14, 2021

  • Improved compatibility with multiverse-core
  • Added archer class
  • Added archer+ class
  • Added placeholders %current_damage% and %current_range% for the Damage-Upgrade and Range-Upgrade sections of Tower Upgrades in customization.yml
  • Reduced console messages on plugin enable
----------, Apr 24, 2021

  • Added bStats support! (https://bstats.org/plugin/bukkit/TowerDefenseX/)
  • Added an option to keep player potion effects when they join the game (Some servers required this for special effects)
  • Added boosters! Use command /td addbooster (towerdefense.addbooster) to give boosters!
----------, Mar 19, 2021

  • Fixed a bug where players in multiplayer could place 2 towers in one spot if they purchased at the same time.
  • You can now use the command /td join <Arena> to join an arena directly. Even if outside towerdefense lobby
  • You can now use the command /td autojoin even if outside towerdefense lobby
  • You can now completely customize holographic stats in customization.yml
----------, Feb 14, 2021

  • You can now give winners custom maps! And you can display your own texts and images inside them such as your logo! The feature is available in config.yml and can be seen below
  • Improved the performance of leaderboards by a lot
  • Minor performance improvement in arenas (Fewer tasks generated)
[​IMG]
[​IMG]
----------, Feb 10, 2021

  • Updated project to use java 8
  • Added tower shooting effects! (Shot trails)
  • If you want this feature to work for existing towers, you need to add the 'Shooting-Effect' section manually to your towers in towers.yml
  • Please read all the text below this image... this text will be generated automatically in towers.yml for new users or if you reset your towers.yml, but for users that want to keep their towers.yml as is then you should read the text from here
[​IMG]
# Shooting-Effects do not work on all server versions! You can test though...
# Your server may not even have any of these! If you set a Shooting-Effect and it starts throwing errors or not displaying anything at all, then set it back to 'NONE'
# This feature may hurt the performance! Set all shooting effects to 'NONE' to disable it
# Possible values:
# NONE, ASH, BARRIER, BLOCK_CRACK, BLOCK_DUST, BUBBLE_COLUMN_UP, BUBBLE_POP, CAMPFIRE_COSY_SMOKE,
# CAMPFIRE_SIGNAL_SMOKE, CLOUD, COMPOSTER, CRIMSON_SPORE, CRIT, CRIT_MAGIC, CURRENT_DOWN,
# DAMAGE_INDICATOR, DOLPHIN, DRAGON_BREATH, DRIP_LAVA, DRIP_WATER, DRIPPING_HONEY,
# DRIPPING_OBSIDIAN_TEAR, ENCHANTMENT_TABLE, END_ROD, EXPLOSION_HUGE, EXPLOSION_LARGE,
# EXPLOSION_NORMAL, FALLING_DUST, FALLING_HONEY, FALLING_NECTAR, FALLING_OBSIDIAN_TEAR,
# FIREWORKS_SPARK, FLAME, FLASH, FOOTSTEP, HEART, ITEM_CRACK, LANDING_HONEY, LANDING_OBSIDIAN_TEAR,
# LAVA, MOB_APPEARANCE, NAUTILUS, NOTE, PORTAL, REDSTONE, REVERSE_PORTAL, SLIME, SMOKE_LARGE,
# SMOKE_NORMAL, SNEEZE, SNOWBALL, SNOW_SHOVEL, SOUL, SOUL_FIRE_FLAME, SPELL, SPELL_INSTANT,
# SPELL_MOB, SPELL_MOB_AMBIENT, SPELL_WITCH, SPIT, SQUID_INK, SUSPENDED, SUSPENDED_DEPTH,
# SWEEP_ATTACK, TOTEM, TOWN_AURA, VILLAGER_ANGRY, VILLAGER_HAPPY, WARPED_SPORE, WATER_BUBBLE,
# WATER_DROP, WATER_SPLASH, WATER_WAKE, WHITE_ASH
# # # # # # # #
----------, Jan 30, 2021

  • You can now translate the Tower Upgrades menu
  • You can now enable/disable difficulties
  • You can now customize the boss message
----------, Jan 14, 2021

  • Updated the plugin to use the latest TitleManager versions! (Their api has changed and using latest version of it was causing errors here)
  • Fixed a small issue where if players built a tower and due to tower structure or environment they still could interact with the tower building block, they could stack towers.
  • You can now customize the achievement unlocked message in achievements.yml
  • Fixed a bug where spectators could damage others in 1.7.9
  • Reduced leaderboard updater log in console
----------, Dec 11, 2020

  • Fixed a bug where classes permissions were not working as supposed to
  • Fixed a bug where TDArenaStopEvent was not being called
  • Removed a debug command that was /td d
  • Confirmed 1.16 support
----------, Aug 6, 2020

  • Enabled the command /td leave while in bungee mode
  • Added an option in config to stop distributing coins to all players in multiplayer, instead, it will give the coins to the one that kills or owns a tower that kills. This will also make the farm only give coins to its creator.
  • Fixed a bug where player data was not removed after they left the game
  • Added a new tower ability which is 'slow' and it will make enemies hit by it slowed by X% for Y seconds! There is no default tower generated for it though, so you can either add it to existing towers or build a new tower on your own :)! (A cold theme is recommended)
  • Added a new Special-Item which is a BLAZE_ROD and a new class named Miner. The class can mine blocks to farm coins! (blocks are not actually broken, so your environment is safe!)
  • Added a new Special-Item which is a REDSTONE and a new class named Healer. The class can heal the player health to survive longer!
  • To get the new classes, either let the file regenerate or add the following into your classes.yml!
  • Code (Text):
    Classes:
      Miner:
        Material: BLAZE_ROD
        Enabled: true
        Cost: 75
        Permission: ''
        Equipment:
          Armor:
            Helmet: 'LEATHER_HELMET : name:&cMiner helmet : dye:yellow'
            Chestplate: 'LEATHER_CHESTPLATE : name:&cMiner chestplate : dye:yellow'
            Leggings: 'LEATHER_LEGGINGS : name:&cMiner leggings : dye:yellow'
            Boots: 'LEATHER_BOOTS : name:&cMiner boots : dye:yellow'
          Items:
          - 'BLAZE_ROD : 1 : name:&bMining Tool'
        Description:
        - '&bGet a blaze rod that converts mined blocks'
        - '&bInto coins!'
        Effects: []
      Healer:
        Material: REDSTONE
        Enabled: true
        Cost: 75
        Permission: ''
        Equipment:
          Armor:
            Helmet: 'LEATHER_HELMET : name:&cHealer helmet : dye:red'
            Chestplate: 'LEATHER_CHESTPLATE : name:&cHealer chestplate : dye:red'
            Leggings: 'LEATHER_LEGGINGS : name:&cHealer leggings : dye:red'
            Boots: 'LEATHER_BOOTS : name:&cHealer boots : dye:red'
          Items:
          - 'REDSTONE : 1 : name:&bHealing Tool'
        Description:
        - '&bGet a healing tool that when used'
        - '&bWill heal you!'
        Effects: []
----------, May 2, 2020

  • Fixed a bug where the timer would reset after 60 minutes
  • Fixed a bug where the second page of enemies was not being displayed initially
  • Added rank prestiges! once you reach the maximum rank you can click an item in your inventory to reset your rank and increase your prestige!
  • Added the placeholder %player_prestige% and reduced the default max rank to 25
  • You can also show the prestige in the chat along with the rank, just add %prestige% to the rank chat prefix
  • You can also have custom awards for achieving a prestige! (config.yml)
  • Added new achievements for unlocking prestige!
  • You can now completely customize how achievements look! Added a 'styling' section in the achievements.yml
----------, Feb 20, 2020

  • Fixed a bug where slimes/magma cubes would split on death creating non-towerdefense mobs roaming around. So you can now use these mobs!
  • Decreased the default size of slimes/magma cubes spawned
----------, Nov 14, 2019

  • Added /td leave and kept the leave item in menus also
  • Fixed a bug where the number of viewers listed in the arena gui sometimes does not update
  • Fixed a bug where spectators get stuck in the arena if the players leave the arena
  • Added the option 'Spectators-Boundary-Distance' to config.yml which prevents spectators from moving a certain distance from an arena spawn point
----------, Oct 21, 2019

  • Added endless mode! (You need to add your own enemies after wave 30 though! otherwise the last enemy will keep spawning)
  • Fixed a bug where tower damage tracker was not counting some damage
  • Removed the general executed commands on player win in config.yml and added player-win and player-lose commands for each difficulty instead
----------, Oct 11, 2019

Support is highly appreciated :D!
  • Added bosses! You can now create bosses that spawn at a certain wave! You need to either add manually a configuration section named 'bosses' in enemies.yml or just delete the file and let it regenerate (preferred)! And you also need to add 'Boss-Material' under Guide-Format in enemies.yml
  • Fixed an important bug where if multiple towers targeted the same enemy at the same moment only one would be dealing damage
  • Fixed an important bug where enemy players gained stacking exp each wave!
  • Added the new command /td cheat which will give the player 999999 coins for testing purposes!
  • Added the option 'Auto-Equip-Free-Classes' in config.yml to force players to use a free class if they didn't select one
  • Reduced default interval between waves to 5 seconds
  • Increase zues tower default damages
  • Added some additional informative default information in the broadcaster.yml
------------------------
Example for manually adding bosses and boss material in guide

Guide-Format:
Material: MONSTER_EGG
Boss-Material: EYE_OF_ENDER
////

Enemies:
///

Bosses:
Spider King:
Entity: SPIDER
Coins-On-Kill: 200
Exp-On-Kill: 100
Health: 1000
Damage: 30
Wave-Released: 15
Speed: Low
Equipment:
Helmet: AIR
Chestplate: AIR
Leggings: AIR
Boots: AIR
Hand: AIR
----------, Oct 7, 2019

Please do remember to support the plugin with a nice review! :D And also tell me your server ip's that have the plugin running in them
  • Added a tower kills / damage tracker that can be seen in each tower menu
  • Allowed team mates to upgrade any tower and added an option to prevent them from doing so
  • You can now change enemies speed! You can either add 'Speed' configuration to all enemies in enemies.yml manually or just let the file reset by deleting it. The plugin won't break if you don't do so but you won't have an option to change the speed.
Example:
RED_ZOMBIE:
Entity: ZOMBIE
Cost: -1
Coins-On-Kill: 2
Exp-On-Kill: 1
Health: 10
Damage: 1
Wave-Unlocked: 1
Speed: Normal
Equipment:
Helmet: 'LEATHER_HELMET : dye:red'
Chestplate: 'LEATHER_CHESTPLATE : dye:red'
Leggings: 'LEATHER_LEGGINGS : dye:red'
Boots: 'LEATHER_BOOTS : dye:red'
Hand: 'AIR'
  • You can now display enemies speed in the enemy guide with the tag %speed%
  • Listed all possible speeds for towers & enemies in configs. # Speed variables: Normal, Normal-High, Normal-Low, High, Low, Very-High, Very-Low, Highest, Lowest
----------, Oct 4, 2019

  • Fixed a bug where the leaderboards were displaying wrong stats
  • You can now display 'enemies_spawned' stat in the leaderboards
Awesome updates will be on the way! New classes & new features!
Please remember to support me through the reviews section :D !
----------, Oct 3, 2019

  • Added an update checker! Users with permission towerdefense.admin will be notified when an update occurs
  • Added more detailed explanation for some configs in config.yml
----------, Oct 1, 2019

Fixed placeholders for PlaceholderAPI
Fixed the towers delete command and build command
Fixed an error that occured when right clicking summoned enemies in gui
Fixed a bug where players could buy red zombies -> earn coins -> buy a blue zombie or something else -> Sell red zombies for no loss (Since no coins) then buy red zombies again and repeat
Fixed super bomber upgrade price
Made the AI summon fill more safe (server side)
Added a button in tower menu to view its range
Decreased the default length of hard & expert difficulties
Increased default difficulty for enemies in waves 20+
----------, Oct 1, 2019

Resource Information
Author:
----------
Total Downloads: 418
First Release: Sep 26, 2019
Last Update: Jan 1, 2025
Category: ---------------
All-Time Rating:
35 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings