Jump to content

Realistic fall damage


Deathpossum

Recommended Posts

Well, thats not realistic, if you have armor on in real life your not going to take less damage, and most you'll take more damage because your heavier.

 

This. Would you rather hit the ground in your clothes and be able to roll with the impact, or bounce around inside a metal suit?

 

If your asking a question about the mod, it would be cool to be able to roll to reduce damage, but I don't understand the second part of the question.

 

I was talking about realism. Wearing a 45 pound suit of plate mail is not going to absorb any damage from a fall. In fact, it will hurt one hell of a lot more, when you consider that the weight of your falling body is going to be absorbed by steel, rather than dirt.

 

Well, yeah it would hurt allot more, except for the fact that in skyrim you always jump feet-first, and hence it wouldn't influence it as much as hitting the ground chest-first (in plate mail). So, if you were to factor that in, you would take a small amount more damage depending on the armour, none if its just plain clothing.

 

 

What you are suggesting is pretty doable. Could you get some more "meat" around the specifics. I am working on a vampire mod and have Perks that modify the fall height damage. You could easily modify damage conditionally. Get some more thought around how this should work and maybe someone will come up with it.

 

-MM

Link to comment
Share on other sites

Well, thats not realistic, if you have armor on in real life your not going to take less damage, and most you'll take more damage because your heavier.

 

This. Would you rather hit the ground in your clothes and be able to roll with the impact, or bounce around inside a metal suit?

 

If your asking a question about the mod, it would be cool to be able to roll to reduce damage, but I don't understand the second part of the question.

 

I was talking about realism. Wearing a 45 pound suit of plate mail is not going to absorb any damage from a fall. In fact, it will hurt one hell of a lot more, when you consider that the weight of your falling body is going to be absorbed by steel, rather than dirt.

 

Well, yeah it would hurt allot more, except for the fact that in skyrim you always jump feet-first, and hence it wouldn't influence it as much as hitting the ground chest-first (in plate mail). So, if you were to factor that in, you would take a small amount more damage depending on the armour, none if its just plain clothing.

 

 

What you are suggesting is pretty doable. Could you get some more "meat" around the specifics. I am working on a vampire mod and have Perks that modify the fall height damage. You could easily modify damage conditionally. Get some more thought around how this should work and maybe someone will come up with it.

 

-MM

Ok, so: (this is all roughly I don't know how the fall damage values work) 3 meters of falling, has a small chance to take a small amount of damage. At 4 meters, you do take a small-medium amount of damage. At 5 you do take a medium-high amount of damage, and a small chance to take allot of damage. At 6 you do take high/very high/chance to die (damage). At 7, you have a small chance to take very high damage and otherwise die. 8+ Die. Unless you can roll.

 

For damage enhancers: Light armour - take a small amount more damage. Heavy armour - Take a medium amount more damage.

 

Does that cover enough for you?

Link to comment
Share on other sites

bump

 

Ok,

 

So there are specific values in the GameSettings that control Jumping and Falling.

 

fJumpFallHeightMult = .1

fJumpFallHeightMultNpc = .1

fJumpFallHeightExponent = 1.45

fJumpFallHeightExponentNpc = 1.65

fJumpFallHeightMinNPC = 450

fJumpFallHeightMin = 600

fJumpFallHeightVelocityMin = 700

 

And then there's specific Effect Type's for Perks that allow you to control Falling Dmg where you can apply static values, multipliers, and other things that can be modified to control how much damage is applied. For instance, my vampire mod work I'm doing provides several fall damage modifiers intended to reduce damage based on the level of the vampire, so I dampen the damage at 20%, 40%, 60% and 80%.

 

There also appears to be a FallDamageTimer, but I'm unsure of it's use at the moment.

 

So, Without the CK, there's a way to apply simple damage negation altogether, or scale back the amount of damage you take from a fall (via perks) and there's modifiers that can be tweaked. Scaling damage along a curve might be more difficult, at least without understanding how the system actually caculates damage, or at least some scripting.

 

Now, if damage is applied based on velocity during a fall when you hit the ground, there's a function called GetVelocity which we might be able to use to create specific conditions on a perk to scale up or down the damage but...

 

Here's how I would approach this...

 

For starters, you probably need to figure out the height of your maximum fall you would like to take without taking damage. Not sure how to tell the height between two distances on the Z plane but I imagine you can jump off, see if you take damage. If you don't, I would start modifying the value of fJumpFallHeightMin down until you do, and then mod it back up slowly until it's perfect height for you. Or do the reverse if neccessary.

 

Next, I'd start by tweaking the fJumpFallHeightMult and fJumpFallHeightVelocityMin to see what affect they have. The problem will be, even once you understand the affect I imagine things are going to scale linearly. You might need to add in some artificial damage reduction via a perk, and measuring the velocity of the player just before they hit the ground. While that sounds like it'll be hard to time, you can actually slow down time in the game via the console with SGTM <VALUE>. A 1 will cause time to pass at the regular rate, 2 = twice the speed, .5 = half the speed. You should then be able to jump, go into 3rd person view and enter the console just before hitting the ground, targetting yourself and then using the GetVelocity or maybe even Player.GetVelocity will work.

 

Measure your velocity at various heights, noting the damage you take and whether you want more or less damage at that velocity. See if tweaking the values works and if you need to create a perk to modify the amount of damage under a certain velocity you can do that:

 

1) Create a perk

 

