Skip to content

The hit points of the triple classes

The hit points of the triple classes are not calculated correctly.

FMC: (4+8+10)/3=22/3=7.333
FMT: (4+6+10)/3=20/3=6.666

In the beginning of the game FMT has 6 Hit points and FMC 7. When FMT get one level to each classes, he/she can get at max another 6 hit points. FMC can get also at max 6 hit points!

It seems that the hit point code does not save fractions. Fine with that, but in the player character sheets it says that FMC get 7 hit points per level. This is clearly a bug.

I dont know how to fix this bug otherwise than by starting to save fractions. But it's not difficult. Initially you save the hit points to a float number, and then round them to get the final hit points.


  • jmerryjmerry Member Posts: 2,882
    I've looked into this myself, and here's how it works.

    Multiclass hit points are always rounded down, with a minimum of one per level gained. A two-class part-fighter can gain 1, 1, 1, 2, 2, 3, 3, 4, 4, or 5 hit points from their fighter level based on the 1d10 roll.
    For levels gained during the character creation process, all of the hit points are added together before rounding down. For example, in BG1, a newly created level 1 F/M/C gets (10+4+8)/3=22/3=7 HP.
    For levels gained during normal gameplay, each level's hit points are rounded down separately. Even if those levels are all gained at once. For example, giving that F/M/C 7500 XP and leveling them up to 2/2/2 all at once with maximum hit die rolls on (either through the option or through low difficulty) will result in them gaining 10/3+4/3+8/3=3+1+2=6 additional HP.

    Two-class characters follow the same rules, but it only matters if you're actually rolling the hit dice. After all, all of the maximum die rolls are even.

    Constitution bonuses are handled separately, and dynamically updated during gameplay. This is all about the basic hit die rolls.
  • MalinorMalinor Member Posts: 10
    I have made the same conclusions.

    And the question is, is this logic right? Practically it gives the multiclass character less hit points than they should have. For example a fighter mage can get at max 7 hit points per level to both classes. A cleric class have 8 hit points per level. If you mix a cleric class to a fighter mage, your maximum hit points per level drops down 7 + 8 => 6. This does not make sense.
  • jmerryjmerry Member Posts: 2,882
    Right or not, it's baked into the engine at a pretty fundamental level. The "hit points" stat is an integer, and there's just no place there to store fractional hit points - which is what you'd need to do if you wanted to avoid losing hit points to repeatedly rounding down.

    Me? I wouldn't sweat the small stuff. There's plenty of weirdness in the system. For example, you might think that a cleric/mage should get more hit points that a mage/thief, right?
    A cleric/mage with 16 or more Con at the BG2 experience cap averages 84.56 hit points.
    A mage/thief with 16 or more Con at the BG2 experience cap averages 84.44 hit points.
    The actual difference is tiny, swamped by the natural variation in die rolls. (This assumes that hit point rolls are on, and that the characters were created at level 1/1.)
  • GraionDilachGraionDilach Member Posts: 363
    Keep in mind that floating numbers are rounded on base 2 due to architecture and the rounding/implementation accuracy can even differ between systems. Synchronized code (which HPs are) need to remain integer to prevent bugs caused by these details.
Sign In or Register to comment.