FatTnt
FatTnt can control Explosions (not only of TNT) and add some new dynamics.
Maintenance Phase
Due to timing constraints i will most likely not add any new features.
The block lists may be clearly outdated, if anybody has a list for 1.6.1 or so i can link them from here, otherwise this means you have to edit the block lists to how strong blocks are supposed to be by hand!
I will might not add a feature to import resistance values from CraftBukkit internals, could think about importing from Minecraft-Wiki though.
I might keep this updated for a while, be it on BukkitDev or by other means, but do not expect new features to be added, no guarantees for further support.
(license updated)
If anybody wants to contribute to this i am open to suggestions, might help with refactoring / introduction. In fact i still would like to add more simple ways to configure the blocks, and possibly adjust to some api additions.
Reference: Features | Configuration
Overview:
- FatTnt actually replaces the minecraft explosion impacts by applying another algorithm. This aims at making many aspects of the explosions impact customizable, such as how strong blocks resist explosions before breaking, if they allow passing on the explosion without getting destroyed, or if they pass on damage to entities for an extended damage-range.
- You have a variety of settings how to affect other entities and blocks, concerning damage, creating primed TNT from dropped or burning tnt-items, tossing entities and similar. Most settings can be adapted to worlds/entities in an almost arbitrary manner.
- Anti lag features: FatTnt uses scheduling internally to control how much time is spent per tick on explosions, item spawning and such.
- The original request i had in mind had been to allow explosions to go through water and lava, now you can control if the explosions will destroy it or just go through it or get stopped, whatever you choose. Now your redstone circuits are safe behind walls of obsidian, unless someone tweaked the configuration to make obsidian destroyable.
Developers:
- GitHub: Source | Lists file
- Changelog: See bottom of lists-file.
- License: Pending,
something minimal on top of what you can do when writing a plugin for Bukkit/CraftBukkit.
(Will be stated int the lists file.) - Join in? Mabe ... i might need suppot... testers, documentation, presets for configuration, coding.
This started as a fridays random plugin.
Having some troubles with the world specific settings. I'm hoping to have the default config for one world, and a tweaked config for another (housing my arenas). I added at the end: world-settings: world: resistance: indestructible: value: 1.0 ids: [] In the hopes of over riding what I have set as indestructible in the global settings. Doesn't work :(
Can this plugin give block sub-types different resistances? For example: I want stone bricks to be indestructible, but cracked stone bricks to be weak.
@asofold
I will keep instantly detonating landmines in my dreams then for now! Lol. Great plugin btw! My arena would be impossible without it!
@r00stre
Nah, i slipped past this one after contemplating about if it is possible.
FatTnt can only control the fuse ticks of tnt that FatTnt spawned, i.e. for tnt hit by explosions or the item-tnt features.
It can not (yet) control the time after which tnt explodes for hitting it with a lighter nor for redstone activiation.
@asofold
Thanks. I'll test some settings to give more expensive/difficult blocks (Bricks, Iron block, Diamond Block) be actually useful for fortifications.
@r00stre
No clue how to do that unfortunatly. I havent experimented with many of the explosion settings yet.
@Smellyhobo101
Baha you so smart. Now I feel dumb. Lol. Don't have the time to explain to me how to get the tnt to detonate instantly do you? I set the min max prime to 1 and 10. It still just detonates at the regular speed. I tried disabling all other plugins to no avail. Any help would be greatly appreciated!
@Mullinx
You can add arbitrarily many (...) and name them in whatever way, they are just organized in sets to set the same resistance values for a bunch of block types each.
So you have the default value that goes for all blocks not mentioned and then the sets with extra values (config should serve as an example). Both for resistance and passthrough.
@Smellyhobo101
Could be future additions... it will need one or another go at the config appearance probably, in order to keep it manageable.
Nice mod, I've been looking for a way to set block resistances and this comes pretty handy.
Question: the resistance categories in the config (low, high, strongest) file can be changed to anything or they are set by default? Can I create/rename various categories (weak, average, ultra) and will still work?
Thanks.
@r00stre
Add the ID "46" (tnt) under indestructible.
HI I'm wondering if you can tell me the settings to protect tnt from other tnt explosions. Is this even possible?
Just to clarify, how is "prevent-block-damage: []" supposed to be formatted? Do i put the ID's between the brackets? I guess ill experiment.
Edit: Yep, that worked.
Edit: Adding to the prevent-block-damage: and passthrough: got it working how i wanted. Thanks! Donated :D
Well that was quick! Thank you very much. This plugin has saved me a lot of trouble. Been going through multiple obsidiandestroyer clones trying to hire devs to modify it to my needs for about a week now and this plugin just fixed all my problems. Now i hate to bombard you with so many requests but i just came up with an idea that could make this plugin even more awesome.
Now I'm not entirely sure how this plugin works, but it looks like the farther away the explosion goes from the center of the TNT, the less damage it does to blocks and the harder it is to meet resistance levels. So, what im thinking, is that you can set blocks to turn to another block at a certain resistance. So for example, you set stonebricks normal resistance to 4, and you set its turnintoanotherblock resistance to 2. The other block it turns in to, is cracked stone brick. So, shooting at a stonebrick wall, you would get something like this:
http://i.imgur.com/zH4zN.png
So, damage of 4+, turns into air. Damage of 2-4, turns into cracked stonebrick. Damage of under 2, doesn't break. Using the random option for explosions you could get some cool effects like the one above.
So, what happens if the turnintoblock resistance is higher than the turn to air resistance? And why would it ever be needed? Well, lets say, we give coal ore a turnintoblock resistance of 75, and the normal resistance to 2. If 0-2, dont break. If 2-75, break. If 75+ turn into a diamond block! (since high pressure + coal = diamond... yeah).
Heres how it could be configured:
http://pastebin.com/5NL60iTW
So, heres a list of practical applications:
1. Kind of specific to my situation, but would still be a cool effect for everyone. I use this plugin: http://dev.bukkit.org/server-mods/fun-hard-mode/ that changes TNT explosions, but ive had to turn the explosion part off due to some things i need from this plugin. Essentially, the plugin makes TNT explsionsions bigger, and it turns stone to cobble on the outer edges of the explosion. Another effect of this plugin, is that cobble has gravity. This means, TNT + cave = massive awesome cobblestone cave-ins. With this feature implemented, i could re-add this effect.
2. Obsidian destroyer like functionality. You probably know the plugin: dev.bukkit.com/server-mods/obsidiandestroyer The way it works, after X explosions near an obsidian block, obsidian breaks. You could replicate this by having obsidian turn into obsidian:1, obsidian:1 turn into obsidian:2, obsidian:2 turn into obsidian:3, obsidian:3 breaks. Obsidian:# is actually a block that can exist (i didnt think it would), just placed it and checked with the worldedit /tool info tool.
3. Anvil turns into damaged anvil, damaged anvil turns into more damaged anvil, more damaged anvil turns into air.
4. Tuns of TNT on a coal ore turns it into a diamond block, as i mentioned above.
5. Stone brick turning into cracked stone brick.
Sorry if that was too much/hard to read. Just thought it would be pretty cool. Again thanks for the plugin!
@Smellyhobo101
The new version (1.1.0) contains a "prevent-block-damage" list in the configuration,. If an explosion is starting on such a block, calculations are normal, just that no blocks are removed (i might change it in the future to only use passthrough values then, but that might also become a config switch or not happen at all). If you add 8 and 9 to that list, vanilla tnt cannons should be possible. To prevent water getting damaged from other explosions (that go off in other blocks), you will need to make it indestructible resistance but add it to passthrough.
Get the new version here: http://dev.bukkit.org/server-mods/fattnt/files/18-fat-tnt-1-1-0/
(To be approved.)
Checked to see if this question has been asked already, but i couldnt find anything. Sorry if it has!
Heres my issue. I want TNT explosions to be disabled on blocks, while the TNT is in water. (like normal minecraft), but i still want TNT to be able to throw other TNT while the TNT is in water. So, basically i want water based cannons to work. To do this, i've tried adding water to "indestructable" and "propagate-damage". Water does disable TNT explosions on blocks, but, also entities. So basically my cannons dont work. TNT inside the water doesnt project other TNT. Dry cannons still work normally (but they self destruct of course). Any way i can achieve this effect? I've also tried taking water off of indestructable and putting it on its own custom resistance at 10000 (i just put it at w\e it would need to be to not break) and it acts exactly the same. Also tried turning off schedule-entities but that seems to do something completely different than i thought. Generally im kind of confused about this config. Could use some help.
Thanks very much for keeping this updated! I had a lot of trouble finding a plugin that would allow obsidian to be destroyed properly with TNT in the way i wanted it.
EDIT:
Alright so, i found the pass-through setting. Water is now undestroyable and explosions pass through the water, but, its passing through to entities and blocks. I only want it to pass through to entities. (like normal minecraft). Is there a way to do this already? If not, i will definitely donate for it!
Also here is my config:
http://pastebin.com/BjECGgnV
@asofold
Thanks so much for the help, I got it to work exactly as we required.
@kiethom
You can't yet reference sets of blocks or so to make configuration easier.
But Worlds inherit from the default settings. So you should have the default settings as you want "most worlds" to be. Those that are different can be overridden.
If you want to change resistance you have to replace the whole resistance section at present (bit of boiler plate work though). But the other settings need not be changed for that. Also most other settings can be overridden for worlds/entities individually. For resistance and passthrough you have to use define the whole section though same for damage passing blocks.
@asofold ok so basically you have to do the resistances setting individually for each world if you want them to be different? If you wanted two worlds to share the same properties is there an easy way of doing that or do you just copy and paste the world settings then change the world it points to?
Thanks alot for your help its been very insightful.
@kiethom
Basically you have the same settings under
Assuming your world name is world.
So to just make obsidian destroyable you would need to override the resistance settings for that world. Unfortunately you have to put in a complete set of resistance settings (not only obsidian). If it just that you need you do not need to put in other config settings, though.
So basically you copy the default resistance settings, just put obsidian into a destroyable set, depending on your explosion strength settings (with defaults should have like 7 or less).
If there is two things i add, it will be to use Minecraft methods for damage (correct damage) and a better way to reference sets of blocks and only override single entries from them to make it really easy to override few settings or also to just use the same blocks for the resistance settings in one world and for passthrough in another one.
Hey I like the diversity which your plugin allows for in regards to TNT. Im just having trouble making it so that TNT will destroy obsidian in only one world, and all the other worlds will act normally. Is this possible? And could you give me an example of the worldsettings I should use to achieve it. Thanks in advanced.