Item Name: Fallguy
Uknown 1: 1
Uknown 2: 1
Uknown 3: 0
Conditions: None

Perk Sections
Add 1 that
Type: Complex
Index 0
Effect Type: Falling Dmg
Apply Type: =Float
Uknown Type: 1
Value: .25
Condition:
PRKC is for each condition = 0 
GetVelocity >= some value 
GetVelocity <= some value

 

That's how I would approach this. I'm not saying some major tweakage isn't going to be required but without having the CK, this might put you on the right direction.

 

I wish I could be more exact with my help here. This is just how I would start picking apart the system to reverse engineer how it work and how best to achieve the goals you seek. Unless you can find it documented somewhere and I'm sure it's likely very similar to Fallout's implementation so perhaps someone has done that work and documented it.

 

-MM

Link to comment
Share on other sites

bump

 

Ok,

 

So there are specific values in the GameSettings that control Jumping and Falling.

 

fJumpFallHeightMult = .1

fJumpFallHeightMultNpc = .1

fJumpFallHeightExponent = 1.45

fJumpFallHeightExponentNpc = 1.65

fJumpFallHeightMinNPC = 450

fJumpFallHeightMin = 600

fJumpFallHeightVelocityMin = 700

 

And then there's specific Effect Type's for Perks that allow you to control Falling Dmg where you can apply static values, multipliers, and other things that can be modified to control how much damage is applied. For instance, my vampire mod work I'm doing provides several fall damage modifiers intended to reduce damage based on the level of the vampire, so I dampen the damage at 20%, 40%, 60% and 80%.

 

There also appears to be a FallDamageTimer, but I'm unsure of it's use at the moment.

 

So, Without the CK, there's a way to apply simple damage negation altogether, or scale back the amount of damage you take from a fall (via perks) and there's modifiers that can be tweaked. Scaling damage along a curve might be more difficult, at least without understanding how the system actually caculates damage, or at least some scripting.

 

Now, if damage is applied based on velocity during a fall when you hit the ground, there's a function called GetVelocity which we might be able to use to create specific conditions on a perk to scale up or down the damage but...

 

Here's how I would approach this...

 

For starters, you probably need to figure out the height of your maximum fall you would like to take without taking damage. Not sure how to tell the height between two distances on the Z plane but I imagine you can jump off, see if you take damage. If you don't, I would start modifying the value of fJumpFallHeightMin down until you do, and then mod it back up slowly until it's perfect height for you. Or do the reverse if neccessary.

 

Next, I'd start by tweaking the fJumpFallHeightMult and fJumpFallHeightVelocityMin to see what affect they have. The problem will be, even once you understand the affect I imagine things are going to scale linearly. You might need to add in some artificial damage reduction via a perk, and measuring the velocity of the player just before they hit the ground. While that sounds like it'll be hard to time, you can actually slow down time in the game via the console with SGTM <VALUE>. A 1 will cause time to pass at the regular rate, 2 = twice the speed, .5 = half the speed. You should then be able to jump, go into 3rd person view and enter the console just before hitting the ground, targetting yourself and then using the GetVelocity or maybe even Player.GetVelocity will work.

 

Measure your velocity at various heights, noting the damage you take and whether you want more or less damage at that velocity. See if tweaking the values works and if you need to create a perk to modify the amount of damage under a certain velocity you can do that:

 

1) Create a perk

 

Item Name: Fallguy
Uknown 1: 1
Uknown 2: 1
Uknown 3: 0
Conditions: None

Perk Sections
Add 1 that
Type: Complex
Index 0
Effect Type: Falling Dmg
Apply Type: =Float
Uknown Type: 1
Value: .25
Condition:
PRKC is for each condition = 0 
GetVelocity >= some value 
GetVelocity <= some value

 

That's how I would approach this. I'm not saying some major tweakage isn't going to be required but without having the CK, this might put you on the right direction.

 

I wish I could be more exact with my help here. This is just how I would start picking apart the system to reverse engineer how it work and how best to achieve the goals you seek. Unless you can find it documented somewhere and I'm sure it's likely very similar to Fallout's implementation so perhaps someone has done that work and documented it.

 

-MM

Ok, I'm not a modder, so time to ask some questions:

1. The code for the perk, is that all that I need or do I also need another file (so pretty much is the perk just for adding IF this happens make this happen)

2. If that is all I need where do I put/find the file and if needed how do I get in there?

3. If that isn't what I need question 2 and where is the file I have to modify.

 

I think that is all.

Link to comment
Share on other sites

 

Ok, I'm not a modder, so time to ask some questions:

1. The code for the perk, is that all that I need or do I also need another file (so pretty much is the perk just for adding IF this happens make this happen)

2. If that is all I need where do I put/find the file and if needed how do I get in there?

3. If that isn't what I need question 2 and where is the file I have to modify.

 

I think that is all.

 

The perk is just if you need to reduce the amount of damage. It's a flat percentage reduction, so it wouldn't give you much control over at well distances you should take more damage. Someone requested a "No Fall Damage" perk so I had written one up, and then another request for a Slow Fall so I started doing some more investigation.

 

fJumpHeightMin = The maximum height you can jump. Altering this value allows you to jump higher

fJumpFallHeightMin appears to be the maximum height you can fall BEFORE you start taking damage

 

You definitely GAIN velocity as you fall. If you're familiar with console commands you can launch the console mid fall and type the following:

 

player.getvelocity z

 

That will tell you how fast you are falling. It'll be a negative number. If you do it mid jump, it'll be a postive number

 

You can alter ANY of the following values via the console as well, so that you can test their affect:

 

These are the default values:

 

fJumpFallHeightMult = .1

fJumpFallHeightMultNpc = .1

fJumpFallHeightExponent = 1.45

fJumpFallHeightExponentNpc = 1.65

fJumpFallHeightMinNPC = 450

fJumpFallHeightMin = 600

fJumpFallHeightVelocityMin = 700

fJumpHiethMin = 76

 

Modify in game:

setgs fJumpFallHeightMin 300

 

getgs fJumpFallHeightMin will tell you what the current value of fJumpFallHeightMin is.

 

So the point of all this? It'll take you some trial and error for you to work out what you think is best, but you can work on coming up with values that make sense to you. Then you can either make a mod via SkyEdit to alter those values permanently, or let me know what values you like and I'll gladly do it for you. This is one of those things that's probably best left up to you to decide because what you think is appropriate I may think is terrible! :)

 

Finally, if you think it's still applying TOO much damage, we can use the perk to reduce it across the board.

 

FYI: Making the changes in SkyEdit is VERY easy.

 

1) Load SkyEdit, open the Skyrim.esm and Update.esm.

2) click on GameSettings

3) Use the filter and type in the word Jump (it's at the top of the colum) and you'll quickly see all those game settings

4) Alter the values to the ones you think worked best for you

5) Save the module with a new name

6) Load the module in the DataFiles and you're off

 

-MM

Link to comment
Share on other sites

 

Ok, I'm not a modder, so time to ask some questions:

1. The code for the perk, is that all that I need or do I also need another file (so pretty much is the perk just for adding IF this happens make this happen)

2. If that is all I need where do I put/find the file and if needed how do I get in there?

3. If that isn't what I need question 2 and where is the file I have to modify.

 

I think that is all.

 

The perk is just if you need to reduce the amount of damage. It's a flat percentage reduction, so it wouldn't give you much control over at well distances you should take more damage. Someone requested a "No Fall Damage" perk so I had written one up, and then another request for a Slow Fall so I started doing some more investigation.

 

fJumpHeightMin = The maximum height you can jump. Altering this value allows you to jump higher

fJumpFallHeightMin appears to be the maximum height you can fall BEFORE you start taking damage

 

You definitely GAIN velocity as you fall. If you're familiar with console commands you can launch the console mid fall and type the following:

 

player.getvelocity z

 

That will tell you how fast you are falling. It'll be a negative number. If you do it mid jump, it'll be a postive number

 

You can alter ANY of the following values via the console as well, so that you can test their affect:

 

These are the default values:

 

fJumpFallHeightMult = .1

fJumpFallHeightMultNpc = .1

fJumpFallHeightExponent = 1.45

fJumpFallHeightExponentNpc = 1.65

fJumpFallHeightMinNPC = 450

fJumpFallHeightMin = 600

fJumpFallHeightVelocityMin = 700

fJumpHiethMin = 76

 

Modify in game:

setgs fJumpFallHeightMin 300

 

getgs fJumpFallHeightMin will tell you what the current value of fJumpFallHeightMin is.

 

So the point of all this? It'll take you some trial and error for you to work out what you think is best, but you can work on coming up with values that make sense to you. Then you can either make a mod via SkyEdit to alter those values permanently, or let me know what values you like and I'll gladly do it for you. This is one of those things that's probably best left up to you to decide because what you think is appropriate I may think is terrible! :)

 

Finally, if you think it's still applying TOO much damage, we can use the perk to reduce it across the board.

 

FYI: Making the changes in SkyEdit is VERY easy.

 

1) Load SkyEdit, open the Skyrim.esm and Update.esm.

2) click on GameSettings

3) Use the filter and type in the word Jump (it's at the top of the colum) and you'll quickly see all those game settings

4) Alter the values to the ones you think worked best for you

5) Save the module with a new name

6) Load the module in the DataFiles and you're off

 

-MM

I haven't tried this yet, but is it possible to easily add randomizers, like I talked about, like chance to die/not to die for example.

Link to comment
Share on other sites

 

I haven't tried this yet, but is it possible to easily add randomizers, like I talked about, like chance to die/not to die for example.

 

The short answer is there is a GetRandomPercent function, which could be called to get a value between 0 and 100 and you could check to see if the return value was less than or equal to the value returned... but...

 

The long answer is that you need to know that the damage that a player is taking or about to take is from falling. I'm at work and can't test this out, but _IF_ and this is a big _IF_, the player's Z velocity is still HIGH when the incoming damage is applied to them then you could create a perk that does a conditional check against the players Z velocity being < X value (when falling the player Z velocity is a negative number) and GetRandomPercent <= 10 (for a 10% chance) and if both conditions were true, you could apply a flat VERY HIGH damage amount which would be guaranteed to kill the player.

 

But that's a big if.... it's easy enough to test.

 

-MM

Edited by MofoMojo
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...