Distinct Damage Descriptions

Distinct Damage Descriptions

7.9k Downloads

Distinct Damage Descriptions is currently in an early beta. Documentation may be missing or incomplete, and technical issues, bugs, and lacking/incomplete features are to be expected. Please be patient, and use this mod's issue tracker on its GitHub repository to report any problems/issues and to offer suggestions. Thanks!

This mod description page for v1.3 is outdated! While a new description with a better layout and information is in the works, you can always reach out on Discord about mod features!

Travis (.org)GitHub issues

Distinct Damage Descriptions is a combat overhaul mod aiming to bring D&D-style combat to Minecraft.

D&D style combat? 

Yes! Every item in the game now has its damage distributed into three categories: Slashing, Piercing and Bludgeoning.

In the default settings, you'll find that Wooden Swords have a 50% Bludgeoning and 50% Slashing distribution (This distribution tooltip can be viewed by holding <SHIFT> while viewing the item tooltip). So, assuming you attack with a fully charged swing, the attack does 2 Bludgeoning and 2 Slashing damage. The config lets you specify what I call Damage Distributions for any item in the game. Any item not listed in the config defaults to having a 100% Bludgeoning distribution (i.e. items not listed will only do Bludgeoning damage). Note that these settings alone can not increase the amount of damage a weapon does. The Wooden Sword here still does 4 damage total.

Mob damage can also be distributed this way. For example, Spiders may do Piercing damage and Polar Bears could do a mix of Piercing and Bludgeoning. Certain projectiles like Arrows can also have their damage distributed. Arrows can do Piercing damage but other mob projectiles can inflict Bludgeoning damage for example

Natural Resistances

