0 of 0

File information

Last updated

Original upload

Created by

BigBenJumanji

Uploaded by

BigBenJumanji

Virus scan

Some manually verified files

About this mod

Supports Diminishing Returns. Handles Ability Damage Gracefully. No Dependencies. Sets the player's max health based on their current stats.

Requirements
Permissions and credits
Changelogs
----------------------------------------------------------------------------------------------------
Why Use This Mod?
----------------------------------------------------------------------------------------------------

Normally, you are encouraged to increase Endurance as fast as possible, to get the highest possible 
max health. With this mod, that is no longer a concern, as your max health is calculated based on 
your current stats. When your Strength, Endurance, or Level changes, your max health is updated 
immediately.

Why not use another mod that does the same thing?

* more customization options
* more control over minimum health
* prevents instant death from ability damage
* no dependencies on MWSE, Tribunal.esm, or Bloodmoon.esm
* immaculate, readable, and well-documented script (great if you're trying to learn)

----------------------------------------------------------------------------------------------------
Initial Setup **IMPORTANT**
----------------------------------------------------------------------------------------------------

This mod will not start updating your max health until you:

1. Finish character creation.
2. Remove all Fortify Health effects.

Once these conditions have been met, you can apply Fortify Health effects without any issues. 
If you have a Fortify Health effect from your race, birthsign, or any other permanent ability:

1. Finish character creation.
2. Remove all non-permanent Fortify Health effects.
3. Set the InnateFortifyHealth variable to the sum of your permanent Fortify Health effects:

Set Ben_MaxHealth.InnateFortifyHealth to [VALUE]
EXAMPLE: Set Ben_MaxHealth.InnateFortifyHealth to 25

----------------------------------------------------------------------------------------------------
The Formula
----------------------------------------------------------------------------------------------------

The player's max health is determined by the following formula:

MaxHealth = 
FirstLevelBase +
OtherLevelsBase * (Level - 1) +
MIN(MAX(Strength, FirstLevelStrengthMin), FirstLevelStrengthMax) * FirstLevelStrengthMult + 
MIN(MAX(Endurance, FirstLevelEnduranceMin), FirstLevelEnduranceMax) * FirstLevelEnduranceMult + 
MIN(MAX(Endurance, OtherLevelsEnduranceMin), OtherLevelsEnduranceMax) * OtherLevelsEnduranceMult * (Level - 1)

With the default settings, this simplifies to:

MaxHealth = 
MIN(MAX(Strength, 20), 60) * 0.5 + 
MIN(MAX(Endurance, 20), 60) * 0.5 + 
MIN(MAX(Endurance, 20), 1000) * 0.1 * (Level - 1)

In other words, you get:

10-30 base health from Strength
10-30 base health from Endurance
2-100 health per level from Endurance

If you enable diminishing returns (set the UseBrackets variable to 1):
With 100 Strength and 100 Endurance, your MaxHealth is:

  60 at Level 1
160 at Level 11
240 at Level 21
300 at Level 31
340 at Level 41
360 at Level 51+

----------------------------------------------------------------------------------------------------
How To Customize
----------------------------------------------------------------------------------------------------

You can modify how MaxHealth is calculated by updating the variables listed below.
To change a variable, open the console and type in the following command:

Set Ben_MaxHealth.[VariableName] to [NewValue]
EXAMPLE: Set Ben_MaxHealth.MaintainRatio to 0

These console commands are not case-sensitive.
Any variable changes only affect the current character.
Here's the full list of variables and their default values:

MaintainRatio = 1 ; 1 = maintain current/max health ratio, 0 = maintain missing health
PreventDeath = 1 ; 1 = reducing max health will never instantly kill the player
InnateFortifyHealth = 0 ; fortify health granted by permanent abilities

FirstLevelBase = 0
OtherLevelsBase = 0

FirstLevelStrengthMin = 20
FirstLevelStrengthMax = 60
FirstLevelStrengthMult = 0.5

FirstLevelEnduranceMin = 20
FirstLevelEnduranceMax = 60
FirstLevelEnduranceMult = 0.5

OtherLevelsEnduranceMin = 20
OtherLevelsEnduranceMax = 1000
OtherLevelsEnduranceMult = 0.1

UseBrackets = 0 ; see explanation in the SPECIAL FUNCTIONALITY section below

Bracket1EnduranceMult = 0.1
Bracket2EnduranceMult = 0.08
Bracket3EnduranceMult = 0.06
Bracket4EnduranceMult = 0.04
Bracket5EnduranceMult = 0.02

Bracket1LevelCutoff = 11
Bracket2LevelCutoff = 21
Bracket3LevelCutoff = 31
Bracket4LevelCutoff = 41
Bracket5LevelCutoff = 51

Initialized ; set to zero to restore default values
PlayerLevel ; set to zero to recalculate max health (if you updated the formula)
OldMaxHealth ; remove fortify health effects then set to zero to recalculate max health (if your max health is borked)

IMPORTANT: After modifying the formula, your max health will not be updated until you 
set the PlayerLevel variable to 0, or your Strength, Endurance, or Level changes.

----------------------------------------------------------------------------------------------------
Special Functionality
----------------------------------------------------------------------------------------------------

By default, your ratio of current health to max health is maintained when your max health is
updated by this mod. If you want to maintain your missing health instead (which can be a lot 
more dangerous when your max health is decreased), set the MaintainRatio variable to 0.

Set Ben_MaxHealth.MaintainRatio to 0

By default, you can never be killed due to your max health being reduced by this mod.
If you want to disable this functionality, set the PreventDeath variable to 0.

Set Ben_MaxHealth.PreventDeath to 0

If you want to customize the health you gain within certain level ranges, set the
UseBrackets variable to 1. The formula will then use Bracket#EnduranceMult in place
of OtherLevelsEnduranceMult for levels less than Bracket#LevelCutoff and greater than
Bracket[#-1]LevelCutoff. Bracket0LevelCutoff is always equal to 1. OtherLevelsEnduranceMult
is never used when UseBrackets is set to 1.

Set Ben_MaxHealth.UseBrackets to 1

If you want to reset all variables to their default values, set the Initialized variable to 0.

Set Ben_MaxHealth.Initialized to 0

If you want to recalculate your max health (because you updated the formula), set the
PlayerLevel variable to 0.

Set Ben_MaxHealth.PlayerLevel to 0

If you want to recalculate your max health from scratch (because something messed it up),
remove all Fortify Health effects then set the OldMaxHealth variable to 0. If you have a Fortify
Health effect from your race, birthsign, or any other permanent ability, follow the steps in the
INITIAL SETUP section before setting the OldMaxHealth variable to 0.

Set Ben_MaxHealth.OldMaxHealth to 0

----------------------------------------------------------------------------------------------------
Installation
----------------------------------------------------------------------------------------------------

Extract files into "Morrowind/Data Files" and enable Ben-MaxHealth.esp

IMPORTANT: While this mod does not depend on the Tribunal or Bloodmoon .esm files, 
you must have the Tribunal and Bloodmoon expansions installed (or have a version of 
the game, like the GOTY edition, that includes both expansions).

----------------------------------------------------------------------------------------------------
My Other Mods
----------------------------------------------------------------------------------------------------

Ben's Build-Your-Own Rebalance
Ben's Skill-Independent Level-Up Multipliers
Ben's Super Customizable Magicka Regen
Ben's Balanced Passive Races
Ben's Balanced Passive Birthsigns
Ben's Fatigue Rebalance
Ben's Movement Rebalance
  翻译: