Mods / Mortal Damage

Category: #Tweak
Author: OmegaHaxors
Side: Both
Created: Aug 23rd 2022 at 3:37 AM
Last modified: Nov 29th 2022 at 12:13 PM
Downloads: 855
Follow Unfollow 21

Latest file:
MortalDamage.zip


Changes the way combat damage is dealt to be more realistic. Instead of losing it all at once, you'll lose it over time.

90% of Slash/Crush/Stab damage you take is reduced and converted into bleeding, which will slowly tick down over time.
75% of Stab damage and 50% of Crush/Fall damage is converted into bleeding.
Healing items such as poultices will not restore your health directly, however, they instead reduce bleeding by an equal amount.
If you take a fatal hit (any hit that would have killed you) you will instead suffer Mortal Damage. If you don't heal, you will die.
From full health (20) it takes about 2 minutes to fully bleed out from a double-headed drifter's fatal hit, giving you lots of time.
Any healing that won't go towards reducing bleeding is converted into regen, which is like bleeding in reverse but WAY slower.
Regen won't give you health unless you're not bleeding, and will set itself to 0 once your health is maxed out.

Going into a crouching position (defending) will halve the speed in which bleeding is converted into health loss. This just might save your life.
Not sprinting will also halve the speed in which bleeding is converted into health loss, so walking to get medical help is your best bet.

It will tell you what your health will be when taking a hit, but if you forger you can use /bleed to see your true health.
Now there's an extra health bar (the blood bar) which shows you where your true health is. No more guess work!

INCOMPATIBILITIES:

Wildcraft "heal over time" poultices should be disabled

Version For Game version Downloads Release date Changelog Download
v1.4.1 163 Nov 29th 2022 at 12:13 PM Show MortalDamage.zip
v1.4.0 46 Nov 24th 2022 at 9:09 PM Show MortalDamage.zip
v1.3.2 146 Oct 2nd 2022 at 1:57 PM Show MortalDamage.zip
v1.3.1 45 Sep 29th 2022 at 12:32 PM Show MortalDamage.zip
v1.3.0 76 Sep 23rd 2022 at 3:52 AM Show MortalDamage.zip
v1.2.0 96 Sep 16th 2022 at 6:14 PM Show MortalDamage.zip
v1.1.1 94 Sep 10th 2022 at 6:35 AM Show MortalDamage.zip
v1.1.0 101 Aug 27th 2022 at 8:31 AM Show MortalDamage.zip
v1.0.0 82 Aug 23rd 2022 at 3:37 AM Show MortalDamage.zip

40 Comments (oldest first | newest first)

💬 OmegaHaxors, Jan 25th at 9:15 AM

Heebeejeebees
GUI code is a total mess trust me you don't want to deal with it.
But if you do, go ahead. Just disable the blood bar in your release and make your own through a client side mod.

The blood variable is visible to any other modders so hooking into it is no big deal. Read the player data and off you go.
Later on i'm going to update all my mods to use an uncompiled format so that players can more easily made edits to my code.

💬 Heebeejeebees, Jan 18th at 7:37 AM

Is there a way to stack the blood bar and health bar and compare values between them? Because if so, and provided I had the skill to do so I would set it up as follows:

Default
Health bar on top, default fill, transparent empty
Blood bar on bottom, darker fill, default empty

Healing
Blood bar on top, default fill, transparent empty
Health bar on bottom, different fill, default empty

Intention
If bleeding, as health depletes the blood bar is revealed which would show the bleeding in effect. As a player heals and health fills up, if health int is past blood int the order swaps so health uses a different colour to represent healing, while the blood bar fills to represent the regeneration of health until health is equal or below blood once more.

💬 OmegaHaxors, Nov 29th 2022 at 12:13 PM

Mod no longer attempts to send InGameErrors (the shaking red text) to players who are still connecting, causing them to crash.

💬 OmegaHaxors, Nov 24th 2022 at 9:10 PM

Added blood bar using code lifted from Oxygen Not Included. The developer of that mod has been added as a contributor.

At last, finally. You can see your "true health" with a bar just above your health bar.
I have also switched all Attributes over to Watched Attributes (which should fix client desync issues) and added a cheeky earthbound reference when you reach full health thanks to regen.

💬 TheNiteFox, Nov 7th 2022 at 3:54 AM

Okydoky just wanted to make sure what side it was on :) and yes it has a config I do believe.

💬 OmegaHaxors, Nov 5th 2022 at 2:21 AM

TheNiteFox
You have to disable it. From what I understand they have a config?

💬 TheNiteFox, Nov 5th 2022 at 1:59 AM

Does this mod automatically disable Wildcraft heal over time, or do I need to manually disable it? And will that mean those can no longer be made? Sorry I'm just a bit confused 😅

💬 OmegaHaxors, Oct 30th 2022 at 2:45 PM

Thank you for letting me know. DArkHekRoMaNT

💬 DArkHekRoMaNT, Oct 30th 2022 at 1:58 PM

PlayerCorpse v1.5.2+ works with Mortal Damage OmegaHaxors

💬 OmegaHaxors, Oct 25th 2022 at 5:17 PM

Iphour
That's a weird interaction. I set it up so that it should damage you with Poison damage sourcing from the Void when you reach 0 health through bleed.
It's sounding like it's an ish-them because this isn't the first time that Player Corpse's has broken on other's mods, it seems to be a recurring theme.

Regardless of whose fault it is, it's an incompatiblity so therefore it gets added to the list.

💬 Iphour, Oct 23rd 2022 at 8:41 PM

I have a problem where having Mortal Damage installed will make Player Corpse not work. If you die from bleeding, a corpse won't be created. Does it need to be fixed on this end or on Player Corpse's end?

💬 Edrein, Oct 3rd 2022 at 4:40 AM

OmegaHaxors No problem. I hope there's a way to figure out some sort of official compatibility between the two, but luckily Wildcraft has that config option for the time being.

💬 OmegaHaxors, Oct 3rd 2022 at 4:32 AM

Edrein Thanks for the warning. I'll add it to the main post.

💬 Edrein, Oct 2nd 2022 at 6:02 PM

I've noticed in my 1.17.4 game that I'm encountering what can only be described as 'stutter' movement (not lag, but a mild rubberbanding) when using a poultrice. As soon as I'm done regening from the poultice the odd movement issue stops.

Edit: I figured out what is causing this behavior. It's from running both Mortal Damage and Wildcraft. The moment I turned off the Wildcraft poultrice heal over time effect, the issue stopped occuring. That being said I'm now healing a lot slower. But am no longer having the rubberband/stutter movement when bandaging.

💬 OmegaHaxors, Oct 2nd 2022 at 1:57 PM

Just a small update. Now it now sends you a message when the bleeding stops without intervention.
It also tells you how much you will regenerate to after you stop bleeding, if you have any regen.

You will always have some level of regen after using a bandage since any leftover healing becomes regen in that case.

💬 OmegaHaxors, Sep 30th 2022 at 12:30 PM

Reuploaded 1.3.1 to fix the /bleed using "/nl" instead of "<br>"

💬 l33tmaan, Sep 29th 2022 at 4:27 PM

I've noticed weird numbers even in purely JSON outputs. I'll have a liquid set to transition into a solid item once it reaches 1 L of the liquid, but for some reason anything from 0.7-1.0 liter works. Or I'll input a "0.2" somewhere and it shows up at "0.175" in-game for some reason. Very bizarre.

💬 OmegaHaxors, Sep 29th 2022 at 12:33 PM

Just a little update. I accidentally broke the logic a little in the last update. It was harmless, but annoying.
While I was at it, I also added in a /bleed command so you can see your current True health, as well as your bleed/regen if they're not zero.
True Health calculations will not account for regen if your bleed is fatal, since regen only applies if you're not bleeding so you'd be dead anyway.

Readouts might be strange sometimes. Blame the game for insisting on using single-precision floats for everything. Float math is... weird.
I did a little math on my end to ensure that you always get a somewhat-readable printout, but sometimes it's just going to round strangely.

💬 OmegaHaxors, Sep 23rd 2022 at 3:52 AM

A long-needed update. Taking damage will now tell you how much health you will bleed to.
Applying regeneration will do something similar, showing you how much health you will heal up to.

I tried to make it an extra health bar but it turns that GUI code is a complete nightmare, so that's not happening.
If you feel like taking a crack at it I would be thrilled to have a proper GUI indicator of what your 'true' health is at.
For now the text-based system should be good enough.

Turns out the game is not set up yet to handle different damage types, drifters will always deal super-effective Crush damage against you, even if they're clearly slashing you with a blade. For this reason, I have reverted the damage to be 90% bleed for all types except falling, which retains the old 50% value.

💬 OmegaHaxors, Sep 16th 2022 at 9:01 PM

Latest update will fix issues with multiplayer.

💬 Heebeejeebees, Sep 15th 2022 at 8:12 AM

Latest also wors for 1.17.2, so you can add that as a version tag.

💬 OmegaHaxors, Sep 10th 2022 at 6:36 AM

Foxy_Grandpa
Should be fixed now, please let me know if it isn't.

💬 Foxy_Grandpa, Sep 5th 2022 at 7:47 PM

Tried using this on a server; the amount of times this throws an error is around 30 times per second, which is equivilent to the amount of ticks per second in default Vintage Story.
Playing with multiple players causes the server to crumble to a halt, effectively making it impossible to play with more than three players.

💬 DemonBigj781, Sep 2nd 2022 at 11:43 PM

i have a sugestion...

EARTHBOUND/MOTHER UP THAT HP BAR.

 

EDIT:

wait you where plainning to do that if you could. nvm

💬 OmegaHaxors, Aug 31st 2022 at 9:22 PM

There's no repo, but you can decomp the dll to get access to the code.
As for how it works, first it inturrupts the damage event and injects its own value called 'bleeding' which saves to the player's data.
Part of the damage gets converted into bleeding and the rest passes through the event as normal.
Now there's a timer on the server which ticks every 10-100 (I forget the exact amount of) milliseconds and converts a % of bleed to health loss.
This is accomplished by directly setting the player's health to be equal to their current health - the bleed amount, and then checking if it's above/below min/max health.
Now the regen system works exactly the same way except it turns the damage event on its head, instead using the healing damage type to apply Regen which works in reverse.
Koobze

💬 Koobze, Aug 31st 2022 at 2:41 PM

Sure, I can understand that. While I may not implement it myself I am curious how it works, and as you mentioned forking your mod, can you maybe point me at the repo? My apologies if I have overlooked this information already.

OmegaHaxors

💬 OmegaHaxors, Aug 31st 2022 at 5:31 AM

It won't be extended to animals because they already lag bad enough as is and it probably wouldn't be very fun to play with. Players have the common sense to back away when they've taken fatal damage. Animals/monsters would just keep mindlessly wailing on you which would lead to a lot of extremely frustrating double-deaths. You're welcome to fork this mod or make an addon to work on animals though, but it's not something i'm personally willing to persue.
Koobze

💬 Koobze, Aug 31st 2022 at 5:22 AM

Is there any chance that this could also affect animals and maybe other enemies? If there could also be blood trails it would be great for hunting and then tracking down wounded prey.

💬 OmegaHaxors, Aug 30th 2022 at 2:43 PM

With all due respsect it's supposed to be an earthbound reference not a fallout clone. Sounds like a fun idea but not the scope of this.
The only thing I want to do but don't have the capability of is having an indicator showing your true health and replace the health bar with an earthbound odometer. I have zero experience with GUI or HUD stuff.

💬 fireztonez, Aug 28th 2022 at 11:12 PM

Tels

That's would be a great mod idea seriously. However, I'm not sure if the developer wants to do a big overhaul of the health system like this.

I would imagine a little ovelay on the game screen showing the white character icon with red body parts if the part is broken.

High fall damage have a chance to broke your legs. An attack tier 2 and more hitting your legs will have chance to break your legs.

Some armor type could have some protection against body parts breakage (Specially hard armors like Plate Armors).

This could apply some limitation:

  • A broken leg = Walk 25% slower
  • 2 legs broken = Can't jump, walk 50% or 75% slower (That would make it pretty much impossible to do anything, but well you have 2 broken legs and no wheel chair!! You can still walk and go up half slab or stairs)
  • Left harm broken = Randomly drop left-hand items when walking
  • Right harm broken = Reduce attack damage by 40%, Mine slower...

This would also ask to add multiples items to the game, question to heal those broken parts.

Poison damage can be also added yes, but I don't know what you would want to use to stop the poison effect.

💬 Tels, Aug 27th 2022 at 1:31 PM

I like the direction this mod goes :) But think it only solves half of the problem (the damage, but not the healing). Ideally, I'd like to see a system a bit like 7D2D where any attack causes:

  • small health loss
  • a critical condition (like bleeding, sprained arm/leg, broken arm/leg, infection)

10% health sounds fine, although I haven't tested it, and if you want to keep it simple, starting with "bleeding" is also fine.

Then you can apply one or more items to:

  • either stop the critical thing (bandage => stops/reduces bleeding)
  • or reduce the time the critical condition heals (splint => sprained arm takes half the time to heal, and prevents further damage from this condition)

In addition, there are items which restore your health (like honey, EFs foods, good bandages), but they only do in small amounts and over time and not instantly. Their effect is also negated from still active critical conditions, f.i. bleeding would still damage you until you stop it.

For me that would be the best system. No longer "insta heal from bandages", but also no longer "insta death from one hit". It would also allow for different types of damages (poison, breakage from falling) in one go.

💬 OmegaHaxors, Aug 27th 2022 at 8:29 AM

Had a chance to playtest it. Didn't like it.
Few new changes which should address the issues I found.

