
Vintage Story Mod DB · Vintage Story mod
Bleeding In Depth
Welcome to... insanity. Er, I mean, a very detailed mod all about (not!!!) bleeding! Info: This mod introduces bleeding as a mechanic, allowing you more complex tactical decisions both before and during combat. Decide to keep fighting to have the chance to s
Quick answer
Which Bleeding In Depth release matches 1.22.4?
Bleeding In Depth 0.4.2 targets 1.22.0-pre.1, 1.22.0-pre.2, 1.22.0-pre.3. It must be installed on the client. Installation on the dedicated server is optional. No extra mods listed for this file.
Where it goes
Is Bleeding In Depth required on the client, server, or both?
It must be installed on the client. Installation on the dedicated server is optional.
This release supports both sides, but the source does not require it on the server.
What else does Bleeding In Depth 0.4.2 need?
0.4.2 on 1.22.4. Every mod below is checked against that same setup.
This file does not list any required mods. Do not add a library just because a different file uses it.
This file does not list any required or optional mods.
Before you install it
Add Bleeding In Depth without breaking your instance.
Built for Bleeding In Depth 0.4.2 on 1.22.4. Pick another file and the loader, install side or required mods may change.
- 01
Stick to this file
Use 0.4.2. It targets 1.22.0-pre.1, 1.22.0-pre.2, 1.22.0-pre.3; another release may have different loader, side or dependency requirements.
- 02
Bring the mods it needs
This file does not list any required mods. Do not add a library just because a different file uses it.
- 03
Put it on the correct side
It must be installed on the client. Installation on the dedicated server is optional.
- 04
Pick the file you checked
Use the “Get this file” button beside 0.4.2. It opens that exact file at the source.
About this project
What does Bleeding In Depth add?
Welcome to... insanity.
Er, I mean, a very detailed mod all about (not!!!) bleeding!
Info:
This mod introduces bleeding as a mechanic, allowing you more complex tactical decisions both before and during combat. Decide to keep fighting to have the chance to start tending to your bleed sooner or flee and hope you can escape in time to not bleed out! Choose different weapons for their damage types to utilize bleed more or go for direct damage (with compatible mods).
Highly configurable, you can change how pretty much all of the mod functions with just some config edits. I have put a lot of effort into balancing values to be fair but some may want more/less punishing or just to change up the system completely. with a bit of tinkering you could even make it a purely visual effects only mod! All config defaults are listed next to their config value so you can easily revert any config changes you make.
You can find my calculated default bleed output here if you are interested in the exact default values effects on damage and bleed: spreadsheet.
Note: Vanilla does not use damagetypes, so without a mod to add them. This mod will default all damage to slash unless the config for damagetype compat is enabled (which still requires something to assign damagetypes to damage sources. toggling this config without any correction will asign everything to blunt, as that is what vanilla normally assigns to all damage.) OR a compatible mod is also used. Compatible simply means i have added it to the default config which auto enables the damagetype compat config option for you. You can use non-autocompat mods as well simply by changing the config option to true yourself.
Most mechanics are able to be disabled or configured
- Bleed is divided into 2 categories: External and Internal. You can play with both, or disable either or both in the config if desired.
- External: The main form of bleeding and the core of the mod. It causes damage over time, most of the bleeding EFXs, and eventually is what allows internal bleeding to occur.
- Internal: The slow killer. It is only applied when enough bleed damage is delt in a single hit, and converts some of the external bleed you recieve into itself. (see formulas). Internal bleeding is made to simulate a hit being so big it becomes very hard to heal from it. Internal bleeding does less DPS but will overall deal more damage total. It can not be healed by basic forms of healing items and requires advanced medical equipment like a suture (suture not yet implimented).
- Different damage types will apply different amounts of bleed.
- Slash: By default is low damage but applies a good amount of bleed. It has the highest total damage but requires waiting for the bleed damage to tick to get there. DPS will be lower but overall damage will be higher.
- Pierce: By default is the middle ground. it applies good damage but trades it off for having only a small amount of bleed. Its strength lies in that it does not need to apply much bleed before it starts applying Internal bleeding.
- Blunt: By default is pure damage. Most of its damage is applied instantly on hit meaning you do not need to wait out bleeding to deal its damage. also while it applies very little bleed, any that it does apply is 100% converted into internal damage.
- Healing and slowing bleed can be done in multiple ways. They generally all stack with each other unless stated. Which type of bleed they effect is currently hardcoded.
- Applying pressure / Stemming the wound: Only effects External. Crouching or resting reduces the rate that bleed level is applied as damage. This is the main way in the mod for reducing damage taken from bleeding.
- "Tending" the wound: WIP, Only effects External. While NPCs cannot directly heal or apply pressure, entities besides the player will still be able to reduce the rate of the bleed damage they are taking. Depending on the entity different out of combat actions will be taken if they are bleeding in order to reduce the damage. For example, a wolf may stop to sit and lick the wound in order to slow the bleeding. This will take a lot of work so i dont plan on having it finished soon. As a stand in the game will consider any entity that is not in combat (taking damage) for a certain period to be "tending" to itself.
- Bandages and healing items: Only effects External bleeding. Healing items will now apply a "bandaged" status to you when you use them. This status stacks with applying pressure to reduce the bleed rate. bandaged will not stacked with ragged. Once bleeding is no longer occuring or you take another hit the bandaged and ragged status will be removed.
- Resting: Applies to both External and Internal. Different actions such as sitting will increase the rate that the current level of bleed is healed. This currently includes: sitting on the ground, (WIP) sitting on a "comfort" object, laying in a bed.
- Applying pressure / Stemming the wound: Only effects External. Crouching or resting reduces the rate that bleed level is applied as damage. This is the main way in the mod for reducing damage taken from bleeding.
- Bleed Damage Ticks:
- Bleed damage is applied as a % of the current BleedLevel
- external bleed damage to apply per tick = (Bleed_CurrentLevel_External * (in config)Rate_BleedDamage_External) / ((if pressure)(in config)Pressure_Mod + (if bandaged/ragged)Ragged/Bandaged_Mod)
- internal bleed damage to applly per tick = (Bleed_CurrentLevel_Internal * (in config)Rate_BleedDamage_Internal)
- current BleedLevel is then reduced by a flat modifier and a % of current BleedLevel
- external bleed level to heal per tick = ((in config)Rate_BleedHeal_External + (Bleed_CurrentLevel_External * (in config)Rate_ScaledHeal_External))
- internal bleed level to heal per tick = ((in config)Rate_BleedHeal_Internal + (Bleed_CurrentLevel_Internal * (in config)Rate_ScaledHeal_Internal))
- Bleed damage is applied as a % of the current BleedLevel
- External to Internal bleed conversion:
- Each damage type has a config value that an instance of damage of that damage type has to surpass in order to start converting External bleed into Internal bleed. Only damage delt over the threshold will be converted. The amount converted increases as more damage is applied over that threashold. Note that this is a % of the bleed past that threashold so the actual amount is very small. Uses a Double Sigmoid curve.
- (% of bleed converted) = y + Offset_Y + (Max1 / (1 + e(-Rate1 ([Config's Bleed_OverInternalConversionThreashold] - Offset_X1)))) + Max2 / (1 + e(-Rate2 ([Config's Bleed_OverInternalConversionThreashold] - Offset_X2))))
- Each damage type has a config value that an instance of damage of that damage type has to surpass in order to start converting External bleed into Internal bleed. Only damage delt over the threshold will be converted. The amount converted increases as more damage is applied over that threashold. Note that this is a % of the bleed past that threashold so the actual amount is very small. Uses a Double Sigmoid curve.
My mod is very unintrusive to the vanilla systems so most mods should be compatible out of the box unless they massively change underlying game mechanics.
For damagetype adding mods, compat can be forced by enabling the config value: /Config_System/System_BleedDamage/UseDamageTypeCompat.
- Vanilla does not currently by itself impliment DamageTypes so this config option on wont work without a mod that adds DamageTypes.
Tested Compatible Mods:
Incompatible Mods:
- https://mods.vintagestory.at/codamageeffects reported by user to disable BID's system
*There is lots of stuff in the config labled WIP, things not listed here might show up there if i forget to add them to here. "WIP" configs will not do anything but i am planning on adding them eventually.*
- More bleeding effects, both visual and auditorial
- Better indicators for things like if you are bleeding or if you are applying pressure to reduce your bleed rate
- Better ways to tell what effects what for bleeding and healing (currently i just list them on the modpage here)
- An early game rag system that lets you reduce bleed before you get proper bandages
- More healing items that specialize in reducing bleed
- More different bleed application methods that can be chosen in the config
- Liniear scaling, Pooled bleed damage, Vanilla DOT integration
- Some more config control over various functions of bleeding
- Work around armor reduction making high protection values reduce damage way too much [Added]
- More uniqueness to damage types
- Potentially more balancing of default values?
- Better modicon
- Other mods! So many mods! Tons of future mods planned!
------------------------------PRIORITY TODO:------------------------------
bleed wound direction only comes out of 1 random wound per particle spawn; can fix? idk man...
------------------------------CURRENT TODO:------------------------------
removes exponential curve for calculating bleed damage and instead uses a pooled damage system. This system will be more linear in bleed damage scaling as more bleed is acumulated. pool will accumulate bleed damage that is converted from initial damage taken. damage dealt from the pool is directly removed resulting in the exact hp in the pool to be applied to entity heal once bleed the pool is empty. bleed damage rate still increases with a bigger pool, but the amount removed from the pool scales equally.
^ same thing
when true, uses a pool system for [Bleed_CurrentLevel_*]. Bleed damage taken will be applied to the pool which will used to scale the rate that bleeddamage is applied to the entitys hp. damage dealt from the pool this way will be removed from the pool. This results in the exact bleed accumulated in the pool being what is subtracted from the entitys health once the full pool has been applied.
entity.GetInteractionHelp(); could be used for debugging to display individual entity bleeding levels... or just in general even without debug
or entity.GetInfoText(); ^ but displays in WAILA hud
heavily bleeding entities become "bloody" like how cold entities get a snow overlay on them (same bleed threshold for blood pop on death?)
^ same thing but for bandaged/ragged entites so you can tell they are under the effect
check if entity is mechanical and make their blood a different color and glow or oil (depending on which entities are mechanical); drifter blood should be rusty colored and rarely "temporal teal"
better normalization for internal bleed reportbleed output
increase hunger rate while bleeding
finish deathpop implementation - need on entity_behaviorhealth.OnDeath or something but doesnt seem to exist on client, annoying!
change armor piercing to be determined by damage tier of the attack vs the defence tier
entity_BehaviorHealth.didattack
.healthchangerate
.futurehealth
.onentitydeath
.pevioushealth
------------------------------TODO:------------------------------
create DPS calculator method inside general
get the number of particles currently loaded and apply a curve from this to reduce bleeding particle spawns when nearing cap - possible?
move config comments into a lang file?
for blood splash, use random.next and randomize directly in the natfloat declared for wound selector; doesnt work, find different way
ranged damage does not trigger blood splash
seperate config for client and server
CO (and compat section in config) second chance removes or reduces bleed (make it a % in config)(off by default)
animation for when crouching (stemming bleeding) and currently EXTERNALLY bleeding to visually show that pressure is being applied
prevent bleeding animals from despawning; do not apply to non living things or drifters
add applying a bandage to other entities or find a mod that does this
some efx to indicate that the current bleed level (taking into account currently applied preventative measure) is going to be lethal: NOTHING OBNOXIOUS PLEASE; Ideas:
- darkening of the bleeding particles
- woozy effect on hp bar (wavy or something)
- apply the low health indicator (wobbly screen) in advance
implement rag and ragged state; partially done
quantify hp lost to bleeding into blood particles created by effect. ie if player takes 10 total damage from bleeding the # of particles created over the wounds lifetime should be 100(?) (total damage * ?)
dripping visual efx on hp bar; other effects to tell player is bleeing?; add a "bleeding" bar behind the health bar that shows how much bleed_currentlevel_External is left in the pool
figure out how to get entity velocity and add it to blood particles on creation -> which particle property to set; also let wind effect it? only in air
dont bleed entity when out of entity.SimulationRange; probably automatically done but check; not the same as reduced particle spawn distance
dead bodies bleed config?
account for block height not being a full block (such as snow) causing the particles to clip into it and not be visible
blood particles that enter water become 2d and less gravity; use die in water and on death spawn particle... but then it will normally spawn them too?
add configlib support
add "master blood trail" particles that ocasionally spawn instead of normal blood particles and last a lot longer. reduce time normal blood particles last. these particles can also be used for pooled blood grouping
bug: each instance of healing DOT from healing items triggers the isBandaged to true; move isbandaged application to on item use
convert to EnumDamageOverTimeEffectType(2) (bleeding)? need to figure out how this system works first
change (configurable?) vague bleed report damage to be based on the "total damage to be delt by the bleeding" rather than dps?
convert bleed aplicaiton for all types into a pipeline
------------------------------IDEAS:------------------------------
critical heals? since co has critical hits from certain hitboxes it might be a good way to try to balance around that
maybe flag when a hit is a crit and the next bandage applied will be critical (applied "to" a critical wound) and heal more bleed
move bleeding to per part?
non healing items that reduce bleed
- something like a band that reduces blood flow when applied to a limb (would this even work irl). cannot be applied to torso or head as you cannot realistically restrict blood flow to them
what is the actual ratio of damage when converting bleed into external bleed? internal bleed should do ?x of what bleed damage would have done?
internal bleed should do about 25% more damage (1.25x) of what the bleed it converts would have done? internal should be more deadly but slow. does it stack with each %s damage multipler? 1% > 1.25x, 2% 1.25*1.25x ?
bleedheal scales with hunger? this is hard to include without throwing off the balancing of damage
cloth used up after healing? maybe rmb to use the cloth while healing to apply a bleed reduction rate until either bleeding stops or damage is taken
increase the healrate slightly by a % of the current bleed level to simulate "more cuts healing" while internal bleed can simulate "big hard to heal cuts" this will allow a better external bleed damage rate curve without making big hits suffer. it would also still allow big hits to be simulated as hard to heal.
blood trails (block overlays like how rust is done) that replace blood particals on the ground for performance? would allow trails to stay longer? forever(until certain conditions (rain, walked on, trails mod integration to degrade into nothing?))?
blood loss inflicts "weakening" effect which reduces things like speed, damage, throw distance ect
maybe change name for external and internal wounds to something to represent "big and small" wounds? remove internal bleeding as a concept (for now) and commit to internal just being big wound simulation?; i want to do this but need good names first
noted calls:
bool entity.OnGround(); detect if entity is on ground
byte entity.IsTracked(); can be used for blood particals to reduce performance impact?
float entity.MaterialDensity(); can be used for weight mod to have certain items sink
void entity.OnHurt(); called to apply damage, intercept for applying my mods damage; only called on clientside
void entity.Initialize or AfterInitialized(); called when entity is created or loaded. inject to apply my mods behavior to entities. (probably do the same with unload or whatever its called)
bool entity.ReceiveDamage(); this one works serverside
void entity.SpawnWaterMovementParticles(); example for how to spawn (and spell...) particles
entity.PlayEntitySound(); inject into to play bleeding sfx?
player.Entity.Pos.SquareDistanceTo();
entity_HealthBehavior.PreviousHealth or HealthChangeRate instead of calculating myself? could cause problems with multiple hits happening before my (delayed by deltaTime check) code runs; splitting my method around the armor application probably works better
- No localization yet!
- Blood particles may hit the particle limit quickly with multiple bleeding entities. I am workking on the system to reduce to overall particles created.
- Any healing will apply the bandaged effect, including each individual tick of healing from bandages.
- Blood particles clip into partial blocks such as snow layers.
My general goal with game design is to never punish the player for something competely out of their control such as RNG. All consequenses should mostly be directly resulting from the players actions.
With this in mind, I balanced the mod around letting the player choose to ignore the bleed in order to preform other actions such as combat which results in taking more damage, or having the option to reduce the damage they take through various means but require an active commitment. This gives the player a choice after being hit outside of direct hp.
basically: bleed will do more damage than vanilla overall, but with actions taken can be reduce to below what vanilla would have inflicted.
I am pretty new to modding games so there is probably a lot of things that could be done better codewise. Dont be scared to mention anything that I can do better. In fact, i would apreciate any tips and advice.
- Thanks to Bloody Story for both the idea and insperation to make this mod, as well as making their code open source so I was able to learn from it (Vintage Story api funne). It would have been much more of a struggle to get this to work without a general idea of how-to.
- My testers kokoa_real for putting up with my insane ramblings at 4am on random days as i lost my mind over the stupid things I could add to this (and future) mods. (The real suffering is about to begin)
- Monster Hunter devs for driving me somehow more insane than i already was.
- My brian for keeping me up at night with insane ideas.
- Vintage Story devs for making such a moddable and cool game.
This mod does NOT do any of the following (probably):
explode you instantly when you spawn
spawn 1000 bears on you every second
delete your entire c drive... and install linux
Project description from Vintage Story Mod DB.
Pick your setup
Bleeding In Depth releases for each Vintage Story version.
Choose the version and loader you play, then open the matching release.
1.22.3
1 loader build1.22.2
1 loader build1.22.1
1 loader build1.22.0-rc.10
1 loader build1.22.0-rc.9
1 loader build1.22.0-rc.8
1 loader build1.22.0-rc.7
1 loader build1.22.0-rc.6
1 loader build1.22.0-rc.5
1 loader build1.22.0-rc.4
1 loader build1.22.0-rc.3
1 loader buildShowing the newest 12 of 44 game versions. Older files are in the list below.
Check the dependencies, then try the file in a copied instance before changing a world you care about.
Recent files
Bleeding In Depth versions and loaders
0.4.2
BleedingInDepth-v0.4.2.zip
26 Jul 2026
Looking for an older file? The official Vintage Story Mod DB project page is in Resources.