Bukkit Plugins
4,961 Downloads Last Updated: Jun 1, 2013 Game Version: CB 1.5.2-R0.1  

Keybased protection, team score and a reason for conflicts.

What's the use of fortresses and castles if anybody can just mine right in? What's the use of labyrinths if anyone just mine right through them? Why build traps if people just bypass them by mining around them? I made this plugin because I got tired of the lack of game play mechanics in Minecraft.

Basic premises of plugin: On first join find yourself in a indestructible room without escape. Select your spawn location by pushing any of four buttons (nort, east, south or west). Gather ten blocks of obsidian and build a heart for protection. In front of the heart you set the key (three blocks) and put one block of iron, gold or diamond to fuel the heart. As long as the three leftmost slots in your inventory is the same as the key you have permission within the hearts protected volume (radius configurable). Without the correct key the volume is protected by the level of protection offered by the choice of fuel. Put a sign on the heart and write a team name on the first line. Several hearts can have the same team name. Hearts do not need to share the key even if they belong to the same team. All iron, gold and diamond put in the chest behind the heart counts as team points. Points are calculated and displayed every time a chest behind a heart is opened. For players without the right key it becomes cumbersome to mine within a hearts protected volume. Also man made blocks/items (bricks, fence, doors, ovens, crafting tables etc) can't be destroyed by mining or be used (buttons, levers and pressure plates are excluded). However they are still vulnerable to TNT.

What does this mean:

  • You can build amazing castles and bases that actually takes some cunning and fighting to break into.
  • TNT now matters!
  • Traps now matters too!
  • Should you mine and collect valuable material or should you attack and steal from other teams savings?
  • Should you use valuable material for score or to make tools?
  • Lots of room for betrayal and backstabing through distributing key to enemy, changing key without team mates knowledge, running off with amassed treasure etc.
  • No commands! Either you know the right key or you don't!
  • More than 30,000 possible key combinations.


  • On first join players get to choose their spawn location on the server [north, east, south, west] (configurable distance).
  • Build heart to protect volume around heart (configurable radius).
  • Iron, Gold and Diamond block used as fuel for heart, each with different level of protection:
  • - Iron block - Items/manmade blocks unmineable and harder to mine for players without the right key.
  • - Gold block - Same as iron plus players without the right key can't build. Also no mobspawn above level 62 within hearts protected volume (configurable level).
  • - Diamond block - Same as gold but no mobspawn at all within hearts protected volume.
  • Each heart has a key for permission and a chest for score.
  • Each heart can be assigned to a team through a sign (Only first line on sign matters).
  • Keys are set in each players inventory (the three leftmost slots).
  • If two hearts overlap the oldest one has precedence.
  • Push any stone button to calculate and display score per team, based on iron, gold and diamond in heart-chests.
  • In protected areas mining is more cumbersome for players without the right key.
  • In protected areas man made blocks/items cannot be destroyed by mining (However they can still be destroyed by TNT).

Instruction: Put HomeIsWhereTheHeartIs.jar in plugin directory. Start and stop server once to generate config file.

YouTube video

Known issues:

  • Sometimes the chunks for the selected spawn area is not loaded fast enough when chosen for the first time, and the player falls to his death. This shouldn't matter too much as all players have no items on join and a respawn puts the player back in the correct location.
  • This is my first ever Java programming. I have tried to squash all bugs but expect to find bugs/issues.
  • Also the settings bestFuelMobCancel, betterFuelMobNerf and useHeartChest are currently unused.

Future development:

  • I would like to implement so that armor and TNT can not be carried at the same time. This because TNT now has a much more powerfull role and being able to spot enemies likely to carry TNT would add to the game play.


Version 1.4

In this release some new stuff has been added:

noPVP and noTNT fuel:

These are blocks which can be used as fuel for a heart. Within the radius of a heart with noPVP fuel, no players with the right key can die. If the heart has noTNT fuel, then all explosions within the raidus will be cancelled. They can be configured in the config.yml file. If you want to disable this functionality I recommend setting noPVP to block 137 (command block) and noTNT to 7 (bedrock) as these blocks shouldnt be available to players unless they cheat. Default values for noPVP is 133 (Block of Emerald) and for noTNT it is 22 (Block of Lapis Lazuli).

Enchanted book perk for the leading team:

Once every ingame day/night cycle (24000 ticks) the team with the most score will get an enchanted book with random enchantment and random level in the chest beloging to their heart. If there is no space left in the chest there will be no book. If a team has several hearts the receiving chest will be randomized.

Version 1.3.2

Moved lots of previously hardcoded stuff to the config. The following are now configurable:

  • cancelMob: 50,51,52,53,54,55,56,57,58,59,60,61,62,63
  • breakProtectedItems: 25,26,27,28,29,33,34,45,47,54,55,58,61,62,63,64,65,66,67,68,69,70,71,72,77,84,85,91,93,94,95,96,98,101,107,108,109,112,113,114,116,117,118,120
  • useProtectedItems: 26,54,58,61,62,64,95,96,107,116,117
  • allowedBlocks: 46,51,77
  • blockSubstitution: 121>98,42>41,53>5,57>42,87>48,1>4,5>24,43>44,41>24,89>88,48>89,44>82,24>12,4>13
  • Fixed a couple of bugs where I accidentally (sloppily :)) used the default world without checking the actual world of the heart. This bugged out hearts in other worlds than the standard, made score only calculate contents of chests in the same world as the player and so on. I believe I have fixed them all.
  • This version creates a new config, so you should stop the server, delete (or move) your current config and then restart the server.

Version 1.3

  • New config value, useSpawnBox. Set to false if you do not want to use the room where players first spawn and choose their destination.
  • You MUST add the field useSpawnBox to the config.yml file. It should be directly below "Spawn:". Dont forget the two leading spaces. If you're not familiar with editing yml files it's better to stop the server, delete config.yml, update the .jar file and start the server again. Then a completely new config.yml file will be created.
  • Fuel consumption is implemented but not thouroughly tested. Set consumeFuel to true in config to enable. consumeCheckInterval sets how often the server should check if a heart has consumed its fuel. consumeTime is how long before a block of fuel is consumed. A value of 20 is one second. Default consumeTime is 24000 which is 20 minutes (One complete MC day cycle).
  • The best fuel in a heart is consumed first
  • Pressing a button no longer calculates and shows score. This is now done by using one of the chests on the backside of a heart. This means that you can not check score if you do not have access to a heart.

Version 1.2

  • Default config now in English
  • Placing TNT in area protected by either gold or diamond fuel without having the right key now places primed TNT entity.

Version 1.1

  • Releasing the plugin


  • To post a comment, please or register a new account.
Posts Quoted: