Minecraft Elemental Combat mod 2024 download
logo
minecraft mod Elemental Combat

Elemental Combat

Game Version: 1.16.5
Total Downloads: 837
Updated: Mar 25, 2021
Created: Jul 24, 2020
Download Elemental CombatDownload Earlier Versions

Earlier Versions

Name Size Uploaded Game Version Downloads
elementalcombat-forge-1.16.5-1.1.jar +2 More+2 Others release 151.09 KB Mar 25, 2021 1.16.5 484 download Elemental Combat elementalcombat-forge-1.16.5-1.1.jar

+2 More+2 Others releaseDownload
elementalcombat-forge-1.16.4-1.0.jar release 138.62 KB Jan 12, 2021 1.16.4 327 download Elemental Combat elementalcombat-forge-1.16.4-1.0.jar releaseDownload

Description

Share this:

CAUTION WITH 1.1 RELEASE

I'm currently testing some stuff and I needed some place to upload the mod files. Please wait a little bit longer.


Hello!

Goal of this mod is to enhance the combat system by adding elemental and style properties to the combat. This means, that players, mobs and items all have new attack and defense properties, with most of them defined through a datapack and hence easy to change. Upon hitting some target, these properties will be checked and a new damage value will be calculated. New particles will tell you, how the target reacted to the attack.

I made this mod, because I noticed, that in a lot of modpacks you end up using the same weapon. With this mod I hope there is an incentiv to switch your weapon and armor depending on the monster you are about to fight.

If you are a player and want to see the mod in action, look at these pictures:

(don't worry, I already changes the the attack style and element to use the same grey color as the defense stats)

 

————————————————————————————————————————–

DataPacks:

Another method to interact with these properties are datapacks, because those defines the default values for any items and mobs, even non vanilla ones. I will provide datapacks, for other well known mods, which you can then use from the get go. If you are creating a modpack and you want the datapack to be loaded globally, then you can use other mods, that do just that. One example would be Global Data- & Resourcepacks. Down below you can see a short explanation for the different properties, which can be set through a datapack. If you are interested in making one, you should also read the damage calculation, so you know, what these values mean.
If you are not interessted in creating your own datapack, you can copy predefined packs from my github repository. Here I will collect datapacks, each dedicated to a single mod. You can also propose balance changes/new supported mod here by creating a pull request. I encourage you to give me feedback, because I don't have the data to balance everything by myself. 🙂

Damage Calculation (technical stuff):

Any damage has two new properties: element and style, both being strings. These strings can be anything. For example a sword might have the element "fire" and style "slash". 

Defense properties consist of 2 maps: one for element and one for style. They map the string to an integer, which then defines a scaling factor for the damage. This scaling can even be negativ. If the new damage value is negativ, the target will be healed.

To compute the scaling I use a similar computation as the vanilla Enchantment Protection Factor-System. This means, that both of the scalings are computed via 1-(factor/maxFactor), with factor comming from the defense mapping of the target. The huge difference between element and style is, that the style factor is capped at maxFactor, while the element factor is not. You can read my code here.

There is also the default element and default style. These are used, if the corresponding string of the attack property is empty. You can use this element/style to make mob resistant/immune etc to non elemental damage or non specific styles.

There are some server-configs. which gives the default element and style a value. Also the maxFactor can be changed here.

Item properties:

Every item has the following properties: attack_style, attack_element, defense_style and defense_element. This means, that even a sword can have defense_properties. However defense_properties from items are only applied, if the entity equips them as armor.

Entity properties:

Living entities (mobs and players) have the same properties like items, but additionaly they have flag for being biome dependent. See Biome properties for more informations.

Damage_source properties:

Since a damage_source only ever exist on the attacker side, it only has attack_element and attack_style. Set them as you deem right.

Biome properties:

Biomes can give entities additional defense, if the flag biome_dependency on an entity is set to true. In this case the defense properties of the biome are added to the entity, if the entity spawns in said biome.

combat_properties_text_mapping.json:

The last property, that can be set through datapacks, is this single json-file, which handles the name mapping. The string on the left are used and compared internally and should match the values from the other properties. Also keep in mind, that hard coded values might exist aswell (like my fire & ice sword). The values on the right are the values, that will be used when displaying the data. For example if you change them to emojies instead of text, then the GUI will display emojies. Sadly the minecraft font does not support every emoji yet. (But stuff like 🔥 and do work!)

API:

I also designed this mod to be used as an API for other mods by exposing easy to use functions for devs. First of you can easily interact with the properties and change them as you want (for example changing attack/defense properties of an enemy midfight).
Take a look at the ElementalCombatAPI class and its provided function or take a look at the implementation of FireAndIceSword and ClockChestplate. Also the classes in the util package can help you out.
Currently I'm trying to figure out, how to upload the jar to a maven repository, so you can easily download and build it into your project.

————————————————————————————————————————–

Enchantments:

I added a few enchantments, so the player can change armor and weapon properties from the get go. For example the vanilla Fire Resistance now uses this new system, which means the player can now have more then the 80% damage reduction from vanilla minecraft.

New items:

I created 2 new items (which are creative only for now) to highlight how this mod can be used to create more interessting behaviour. If you are a developer and are interessted in using this mod, then take a look at the implementation of these items.

Configs:

A few things are controlled by client and server configs. The client configs control the new HUD-element (which also can be toggled on/off with the J-key), while server config changes some gameplay aspects like the default style and the default element. Also the server configs contain the value maxFactor (see spoiler above) and level-scaling for enchantments (basically the effectiveness of an enchantment). The default values for maxFactor is 100 (so every factor is basically a percentage) and the enchantmentScaling is choosen to mimic the vanilla Enchantment Protection Factor-System (so for a maxFactor of 100, enchantmentScaling must be 8).

————————————————————————————————————————–

Your Feedback:

Since this mods is now in beta, there are a few things, that might need some tweaks and I need your help!

1: I want to know, if the default values for items/biomes and so on are okay. This needs a lot of playtesting with various mods installed.

2: Are the particles alright? Currently on hit particles will tell you, if an element and/or style was (in-)effective, but since in both cases (style or element) the particles use the same textures you can't immediatly tell which is which. I thought about adding case specific particles, but I want to hear your feedback first.

3: I had the idea, that increasing your fire resistance means decreasing your ice resistance, kinda like pokémon or final fantasy (in fact I came up with this mod while playing ff). This is why I propose the following elements and when they should be effective/ineffective:

  • Fire: Effective against ice. Ineffective against fire.
  • Ice: Effective against fire. Ineffective against ice.
  • Water: Effective against thunder. Ineffective against water.
  • Thunder: Effective against water. Ineffective against thunder.
  • Darkness: Effective against light. Ineffective against darkness.
  • Light: Effective against darkness. Ineffective against light.
  • Earth: Effective against heavy enemies. Ineffective against small/light enemies.
  • Wind: Effective against flying enemies.
  • Bio: Effective against plants. (Tho plants usually deal bio damage)
  • Natural: The default value.

Most of these are pretty direct, I would say. But going with this chart, biome properties can't really use "earth" and "wind", because that would not be in line with the idea of changing the damage dependent on the mob size or if it can fly.

We could also just copy the weakness chart from pokemon, however this would be to many elements in my opinion. We can discuss this matter, especially after play testing with a big modpack.

Similarly here are my proposed combat styles:

  • Slash: Sword and Axe
  • Stab: Trident and Spears
  • Magic: Potions and Spells
  • Projectile: Arrows etc (basically same as vanilla projectile protection)
  • Explosion: Again same as vanilla blast protection
  • Natural: Anything that happens, because of the enviroment. Like cactus or lightning. This might need a name change, since 'natural' also exist as element.
  • Basic: The dafault value. (Maybe change to punch? I'm not sure here)

Again we can discuss, what the best options would be.

If every developer, which wants to use the provided API, also stays with this weakness/effectivness system, then the result could be amazing. So what do you think? Am I missing something, which you want to see added? Or do you want to change the name of something?

4: Previously I had the idea for multiple elements on one attack. However I'm not sure, how things should play out. For example what should happen, if I hit an enemy, which is weak against fire, but resistant against ice, is hit with a fire+ice sword? Also can the sword be 1 part fire and 2 part ice or is it always a 1:1 ratio?

What is planned next?

I want to add aura buffs and debuffs. I'm still in the planing phase, but generally I want the center coordinate be attached either to a block or an entity. Also these aura should have a black- and whitelist (otherwise the debuff would not only effect your enemies, but will be applied to your allies too).

 

So please tell me, what you think of this mod and how I could make it better.

Best regards, Tavi007.

 

PS: I do not plan on backporting it. Mostly because 1.16 introduced the ProjectileEntity-class, which is a parent class for ArrowProjectile/FireBallProjectile and so. In 1.15 and earlier this didn't exist and I would have to rewrite quite a lot of code.

Comments

Add a comment