Damage Distributions mean nothing unless we have mob resistances! The configs allow you to specify mob resistances to each of the 3 categories (You can also specify weaknesses, which you'll see in some of the pictures later on!). These resistances can be viewed on the corresponding spawn egg (if it exists) by holding <CTRL> (Will hopefully accept <OPTION> instead for Mac users).

Here, the default config gives Skeletons a 25% Slashing resistance. So, any incoming Slashing damage is reduced by 25% before armour calculations, which have ALSO been overhauled, see below.

What about me?

The player has no base resistances at all (And this can't be changed by the configs). But, Armour has been overhauled to be a little more dynamic. No longer will diamond armour be the de facto best armour.

Armour Effectiveness determines how good that armour piece is at resisting certain damage types. For these Diamond Boots, they will more or less behave like regular diamond armour when hit by Piercing damage. But against Slashing damage, the Diamond Boots can only use 15% of the armour and toughness it provides the absorb that Slashing damage. These damage calculations replace the original calculations (standard armour calculations are bypassed and LivingHurtEvents are cancelled when this damage is being handled).

There's more!

Mobs can have additional properties that make engaging them much more tricky. For starters, mobs can have damage immunities, completely negating certain types of damage.

Slimes are now completely immune to Bludgeoning damage. However, they do take additional damage from Slashing attacks. If the Bludgeoning immunity is bypassed with an enchantment, they have a natural 25% resistance to it.

Mobs can also have adaptability

Adaptability Chance is the percent chance that this mob will have adaptability when spawned. The default configs give 30% of Spiders adaptability. When a mob with adaptability is struck by an attack, it increases the resistances to damage types it received by its Adaptability Amount for the next physical attack. This is best described with an example:

You attack a Spider (with adaptability) with a Wooden Pickaxe (Inflicts Piercing and Bludgeoning). The Spider's resistance update by 25%. So its resistances go from a 25% Bludgeoning Weakness, 25% Piercing Resistance and 0% Slashing Resistance to a 0% Bludgeoning Resistance, a 50% Piercing Resistance and a 0% Slashing Resistance (+25% to Bludgeoning and Piercing). So far so good. Now you attack with a Iron Sword (Piercing and Slashing). The Spider keeps the 50% Piercing Resistance since it was still attacked by a Piercing attack but the Piercing resistance does NOT increase further. The Spider loses the bonus 25% Bludgeoning resistance since it wasn't attacked by a Bludgeoning attack and instead it gains a bonus 25% Slashing resistance. So its resistances are now a 25% Bludgeoning Weakness, 50% Piercing Resistance, and 25% Slashing Resistance.

There's STILL more?

Distinct Damage Descriptions has two mutually exclusive enchantments (Can be turned off by configs).

Brute Force (I-V): Temporarily reduces mob resistances by up to 10% per level during damage calculations only. Essentially, you bypass up to 10% of resistances per level. This can not turn a resistance into a weakness.

Sly Strike: Bypasses mob immunities.

Attacks now play certain sounds depending on if overall, damage was reduced by resistances or increased by weakness, blocked by an immunity, or nullified completely by a high resistance. Attacks also spawn certain particles depending on whether or not you hit a mob weakness, resistance, or immunity. This gives the player the ability to find mob resistances and weaknesses and allows them to determine which weapon is right for the job.

Here both a weakness and a resistance was hit. Depending on the sound played, you'll know if damage was decreased overall or increased overall. You can then reason about the mob's resistances using the weapon's Damage Distribution.

Custom Damage and Creature Types

Using JSON, you can define creature types and custom damage types. Creature types can be used to give template resistances and other properties to a collection of mobs. For example, Arachnid could be a creature type that gives mobs a Poison potion immunity, and resistances to Piercing damage. Any mob defined as an Arachnid in the JSON file will use the resistances specified there unless there are individual resistances specified in the config file for that particular mob, in which case those are used instead.

You can also use JSON to specify custom damage types. You can define what sources count as that custom damage type, and then use that custom damage type in the creature type JSON's! You can specify a Necrotic damage type as all indirect magic attacks and make Arachnids immune to Necrotic damage, if you wanted.

Discord

There's now a Discord server for my mods! Come hang out and chat about development, features, or really whatever you want! The Discord badge above contains a link for joining. Just click that. It's currently a small community, so you'll see me around often.

CraftTweaker

Distinct Damage Descriptions now has CraftTweaker support! You can read about the additions and some examples here. Feel free to submit additional example scripts. The more documentation, the better! Submit short example scripts on GitHub using the CraftTweaker and wiki labels.

Mod Integration & Compatibility

This is a list of mods that have special compatibility with Distinct Damage Descriptions. You can always check the optional dependencies list to see a full list, but if you want to know exactly what was added, check this list:

Tinker's Construct
Tinker tools have their damage distribution determined by the type of tool it is along with the material used for the head pieces. A new section is added to Materials and You with an explanation. New modifiers that mimic the enchantments Brute Force and Sly Strike have also been added.

Battlesigns also inflict counter attack damage based off the tool's distribution.

Default config values have been added for Blue Slime.

Construct's Armory
Conarm armor has their armor distribution determined by the plates used. Some plates can provide immunities to certain types (configurable). A new section has been added to the Armory Addendum

Tetra
Tetra has tool distributions determined very similarly to Tinker's Construct; the damage distribution is a combination of the head piece(s) and material(s).

Lycanite's Mobs
Built in damage distributions were added for Acid (and Sharacid), Ooze (and Rabbitooze), Shadowfire, Doomfire, Hellfire, Scorchfire, Icefire, Frostfire, Primefire and Smitefire. A built in damage distribution for the Smited potion effect is also added.

Lycanite's equipment's damage distribution is determined by the blade/axe/pike/jewel pieces, and copies the damage distribution of that specific item. (Equipment with a Grue Claw blade will use the same damage distribution as the Grue Claw item, for example).

Default config values have been added for ALL mobs, projectiles and appropriate items, pre Hellforged update. Default values for stuff after that update may be added later.

Spartan Weaponry
Thrown weapons will now have the same damage distribution as their item counterpart. You only need to configure them item version, the projectile entity will automatically inherit the same damage distribution, and will show on the tooltip for the item version.

When Distinct Damage Descriptions is run for the first time, or if there is a version update, Distinct Damage Descriptions will generate example JSON files for creature types and damage types. It is YOUR responsibility to backup your JSON files if you update or make any changes. I am NOT responsible for any files that are lost or otherwise damaged by using or updating Distinct Damage Descriptions, as per its MIT License.