Have you ever wondered why your character is just as effective at 150 hitpoints as she is at 5? Ever been confused by your characters ability to take several hammer strikes to the head without suffering a concussion? Or, by how she shrugs off brutal axe swings as if they were bee stings? Or, by how an arrow that pierces her chest always seems to miss vital organs? Then this little system just might be for you!
SYSTEM DETAILS
OK, enough of the sales pitch, here's the nitty-gritty of what the system does:
Injuries occur when attacks exceed a minimum damage of 10 (adjustable). Injuries occur at particular body parts and result in varying negative effects as outlined below.
Head wound (10% chance)
50% chance that wound is fatal, otherwise daze effect applied
Instant death is optional
Chest wound (%30 chance)
50% chance that chest wound is fatal, otherwise Con drops by 2 with no limit
Instant death is optional
Right arm wound (15% chance)
33.33% chance that it disarms and prevents usage of an arm- the mangled effect
Reduces Dex by 1 to a max of 3
If mangled, max reduction is applied
Left arm wound (15% chance)
33.33% chance that it disarms and prevents usage of an arm
Reduces Dex by 1 to a max of 3, if mangled then max reduction applied
Leg wound (%30 chance)
Applies slow effect and has a 33.33% chance of causing knockdown
In addition, hitpoints are conceptualized as representing stamina. Once half of a player or creature's hitpoints/stamina_points are gone, strength begins to drop (up to -3).
Injuries persist until at least two successful rests, beyond this minimum the number of hours required is adjustable. Healing spells and potions have a chance of removing injuries, as outlined below:
Cure Moderate Wounds: 50% chance to remove injury
cure Serious Wounds: 75% chance to remove injury
Cure Critical WOunds: 100% chance to remove injury
Heal: Removes TWO injuries
EFFECT ON COMBAT
In terms of combat balance, the system is largely invisible at low levels (6 or lower I'd wager) with injuries occuring infrequently due to low damage attacks and smaller hitpoint pools (characters die before more than 1 or 2 injuries). Once characters have greater strength or increased chances to crit or more powerful weapons, injuries occur much more frequently and battles are often decided by the distribution of injuries. The effects of this is too increase the importance of feats or spells that prevent damage by either incapacitating enemies (knockdown, stunning fist) or reducing the damage done (stoneskin, ghostly visage). Also, a lone warrior against multiple foes is at an even greater disadvantage with the injury system- she can no longer rely on her high hp pool or stock of healing potions to carry her through the fight and the more opponents there are the greater the chances of an injury or injuries that will cost her the fight. Overall, I feel this makes combat a bit more gritty and dangerous. No battle is routine, every blow has the potential to affect the player long after the battle is over. A final note, the system also increases the chance a low level character can overcome a higher level character, which I see has pushing the combat system a little closer to real combat.
EFFECT ON ROLEPLAY
In terms of roleplay, I see the system as providing a great many opportunities for playing out the aftermath of battles. It forces the battles to have more of a story to them. Now, when recalling that battle with the Frost Giants of the Spine, your character can describe how she lost the use of her right arm and a leg but heriocally rallied to defeat them. There's also the tale of the horrendous journey after the battle. The desperate attempt to find the nearest settlement with a damaged leg. And there's even the bit about spending weeks in a small fishing village recovering. Sure, these stories could be easily created without the system, but now they're not optional and are determined to a greater extent by game experiences, easing the burden on the roleplayer to turn an adventure into an exciting tale.
The battles also invite greater immersion and heighten the drama. In my playtesting, it was hard to not be moved when watching my character and an enemy orc continue to battle though both could no longer hold a weapon. Nor could I ignore the sight of my exhausted character dragging himself away, exhausted and diminished by the terrible battle.
CURRENTLY KNOWN SHORTCOMINGS
- Spells that cause damage OnHit (like Elemental Shield or Acid Sheath) cause injuries to NPCs, but not PCs
- Spells such as regeneration or feats like rage invalidate the damage calculations necessary for the injury system
(current quick fix is an OnHeartbeat Old HP update)
- If attacks occur nearly simultaneously, the damaged done by all simultaneous attacks is summed and treated as a single attack by the injury system. Injuries then occur when they shouldn't (Ex: damage1 = 5, damage2 =9, together they cause an
injury) or only one injury occurs when several should (Ex: damage1 =12, damage = 13, but only one injury occurs).
GENERAL
Included in the download is a demo module that will allow you to level a character at will and provides a simple mechanism for spawning enemies to try-out the injury system with. Please, feel free to post any comments, criticisms, suggestions, problems, questions, or beautiful praise to the vault.
I'd like to acknowledge the great help that the Neverwinter Nights Lexicon provided and thank all the contributors (please see the Lexicon itself for a full listing).
*Driller was kind enough to post an excellent sugestion for applying the injury system to PCs!*
Also, I'd like to point-out that the "tired" effect was inspired by Ossian Studios and is nearly identical to that used in Darkness over Daggerfall (a great module!).
Posted by Herald of Hell at 2010-09-16 09:23:54 Voted 10.00 on 09/16/10
Take my vote...
Posted by Herald of Hell at 2010-09-16 09:23:17 Voted 10.00 on 09/16/10
Truly, truly serious...
Posted by Savage_Spirit at 2008-07-26 07:37:04 Voted 9.75 on 07/26/08
I got it working. I had forgotten to re-compile all of the scripts that had j_injury_lib as an #include. Works great now. Wish I'd voted a 10 :)
Posted by Savage_Spirit at 2008-07-26 04:18:34 Voted 9.75 on 07/26/08
How do I change the VFX that fires on an injuring hit so that there are no bones? I've tried changing it in the j_injury_lib script, but it seemed to have no effect. Is the VFX called for in another script that is less obvious? For me, the flying bones is a real turn-off, and is the only reason that I didn't vote a 10 on this (gave you 9.75 instead).
I really like this system and I am putting it into the module I am creating right now. Great work.
Posted by luckybastardo at 2008-06-15 02:42:50 Voted 9.00 on 06/15/08
Well, the main reason I mentioned number 4 was because people have been throwing out terms like "PvP" and "PW", neither of which exist in a single-player environment. ;)
Thanks for the great feedback. 1 and 3 are easy fixes, but 2 might take some time. As for 4, I knew better but I was writing with my modules in mind (all single player). I'll be sure to fix this the next update.
1) At level 10+, cast Endurance on yourself. (The level is so that you are guaranteed to gain at least 10hp.) Let it wear off (or maybe have it dispelled). Go into combat and get hit for 1hp damage. This results in an injury.
2) At (let's say) level 12, take Toughness as a feat (so you gain sufficient hit points through the level-up). Go into battle, get hit for 19hp (more or less), and there is no injury. Probably could accomplish the same thing with a good hit point roll for a barbarian.
3) All the "strength is waning" messages have "strength" misspelled.
4) Scripts that use GetFirstPC() but not GetNextPC() tend to not work properly in multiplayer.
I've updated the system, some issues were addressed and the code was cleaned up a bit. Spells now trigger injuries and cure wounds spells can remove injuries.
As for PvP, it's certainly doable with the code as it currently stands, it's just a bit clunky. Every player weapon needs to fire j_injury and this requires adding the weapon property OnHitSpellCast: UniquePower (onhit) and either using the tag "j_injury_weapon" or editing the Module event script for OnItemActivate. Diller's solution, of naming the j_injury_weapon script "default" is another option (instead of using the j_injury_weapon tag), though I found the injury scripts fired less reliably (the injuries were not getting applied when they should). This might be a CPU issue on my end, so definetly give the default method a try.
There's only one major issue remaining, and I'm not positive it can be fixed. Basically, if your character is damaged more than once within a second or so, the damage done calculation pools all the damage as if it was delivered by a single blow. Not what I intended, but may be a reasonable limitation ( A "no more than one injury per second" rule).
Fleshmelter,
Having injuries only on crits was my original idea, but I couldn't figure a way to do it. To my knowledge, there's no function for reporting the outcome of a hit roll. There's not one for determining the damage done either... I use a slightly broken home-cooked function that updates an int with GetCurrentHitPoints().
As always, thanks for posting all!
Posted by luckybastardo at 2008-04-09 10:43:20 Voted 9.00 on 06/15/08
Good Work, try to implement on PVP. I look for updates.
Is it possible to make a switch to offer the injures to only go off on a critical hit instead of just random based on damage, and I'm glad your updates are coming along nicely =) _________________________ PW Action Server:
| Chaosgate |
I think I've gotten most of the issues licked over the weekend... I discovered the spellhook system and, to my embarassment, spellhooks makes it silly easy to use the injury system with spells. I've set-up a method for healing injuries with spells as well. There's still a few smaller issues. For example, barbarian rage, regeneration or anything else that adds hitpoints can mess up the damage calculation. Soon, all will be well!
Posted by jbaudrand at 2008-03-28 14:43:34 Voted 9.00 on 03/28/08
very good idea, it will change huge battle...
can't wait to see it in other module!!! _________________________ You want an intro for your mod? Link
Contact us: Link
This sounds good, I'm going to take a look, I might end up adding it to my PW. Granted I'm putting my PW on hold until 1.69 if final, but Liffe still pops up on the RP list alot. still tracking down a few glitches
Awesome idea...I'm sure some roleplay servers would find use for it. Keep working on those shortcomings =) _________________________ PW Action Server:
| Chaosgate |
Posted by driller at 2008-03-27 15:26:38 Voted 8.00 on 03/27/08
Good stuff. Save this script and name it default and you don't have to worry about using weapon tags to implement your system. This should work in PvP too.
//Injury system weapon unique power script (applies injuries to PCs)
/*In order for the PC to be affected by injuries, all creature weapons and
'normal' weapons used by creatures must have the tag "j_injury_weapon"
and the property OnHitSpellCast: UniquePower(onHit).
Alternatively, if there's' issues re-using the same tag, you could edit the
OnActivateItem module event script to include "j_injury_lib" and to call the
j_injury function whenever a set of item tags is used.
*/
//Check if target is PC, if not this 'spell' should have no effect on target.
if(GetIsPC(oTarget))
{
//SendMessageToPC(GetFirstPC()," Ouch!");
j_injure(oTarget);
j_weaken(oTarget);
}
}
}