Morrowind
0 of 0

File information

Last updated

Original upload

Created by

Celediel

Uploaded by

lemmingbas

Virus scan

Safe to use

28 comments

  1. JoylessJoker15
    JoylessJoker15
    • member
    • 7 kudos
    what is the threshold, at what level of encumbrance will you not be able to reach the top of the water level anymore?
  2. Necrolesian
    Necrolesian
    • premium
    • 109 kudos
    This is really neat. A few thoughts:

    1. So far I think I like the encumbrance mode the best, because it seems most realistic to me. The weight of all that stuff in your pack will drag you down whether you're wearing it or not. It's also the only mode where strength plays a role. With the other modes, it's all about speed/athletics. This mode also gives you another reason to use feather effects (and in this context feather can be superior to fortify strength).

    With encumbrance mode, at speed and athletics of 50, 1/3 encumbrance in the water is tolerable, but much more than that and you'll have a serious problem. At 100 speed/athletics, 2/3 encumbrance is okay, 3/4 is problematic. If you want to be able to swim decently fully encumbered, you'll need speed/athletics above 150 (or one well above).

    2. The default multiplier does seem to have basically the same effect on all three modes, but the equipment weight mode is a bit of an outlier, just because there's such a big difference between the lightest and heaviest heavy armor.

    In armor class mode, the worst case scenario is 270 downpull with nine heavy pieces. In encumbrance mode, worst case is 300, at full encumbrance (it could be higher, but then you'd be over encumbered anyway). But in equipment weight mode, it really varies a lot depending on what kind of equipment you're wearing.

    If you're wearing full iron/steel/dwemer armor, this mode is about the same as the worst-case scenario in the other modes. But in full daedric armor and a daedric war axe, you're at 852 downpull, and there's no way you'll be able to surface unless speed/athletics are both like 300+.

    I'm not sure if there's a good way to address this difference. It feels too punishing with super-heavy equipment compared to the other modes, but shifting the formula downward would probably make it feel too lenient with relatively lighter equipment like steel. All I can think of is either implementing a cap, or changing the formula such that each additional unit of weight has less and less of an additional penalty (maybe logarithmic instead of linear).

    3. One thing I'd like to see is a mode where all three values are calculated and the worst is applied. Maybe also separately configurable multipliers for the different modes.

    Anyway, I think this is a great mod.

    Edit: Actually, here's an idea for the equipment weight mode formula, without using logs:

    term1 = (mult/100) * weight * 2
    term2 = ((mult/100) * (weight - 135) * 0.2) + 270
    downpull = math.min(term1, term2)

    Weight above 135 only counts 10%. For a full set of glass armor plus war axe, pulldown is 136.8. For iron, it's 272.6, almost exactly double glass. For ebony it's 299.8, and for daedric 328.2. So not a huge difference between iron and daedric, but a big difference between glass and iron. Maybe sacrifices a bit of realism for a bit more consistency between modes.
    1. lemmingbas
      lemmingbas
      • premium
      • 16 kudos
      Thanks for taking the time to do this analysis. :) I've implemented your updated forumla as a new formula option, and it definitely balances out the heavy armours.

      I like the idea of a "worst of the bunch" mode as well. I'll implement that and separately configurable multipliers (should've done that from the beginning lol) for the next version.
    2. Necrolesian
      Necrolesian
      • premium
      • 109 kudos
      The new version is great. A few things:

      1. In the all equipment necro edit mode, in term2, the 270 term should also be modified by (mult/100) - this is my mistake. It should be whatever term1 is at 135 weight, which is 270 when mult = 100. So: (mult/100) * ((weight - 135) * 0.2 + 270)

      2. Ideally there would be an option for the "worst case scenario" mode to take into account only one of the "all equipment" values, either the regular one or the necro edit one. Right now I'm commenting out the line for the regular all equipment formula so it's not included in the comparison.

      In any case, there's no need to include both the regular and necro edit all equipment formulas in the comparison, since the latter is guaranteed to be no higher than the former.

      3. There's a copy/paste error in the MCM description for the all equipment necro edit mode. It should be based on the regular all equipment mode, not the encumbrance mode. Also, the descriptions and dropdown options are in a non-ideal order (because of pairs). Fixing that might be more trouble than it's worth though.

      4. I was too optimistic earlier in my analysis of encumbrance mode (though I still like it best of the original three). At 50 speed/athletics, you really don't want to have any higher than 1/4 encumbrance to swim reasonably comfortably - 1/3 is very problematic (though you can keep surfaced with a great deal of effort). At 100 speed/athletics, 2/5 encumbrance is somewhat comfortable, but 1/2 is problematic. To swim comfortably fully encumbered, you would need speed/athletics both well above 200.

      This is a lot more realistic than vanilla. When people swim in the real world, their "encumbrance" is basically 0, a swimsuit that weighs maybe a few ounces at most. If we were carrying in the water 1/4 the maximum amount we're strong enough to lug around with us on land, we'd be dragged down too.
    3. lemmingbas
      lemmingbas
      • premium
      • 16 kudos
      1. Fixed, thanks!

      2. I thought about this, but wasn't really sure how to address the issue, so I just... didn't, haha. I suppose an option would be the best solution. I'll add that for the next version.

      3. Whoopsie, fixed that copy/paste error. As for the order of the dropdown, that one really irked me, but I really didn't want to go back on dynamically generating the MCM. :( I also figured it would be more trouble than it's worth to fix, but maybe someday it'll annoy me enough to make me go through the trouble lol.

      Thanks again for all the input, I really appreciate it!
    4. Necrolesian
      Necrolesian
      • premium
      • 109 kudos
      Okay still a few things lol

      1. The term2 formula isn't actually fixed - (mult/100) still only affects the first part. Change

      local term2 = ((config.multipliers.allEquipment / 100) * (totalWeight - 135) * 0.2 + 270)

      to

      local term2 = (config.multipliers.allEquipment / 100) * ((totalWeight - 135) * 0.2 + 270)

      2. Worst case scenario mode considers equipped armor and all equipment modes, and either all equipment necro edit mode or encumbrance mode, depending on the mcm setting. All equipment and encumbrance formulas should be swapped. So change

      results.equippedArmour = formulas.equippedArmour(actor, ref)
      results.allEquipment = formulas.allEquipment(actor, ref)
      if config.allEquipmentWorstCaseNecroMode then
        results.allEquipmentNecroEdit = formulas.allEquipmentNecroEdit(actor, ref)
      else
        results.encumbrancePercentage = formulas.encumbrancePercentage(mobile, ref)
      end


      to

      results.equippedArmour = formulas.equippedArmour(actor, ref)
      results.encumbrancePercentage = formulas.encumbrancePercentage(mobile, ref)
      if config.allEquipmentWorstCaseNecroMode then
        results.allEquipmentNecroEdit = formulas.allEquipmentNecroEdit(actor, ref)
      else
        results.allEquipment = formulas.allEquipment(actor, ref)
      end


      3. Actually to make the options/descriptions appear in order, the table in common.lua could be something like

      this.modes = {
      {
        mode = "equippedArmour",
        value = 0,
        description = "...",
      },
      {
        mode = "allEquipment",
        value = 1,
        description = "...",
      },
      ...
      }


      and then iterate through it with ipairs. This isn't too bad, although in your main function you'd have to iterate through the whole table to find the correct mode. Maybe iterate through the table until you find one where .value == config.mode, then use .mode to fetch the correct formula. Something like

      for _, t in ipairs(common.modes) do
      if t.value == config.mode then
        downPull, debugStr = formulas[t.mode](actor, mobile, ref)
        break
      end
      end


      although you'd have to standardize the parameters.
    5. lemmingbas
      lemmingbas
      • premium
      • 16 kudos
      Whoops, that's what I get for doing all my coding after a 10-hour workday, lol. 1+2 are fixed. Additionally, 3 has been implemented; thanks for that snippet, I was really hoping to get rid of that nasty if/elseif block.
    6. Necrolesian
      Necrolesian
      • premium
      • 109 kudos
      Looks like 1.3.0 is working perfectly, at least I'm not noticing any problems after 5 minutes of testing :)

      Actually there is one thing, but it's minor. This isn't mentioned in the MCM, but due to the way you get the config now, any changes to settings require restarting Morrowind to be effective. You can set restartRequired = true in the MCM settings so the player will be notified.

      And there's a tiny typo in one of the dropdowns, an errant ")" at the end.
    7. lemmingbas
      lemmingbas
      • premium
      • 16 kudos
      That's not something minor to me lol, so I reverted to not resetting config values of mismatched type to the defaults. I was trying to prevent any "help mod doesn't work after update" comments, but I'll just put a warning.
    8. Necrolesian
      Necrolesian
      • premium
      • 109 kudos
      I think you've got this pretty much perfect now :)
    9. lemmingbas
      lemmingbas
      • premium
      • 16 kudos
      Thank you for all your valuable input! :)
  3. smartcrab
    smartcrab
    • premium
    • 1 kudos
    Is there anything like this that is compatible with OpenMW?
    1. lemmingbas
      lemmingbas
      • premium
      • 16 kudos
      Not that I know of. :( I wasn't able to find any other mod that did anything similar for Morrowind.
  4. ProfArmitage
    ProfArmitage
    • premium
    • 29 kudos
    I couldn't tell from the video.  Can you walk along the bottom once you sink, or are you immobilized?  There's an old mod by Yacoby called Swimming Realism that reduces your carrying capacity to 20% normal when you're in water, but it just prevents you from moving, like when you're normally over encumbered.  I always wanted to be able to put on a heavy suit of armor and walk along the ocean floor.
    1. lemmingbas
      lemmingbas
      • premium
      • 16 kudos
      Your character won't play the walk animation, but you can still move about, albeit quite slowly.
    2. ProfArmitage
      ProfArmitage
      • premium
      • 29 kudos
      Excellent.  Exactly what I was hoping for.
      I know that alternate movement animations aren't possible yet, although I did see an experiment to use the swimming animation for levitation, so maybe someday.
    3. ProfArmitage
      ProfArmitage
      • premium
      • 29 kudos
      (Duplicate post)
  5. baronnolanvonstraya
    baronnolanvonstraya
    • member
    • 3 kudos
    A great concept and some good work, but it could use some polish. When I tried to turn it off in the menu nothing changed and my character was still being pulled down. Also, my character was being pulled down even on an empty inventory which forced me to keep moving to stay above the water, I think this is a bit excessive. Perhaps it could have no effect until you reach a certain level of encumbrance? Perhaps this level could be affected by Athletics?
    1. lemmingbas
      lemmingbas
      • premium
      • 16 kudos
      First issue is fixed. Second "issue" is impossible, you probably had it configured wrong. 0 Encumbrance will not be pulled down if that option is enabled. Athletics already affects an actor's swimspeed which counteracts the negative z velocity the mod adds, and I have no desire to make these formulas any more complex. If you don't want to be slightly pulled down with low encumbrance, use one of the other options.
  6. Jekub
    Jekub
    • member
    • 3 kudos
    I use OpenMW so this mod is probably not for me (yet). But does the mod take into account if armour etc has been enchanted with feather etc?
    1. lemmingbas
      lemmingbas
      • premium
      • 16 kudos
      OpenMW is a definite, and most likely permanent no, but as for feather, if you have the encumbrance option selected, then yes. Otherwise, no.
  7. FilthyN1wah
    FilthyN1wah
    • member
    • 0 kudos
    Does casting feather mitigate the penalty?
    1. lemmingbas
      lemmingbas
      • premium
      • 16 kudos
      If you have the encumbrance option selected, then yes. Otherwise, no.
  8. MalavonofHouseTelvanni
    MalavonofHouseTelvanni
    • member
    • 3 kudos
    Great idea, I was thinking about this problem that I may swim in full armor and lot of stuff, only a bit slower.

    I would consider make this only encumbrance depended - as one may cast feather spell (or enchanted armor like Daedric armor given by Therana for Auriel Bow).

    This is still land of magic and any realism mod should consider magic.
  9. leugimimi
    leugimimi
    • member
    • 1 kudos
    is this player-only or for every actor?
    1. lemmingbas
      lemmingbas
      • premium
      • 16 kudos
      All actors, and no creatures. NPCs won't be "aware" of this, so I'm sure plenty will drown themselves.

      I suppose I could make an option for player-only.
    2. leugimimi
      leugimimi
      • member
      • 1 kudos
      I like it being applied to NPCs as well, but the truth is that the dumb ai will make them drown, I presume. so the option would be good.
    3. lemmingbas
      lemmingbas
      • premium
      • 16 kudos
      Turns out the player was only affected because I made a dumb error lol. That's been fixed, and an option to properly only affect the player has been added.