Description
A small mod that allows tweaking some aspects of Creeper or other explosions.
The most common and useful tweak is probably the one where all the blocks destroyed by Creeper explosions will always drop as items.
No more partially filled Creeper holes!
Note: Does not currently work with Sponge, because the Forge Explosion events don't get fired with Sponge installed.
Configuration
The mod is entirely configured through the config file, which is at .minecraft/config/environmentalcreepers.cfg (in 1.14+ it's a *.toml file instead).
In the later versions there is now one command: /environmentalcreepers-reload to reload the config file from disk in-game, without having to relog or restart the server to read the file. In single player you can also use the in-game config GUI for changing the configs (not implemented yet as of writing this in Forge 1.14.4+).
The following configuration options are available. The mod handles Creeper exposions separately from all other explosions, so that you can only enable the tweaks for Creepers, if that is the only change you are looking for.
- creeperChainReactionChance: The chance (per each target Creeper within range) that a chain reaction occurs, if enableCreeperExplosionChainReaction is true. Range: 0.0 - 1.0
- creeperChainReactionMaxDistance: The maximum distance within which a Creeper can ignite other Creepers
- creeperExplosionBlockDropChance: The chance that a block destroyed by a Creeper explosion will drop as an item. Range 0.0 ... 1.0, where 1.0 means that the block always drops as an item.
- creeperExplosionStrengthCharged: The strength of Charged Creeper explosions. The default in vanilla is 6.0 (double of normal Creepers).
- creeperExplosionStrengthNormal: The strength of normal Creeper explosions. The default in vanilla is 3.0.
- disableCreeperExplosionBlockDamage: This completely disables Creeper explosions from destroying blocks
- disableCreeperExplosionCompletely: This prevents Creepers from exploding completely. They just swell up.
- disableCreeperExplosionItemDamage: This prevents Creeper explosions from destroying items on the ground
- disableOtherExplosionBlockDamage: This completely disables other explosions except for Creepers from destroying blocks
- disableOtherExplosionItemDamage: This prevents other types of explosions except for Creepers from destroying items on the ground
- enableCreeperExplosionChainReaction: If enabled, then a Creeper explosion can ignite other Creepers within range
- modifyCreeperExplosionDropChance: This enables the item drop chance modification for Creeper explosions
- modifyCreeperExplosionStrength: Enable modifying the explosion strength of Creeper explosions. Without this, the explosion strength values described above do nothing.
- modifyOtherExplosionDropChance: This enables the item drop chance modification for every other explosion except for Creepers
- otherExplosionBlockDropChance: Same as creeperExplosionBlockDropChance, but for all other explosions except Creepers
Mod packs/permissions
- Mod packs: go ahead!
- Re-hosting the mod file otherwise is not cool, mmkay?
If you have ideas/questions/feedback, or maybe you just want to hang out, you can join us on Discord:
When I try to change the config and select done, it does NOT save my changes. Is there a step I am missing when altering the config? I have the version 1.6 for 1.12.2
In reply to Amazingbluebomb:
Which MC version and version of the mod are you even referring to? I think the 1.12.2 Forge version is the only one that even has an in-game config GUI, so I assume you are referring to that version? I don't remember if I have really tested the config GUI and if it applies the configs properly. Usually I just edit the config file (.minecraft/config/environmentalcreepers.cfg) manually in a text editor, and then reload the world. I don't remember if the 1.12.2 version has the reload command yet.
In reply to masady:
Yes! Thank you, manually editing the config file fixed the problem :)
Is it installed only on the server side?
In reply to Dev_Enter:
It's only needed/useful on the server side, yes. In single player the client also runs the server so in that case it would obviously need to be on the client as well.
In reply to masady:
Thank you very much! I suggest you put it in the introduction so that many people don't have to ask
In reply to Dev_Enter:
Oh that's weird, I thought I had added that to the description...
Can i use this to customize creepers so they only explode within a radius of a player if the explosion will do damage to that player? I'm not a big fan of creepers exploding even though I'm no longer near them and don't take any damage
In reply to Felix_Marsh:
I believe by default the AI task cancels the fuse if the player is a certain distance away. And on servers this might be affected by the latency, so that the server kind of thinks you are near the creeper for a bit longer than how it would appear on the client.
There is currently no option to change that behavior. Also depending on if you are on Forge or not (on Fabric the mod uses Mixins already anyway so it would be "simpler/cleaner"), changing that level of behavior would kind of need the mod to have a small coremod part, otherwise trying to change such small details about how the vanilla code works will get extremely tedious, as it might require me to replace the entire default AI task for the fuse timer when the creeper is spawned or something like that...
Do i need to reload or restart game when i make changes to config?
In reply to areudeadyett:
There is a command you can use to reload the config from the file after you save your changes: /environmentalcreepers-reload or so, I think the exact name differs a little in the fabric vs. forge versions, just use tab completion for it.
Creepers are still blowing things up on my forge server.
In reply to EighmyLupin:
Which settings are you using? (pastebin the config?) And do you have other mods that might be changing the explosions too?
In reply to masady:
Ok I think I got it figured out the config was messed up
In reply to EighmyLupin:
You need to modify the config file according to how you want the mod to work. On the default settings the Creeper explosions are just set to drop all the blocks as items. If you don't want Creepers to destroy blocks at all, then set the disableCreeperExplosionBlockDamage option to true.
Thank you so much for this mod! It was actually the first mod I installed for minecraft, lol. So, I've been playing with either explosions disabled or explosion damages disabled. I was wondering if you'd consider adding an option increasing the time before they explode after they start hissing?
In reply to Mynameiscindy:
I could add that at some point. Not sure when I'll do it, since there are several other mods I should be porting and working on too...
Also one small issue with this feature would be that while the other features of the mod work with the mod only being on the server side, to get the creeper swelling animation to match with the custom fuse time, the mod with the same config will then also need to be on the clients. So just a heads-up on that in case it's relevant.
In reply to masady:
Cool, take your time.
I didn't even think about syncing the animation lol... I play single player, but yea, I can see how that could be inconvenient for servers.
In reply to masady:
There is a vanilla nbt tag for the creeper fuse time and i think that the animation works properly too so maybe it might be easier to find a way to use that.
In reply to Forge_User_36482265:
The NBT tag is just read to the fuseTime field in the creeper class anyway. So setting the fuseTime field directly would be more efficient that writing the creeper data to an NBT tag, modifying the NBT to change the Fuse tag, and then reading all the data back again from NBT. And I didn't see anything in the code syncing the fuse time to the client, but I'll need to actually test/verify that still. But even without syncing it, it would just cause the swelling animation to happen at the normal rate, and if you make the fuse time longer, then the creeper would just remain in the fully swollen state for a while before actually exploding.