Most importantly of them; health is no longer blocked but instead converted into regen which very slowly restores HP
Just like with bleeding it goes faster the more regen you have, but like bleeding, it resets to 0 once your bar hits the end.
Yes, it's so slow as to be useless in direct combat but it should make post-battle recovery a lot more tolerable.

💬 l33tmaan, Aug 26th 2022 at 2:17 AM

How prescient of you! Good to hear! :D 

💬 OmegaHaxors, Aug 26th 2022 at 1:46 AM

l33tmaan
In the damage event, whenever you recieve damage of the type "healing" if it's not coming from a respawn, convert the healing into reduction of the bleeding value and set the healing amount to 0
In other words, any item that restores your health will instead reduce bleeding. It's only really supposed to change bandages so I might rework it later so other methods don't get caught up in that.
As for the items themselves, there won't be any negative impacts for using them if you're not bleeding. You'll just get a little warning telling you that the healing isn't doing anything.

I'm also considering adding a "regen" value which depletes itself to restore your health if you're not bleeding, so kind of like an anti-bleeding. That's probably how i'm going to impliment non-bandage healing items in the future.

💬 l33tmaan, Aug 26th 2022 at 1:40 AM

How does this interact with non-bandage items that heal you? IE. highly processed Expanded Foods items?

💬 OmegaHaxors, Aug 26th 2022 at 12:56 AM

WhiteAmerican
> Seems a tad short-sighted to deny the possibility of a function someone could implement in their fork and publish as their own
Why would you say that like it's a threat? Are you under the impression that modders owe you something? Like I don't mind criticism but that's a really entitled way of putting it.
That's the great thing about anti-competitive modding communities, is that forks are a thing you can do. I challange you to fork the mod and realize your own vision. Do it. This is your excuse.

Later on i'll do some more work and properly playtest/balance the mod but right now i've been super busy on TOTPS getting to steel. This was just a fun side project while it was offline.
And i'll be real the main reason that i've been so hesitant on releasing a config... is that I don't actually know how to do one. I know, really anticlimatic, but yeah. Maybe later i'll set one up.
Maybe the gameplay ends up really sucking without healing but from what i've experience so far, the game is far better off for it. The one big hole i'm noticing is the lack of low-tier healing items.
Next time I work on the mod i'm going to look into adding some more basic healing items which can be obtained far easier, but I don't want to change the balance of the base game too much.
I already learned from the Armor Rework patch what happens when you do that. Unless you're determined to update the mod with every major release, it's not a fun ordeal.

💬 Heebeejeebees, Aug 25th 2022 at 7:38 PM

Seems a tad short-sighted to deny the possibility of a function someone could implement in their fork and publish as their own — not that I'd do that, I'm about smart as a ram when it comes to this coding stuff.

In the direction of going harder the trickle-bleed thing I was on about could have a multiplier so you bleed quicker per-hit even after all damage from initial bleeding is accounted for, and another thing you could do is have health decline as part of sickness after eating rotten food, or have a satiety reduction multiplier depending on how rotten the food is so a player becomes hungry, more quickly. Eat enough rotten things and death could occur as well.

Of course many using this mod would probably want to have configuration for these things, so I do encourage providing a modconfig file so people can play with how the mod is balanced. Unless I am literally asking too much from the game? I am aware mods can be provided separately per-server, but I am not aware if their configuration is, or if mod configuration per-server could be streamed as read-only data so I might be thinking of things Anego had yet to implement.

💬 OmegaHaxors, Aug 25th 2022 at 10:52 AM

WhiteAmerican
I could always lower the bleed time even further to give people even more time to use bandages and have them be useful.
Been on-and-off on allowing healing after bleed is cleared but always decided against it. Being able to top up your health with bandaids feeds a little too much into the power fantasy and that's not the mood i'm going for.

💬 Heebeejeebees, Aug 25th 2022 at 8:42 AM

After some experimentation, I consider the way this mod is balanced right now to be adequate, though in spite of my friend accepting it as a way to not immediately die when wolves and bears attack, considering it's more realistic than an absolute amount of damage taken she'd still like to ability to heal with bandages, rather than have bandages be useless for an immmediate heal.

Could there be some mod config options to enable this for select server operators so people are allowed the option to heal after bleeding had stopped? Some people also may believe 10% absolute with 90% bleed may be too lenient, so allowing adjustment of absolute:bleed ratio and maybe even including the facility to trickle-bleed if not having used a bandage for those hardcore folks would be nice for people who want to tailor how heallth functions as they wish.

💬 Josyph, Aug 24th 2022 at 12:35 AM

Good form on the Earthbound reference!

(edit comment delete)