Want to see it in a modpack? -> FalchionMC
Hello, this is a damage system mod intended for my modpack!
Wounding Types
Currently, there are 4 hard-value wounding types.
Blunt, Pierce, Slash, and Chop
These are just descriptors of the weapon. It's extremely recommended to avoid using multiple wounding types on one weapon, but nothing is stopping you. (Balancing multiple multipliers is quite difficult and nonsensical, imagine a weapon that is both piercing and blunt, and a mob has -50% blunt and +50% pierce. They will negate each other.)
Filepath is data/tkvm_damage_system/tkvm_damage_system/weapon_tags/YOUR_FILE_NAME.JSON
You can name it anything, I recommend naming it to whatever namespace of weapons you are datapacking.
Example:
{
"tkvm_weapons:wooden_dagger": [
"pierce"
],
"tkvm_weapons:stone_dagger": [
"pierce"
],
"tkvm_weapons:golden_dagger": [
"pierce",
"holy"
],
"tkvm_weapons:iron_dagger": [
"pierce"
]
}
That's all you need to datapack a weapon to be a type.
Alongside the wounding types, you can put, whatever you want basically. If you want to put "spaghetti" alongside it, you could. What you need to follow up with is next;
{
"tkvm_weapons:wooden_dagger": [
"pierce",
"spaghetti"
]
}
I promise the spaghetti example will make sense.
Entity_tags
This is where the multipliers are defined and basically, how the mob will take damage from the wounding types.
filepath: data/tkvm_damage_system/tkvm_damage_system/entity_tags/YOUR_FILENAME.JSON
Once again it doesnt matter what the filename is.
in vanilla.json (example)
{
"minecraft:zombie": {
"vulnerable": {
"slash": 5.0,
"pierce": 5.0,
"chop": 5.0,
"spaghetti": 5.0
}
}
}
Every 1.0 means 10%. so in this example this zombie is vulnerable to every type, and, if a weapon is also a spaghetti type, it will deal an extra 50% addition of its base damage.
Just to reiterate : the base 4 wounding types are a separate calculation apart from any other additional / elemental type.
So if you have a slash, spaghetti sword, with a base of 10, the slash will add 50%, so that will do 15 on its own, and then the spaghetti will also add another 5, because its adding a ```base damage bonus x vulnerability multiplier (50%) = 5
So the total will be 20.
total = (BASE × wounding_multiplier) + (BASE × additional_attribute_multiplier)
This creates an edge case where you would think to make something resistant to a, say, spaghetti sword, but in reality, that won't do anything. It never goes negative.
Think of the additional attribues as additive damage you would like entities to be vulnerable to, not something to take away.
The spaghettiness of the sword doesnt negate the fact that its a sword, only inflicts that extra damage to those susceptible.
The reason for the spaghetti example was just to show you can put anything, and as long as the entity has the matching vulnerability the bonus will be applied.
Resistant
You can of course also make any entity resistant to wounding type. Or the additional tag, but as I already explained, that wouldn't do anything.
{
"minecraft:zombie": {
"resistant": {
"slash": 5.0,
"pierce": 5.0,
"chop": 5.0,
"spaghetti": 5.0
}
}
}
And of course, you can make an entity both vulnerable and resistant to whatever.
"minecraft:skeleton": {
"vulnerable": {
"blunt": 5.0,
"chop": 2.5
},
"resistant": {
"pierce": 5.0,
"slash": 5.0
}
},
Armor
How does armor work then?
Armor works as normal. Nothing has been changed about armor mechanics.
Compat
Currently, only my mods have built in compatibility. Mobs:
- https://www.curseforge.com/minecraft/mc-mods/tkvm-enemies-dark-knight
- https://www.curseforge.com/minecraft/mc-mods/tkvm-enemies
- https://www.curseforge.com/minecraft/mc-mods/tkvm-undead-army
Weapons:
