Extra Hard Mode
Extra Hard Mode changes the game rules to create NEW, INTERESTING CHALLENGES for players who have mastered the core game. Unlike Mojang's "hard" mode or other plugins' "hardcore" modes which just punish you more for making mistakes without actually changing game mechanics, Extra Hard Mode delivers interesting new challenges for advanced players.
Support this project on Patreon!
Important Info
- Detailed rundown of all features and configuration help Check here or here (alternate formatting)
- You can enable specific features only for specific worlds, Check here
- Save yourself some time! Check "Troubleshooting and Common Questions" for the answer to your question.
- Here is a playlist of a few 1 minute clips showcasing some features
- If you have any questions feel free to ask, post bugs / feature suggestions in ticket section
Recommended Plugins
- Make tree logs and branches fall when chopped with GraviTree. Set "FallingLogsDamagePlayers" to true in its config for an extra challenge!
- For anti-grief, avoid plugins that disable explosions entirely, because that will undermine the cave-in mechanic and the new improved TNT.
- Avoid plugins which allow players to teleport themselves out of danger when they're in combat or lost. Especially avoid plugins which add commands like /home, /back, and /tpa, since they will undermine the difficulty VERY much. Consider instead a teleportation plugin like Population Density, which allows players to teleport only between teleportation posts it places on the surface every 400 blocks.
- You might want to look into balancing villagers. Having diamond gear tradable for very easily farmable materials will undermine the difficulty. I use Rebalance Villagers to make the trades harder.
Metrics
This plugin utilizes Hidendra's plugin metrics system, which means that the following information is collected and sent to mcstats.org:
- A unique identifier
- The server's version of Java
- Whether the server is in offline or online mode
- The plugin's version
- The server's version
- The OS version/name and architecture
- The core count for the CPU
- The number of players online
- The Metrics version
- Config options that are activated, allowing me to see what people use (or don't)
You can disable the stat collection via /plugins/PluginMetrics/config.yml if you wish. If you want to see the stats, you can go here
Source
Source can be found on github here. Contributions, pull requests and feedback are appreciated :).
Credits and Thanks
- Coding
- BigScary for creating this project
- Mitsugaru for implementing awesome utility classes
- Thank you for your donations
- Jemrada - 1.Dec 15, 21. Dec 15, 4.Feb 16
- BrattPitt - 23.Nov 13, 14. Dec 14
- TehSabbingSlayer - 30. Dec 13
- WoodenAxeServer - 6. Dec 13
- Netu - 4. July 13
- MrYFory - 25. Feb 13
Sponsors:
SurfHosting: 50% discount with code "Robo": https://billing.surfhosting.co/aff.php?aff=82


-
View User Profile
-
Send Message
Posted Jan 17, 2014Help! When my players were doing survival and they were Mining/Breaking Blocks, The Blocks Dont Fall And Same thing with stone
HELP ME PLEASE Thank You
-
View User Profile
-
Send Message
Posted Jan 14, 2014@Hangar
Spiders despawning/dying of suffocation etc cause webs to be dropped on the floor. The amount of webs is reduced in that case. It's a "feature", caves that have been loaded for a long time have more webs than a fresh cave. Adds to the creepiness.
Dispensers shouldn't be able to create infinite watersources, might fix some time.
-
View User Profile
-
Send Message
Posted Jan 11, 2014@Diemex
Thanks for the clarification.
Do you think spiders are dropping webs when they despawn (or any time other than when a player kills them)? Our ravines get filled up and I swear we didn't kill that many spiders there :p
Oh, we were able to create an infinite pool with a dispenser. I don't know if you care to stop that but FYI.
-
View User Profile
-
Send Message
Posted Jan 11, 2014Just filed a snow related bug report for a strange bug that I've been tracking down for a long time.
-
View User Profile
-
Send Message
Posted Jan 11, 2014@Hangar
Great advantage means:
@BBFChaser
Please open a ticket with your configuration and which blocks you expected to fall. The bukkit names for halfslab is "step" and stairs are the same.
-
View User Profile
-
Send Message
Posted Jan 11, 2014Not all steps and half slabs fall. I have tried adding their item ID and they still do not fall.
-
View User Profile
-
Send Message
Posted Jan 8, 2014Inhibit Monster Grinders
"This module completely removes drops if it recognizes grinders or when a player has a great advantage over a monster."
Can you elaborate about what "great advantage" means? We saw no XP drop from a creeper on the surface that we're pretty sure did not come out of a spawner. Would this also affect that?
One more... is it possible that spiders are dropping their webs when they despawn (vs. being killed by a player)? We still find them all over the place, even in places where we know we weren't fighting them.
-
View User Profile
-
Send Message
Posted Jan 7, 2014@Ryex95
Maybe? I have gotten a report that it's incompatible a while ago. But the reporter said that it's not that big of a deal and I didn't bother any further. I'm not familiar with mcmmo. Could you please open a ticket describe the issue and what should be done about it.
@der_Kernschatten
I reduced suffocation damage from horses a few commits ago and forgot about it. But happy that you noticed it :)
-
View User Profile
-
Send Message
Posted Jan 5, 2014I'm not sure if it's 'fixed' (don't see it in the update notes), but I am no longer suffocating and instantly dying while on a horse near trees. I haven't been running 3.4.2-SNAPSHOT-#71 long enough to hear feedback from others, but so far, so good.
-
View User Profile
-
Send Message
Posted Jan 4, 2014Can you make tree falling compatible with the ability Tree Feller from McMMO?
-
View User Profile
-
Send Message
Posted Jan 1, 2014@Lord_Rius
Please do not post error logs in the comment section, that belongs in to the ticket section
-
View User Profile
-
Send Message
Posted Dec 31, 2013Hello!
First of all, i love this plugin, excelent jobs guys. I'm using ExtraHardMode 3.4.2 Snapshot #76 with CB 1.7.2-R0.3 #2978 and when server starts appear this error:
[17:55:35] [Server thread/ERROR]: Error occurred while enabling ExtraHardMode v3.4.2-SNAPSHOT (Is it up to date?) java.lang.NoClassDefFoundError: uk/co/oliwali/HawkEye/entry/DataEntry at com.extrahardmode.compatibility.CompatHandler.starting(CompatHandler.java:99) [?:?] at com.extrahardmode.ExtraHardMode.registerModule(ExtraHardMode.java:199) [?:?] at com.extrahardmode.ExtraHardMode.onEnable(ExtraHardMode.java:120) [?:?] at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:250) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:350) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:384) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at org.bukkit.craftbukkit.v1_7_R1.CraftServer.loadPlugin(CraftServer.java:298) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at org.bukkit.craftbukkit.v1_7_R1.CraftServer.enablePlugins(CraftServer.java:280) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at net.minecraft.server.v1_7_R1.MinecraftServer.m(MinecraftServer.java:342) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at net.minecraft.server.v1_7_R1.MinecraftServer.g(MinecraftServer.java:319) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at net.minecraft.server.v1_7_R1.MinecraftServer.a(MinecraftServer.java:275) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at net.minecraft.server.v1_7_R1.DedicatedServer.init(DedicatedServer.java:175) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java:424) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:617) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] Caused by: java.lang.ClassNotFoundException: uk.co.oliwali.HawkEye.entry.DataEntry at java.net.URLClassLoader$1.run(Unknown Source) [?:1.7.0_45] at java.net.URLClassLoader$1.run(Unknown Source) [?:1.7.0_45] at java.security.AccessController.doPrivileged(Native Method) [?:1.7.0_45] at java.net.URLClassLoader.findClass(Unknown Source) [?:1.7.0_45] at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:77) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:62) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at java.lang.ClassLoader.loadClass(Unknown Source) [?:1.7.0_45] at java.lang.ClassLoader.loadClass(Unknown Source) [?:1.7.0_45] ... 14 more
Also when playing shows this others:
[17:57:08] [Server thread/ERROR]: Could not pass event ProjectileLaunchEvent to ExtraHardMode v3.4.2-SNAPSHOT org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:320) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:481) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:466) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at org.bukkit.craftbukkit.v1_7_R1.event.CraftEventFactory.callProjectileLaunchEvent(CraftEventFactory.java:597) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at net.minecraft.server.v1_7_R1.World.addEntity(World.java:904) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at net.minecraft.server.v1_7_R1.World.addEntity(World.java:871) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at net.minecraft.server.v1_7_R1.EntitySkeleton.a(EntitySkeleton.java:247) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at net.minecraft.server.v1_7_R1.PathfinderGoalArrowAttack.e(PathfinderGoalArrowAttack.java:98) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at net.minecraft.server.v1_7_R1.PathfinderGoalSelector.a(PathfinderGoalSelector.java:108) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at net.minecraft.server.v1_7_R1.EntityInsentient.bn(EntityInsentient.java:427) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at net.minecraft.server.v1_7_R1.EntityLiving.e(EntityLiving.java:1436) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at net.minecraft.server.v1_7_R1.EntityInsentient.e(EntityInsentient.java:306) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at net.minecraft.server.v1_7_R1.EntityMonster.e(EntityMonster.java:20) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at net.minecraft.server.v1_7_R1.EntitySkeleton.e(EntitySkeleton.java:110) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at net.minecraft.server.v1_7_R1.EntityLiving.h(EntityLiving.java:1299) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at net.minecraft.server.v1_7_R1.EntityInsentient.h(EntityInsentient.java:150) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at net.minecraft.server.v1_7_R1.EntityMonster.h(EntityMonster.java:24) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at net.minecraft.server.v1_7_R1.World.entityJoinedWorld(World.java:1338) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at net.minecraft.server.v1_7_R1.World.playerJoinedWorld(World.java:1319) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at net.minecraft.server.v1_7_R1.World.tickEntities(World.java:1207) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at net.minecraft.server.v1_7_R1.WorldServer.tickEntities(WorldServer.java:480) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at net.minecraft.server.v1_7_R1.MinecraftServer.u(MinecraftServer.java:637) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at net.minecraft.server.v1_7_R1.DedicatedServer.u(DedicatedServer.java:250) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at net.minecraft.server.v1_7_R1.MinecraftServer.t(MinecraftServer.java:545) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java:457) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:617) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] Caused by: java.lang.NullPointerException at com.extrahardmode.service.OurRandom.nextInt(OurRandom.java:28) [?:?] at com.extrahardmode.service.OurRandom.percentChance(OurRandom.java:34) [?:?] at com.extrahardmode.features.monsters.Skeletors.onShootProjectile(Skeletors.java:198) [?:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [?:1.7.0_45] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) [?:1.7.0_45] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [?:1.7.0_45] at java.lang.reflect.Method.invoke(Unknown Source) [?:1.7.0_45] at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:318) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] ... 26 more
Many thanks.
Edit: When attacks a powered creeper shows this error:
[20:54:26] [Server thread/ERROR]: Could not pass event EntityDamageByEntityEvent to ExtraHardMode v3.4.2-SNAPSHOT org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:320) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:481) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:466) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at org.bukkit.craftbukkit.v1_7_R1.event.CraftEventFactory.callEvent(CraftEventFactory.java:94) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at org.bukkit.craftbukkit.v1_7_R1.event.CraftEventFactory.callEntityDamageEvent(CraftEventFactory.java:382) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at org.bukkit.craftbukkit.v1_7_R1.event.CraftEventFactory.handleEntityDamageEvent(CraftEventFactory.java:410) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at net.minecraft.server.v1_7_R1.EntityLiving.damageEntity(EntityLiving.java:656) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at net.minecraft.server.v1_7_R1.EntityMonster.damageEntity(EntityMonster.java:47) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at net.minecraft.server.v1_7_R1.EntityArrow.h(EntityArrow.java:228) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at net.minecraft.server.v1_7_R1.World.entityJoinedWorld(World.java:1338) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at net.minecraft.server.v1_7_R1.World.playerJoinedWorld(World.java:1319) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at net.minecraft.server.v1_7_R1.World.tickEntities(World.java:1207) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at net.minecraft.server.v1_7_R1.WorldServer.tickEntities(WorldServer.java:480) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at net.minecraft.server.v1_7_R1.MinecraftServer.u(MinecraftServer.java:637) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at net.minecraft.server.v1_7_R1.DedicatedServer.u(DedicatedServer.java:250) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at net.minecraft.server.v1_7_R1.MinecraftServer.t(MinecraftServer.java:545) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java:457) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:617) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] Caused by: java.lang.NullPointerException at com.extrahardmode.task.CreateExplosionTask.createExplosion(CreateExplosionTask.java:179) [?:?] at com.extrahardmode.task.CreateExplosionTask.run(CreateExplosionTask.java:88) [?:?] at com.extrahardmode.features.monsters.BumBumBens.onEntityDamage(BumBumBens.java:189) [?:?] at sun.reflect.GeneratedMethodAccessor37.invoke(Unknown Source) [?:?] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [?:1.7.0_45] at java.lang.reflect.Method.invoke(Unknown Source) [?:1.7.0_45] at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:318) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2978jnks] ... 18 more
Edit 2: Trying with ExtraHardMode 3.4.2-SNAPSHOT-#71 seems like works fine.
-
View User Profile
-
Send Message
Posted Dec 29, 2013Edit: Never-mind resolved my issue.
-
View User Profile
-
Send Message
Posted Dec 28, 2013Both.
-
View User Profile
-
Send Message
Posted Dec 26, 2013@little_m3
I added support for CoreProtect, Prism, HawkEye Reloaded and LogBlock.
Blocks that have been caused to fall by ehm are logged as player "#ehm_block_fall#" and once they land they are logged as "#ehm_block_land#". Because HawkEye, CoreProtect and LogBlock don't handle FallingBlocks correctly when a FallingBlock starts to fall it is a simple BlockBreak and when it lands it is a BlockPlace. In Prism FallingBlocks starting to fall are logged with "a:block-fall" and when they land "a:block-form".
If you want to help me out and check if everything works for you you can checkout build #72 on my jenkins server.
@pilvimaa
Not sure, haven't checked yet. Do you mean snowblocks or the snowcovers?
-
View User Profile
-
Send Message
Posted Dec 26, 2013This plugin is great! So many awesome features, definitely going on my server!
-
View User Profile
-
Send Message
Posted Dec 25, 2013What's up with snow blocks and snow on 1.7.2?
They used to fall on 1.6.x if you configured them to but now with 1.7.2 if you have tower of snow and you break the lowest block the whole stack of snow disappears just like happens with a cactus.
Did Mojang do something nasty to snow that makes it behave like this?
Are you able to do something about it Diemex? I really loved my falling snow and snow blocks :-I
-
View User Profile
-
Send Message
Posted Dec 23, 2013Side note, plugin works nicely in 1.7.2 I've run into one small problem.
Falling blocks are not logged as anything. While I admit in hardcore survival, griefing is possible and all that, I use the plugin mostly for the fun things: -Collapsing blocks. (which don't collapse farther than about 16 blocks making new tall trees.. weird) -Blazes in diamond layers and such.
it still leaves the problem of griefing and rolling it back. I can tell anyone that protect it this and that way but some ignore it or i'm not on or they can't read the notes. so.. it'd be nice if block falling was something that would be logged. If as nothing else than endergrief. since bottom block breaking is still logged normally as is log placement, allowing me to find the person responsible.
-
View User Profile
-
Send Message
Posted Dec 15, 2013@traxim
1.) 1.7.2 is only a dev version. There is hardly any new API whatsoever to address the new features.
2.) With no new API there is no reason to update anything
3.) EHM doesn't use minecraft internal classes as of yet and that's why it doesn't break for the most part, besides some smaller things detailed in this ticket
4.) You can still use the current version of ehm on 1.7.2 and report things that have broken or changed.
5.) Reporting broken things will bring you an update with the fixes a lot quicker than just asking for an update.
-
View User Profile
-
Send Message
Posted Dec 15, 2013Update to 1.7.2??