Jump to content

Fixing Warmth Rating


Malinoric

Recommended Posts

I've recently started trying to fix some of the issues present in survival mode, and I've run into an issue I'd like some advice for. To start with, I'd like to explain how warmth rating is assigned.

 

Warmth rating is assigned based on the keywords present on the armor record in the creation kit. The game looks for the following keywords: ArmorHelmet, ArmorCuirass, ArmorGauntlets, ArmorBoots, ClothingHead, ClothingBody, ClothingHands, and ClothingFeet. From there, it also checks for either the Survival_ArmorWarm or Survival_ArmorCold keywords.

 

As an example, Steel Armor has the ArmorCuirass and Survival_ArmorWarm keywords, and so gets assigned a warmth rating of 54. Iron armor only has the ArmorCuirass keyword, so it gets a warmth rating of 27. This works exactly as you would expect for most of the armor in the game. The problem comes from hooded robes.

 

Since hooded robes occupy both the body and head slots, the warmth rating should be higher to account for this. In reality, the recent update also added a keyword to hooded robes that would theoretically solve the issue: Survival_BodyAndHead. This keyword doesn't actually do anything to the warmth rating of the armor though, so the hooded arch-mage robes have the same value as the hoodless variant, which is 54.

 

In my attempts to fix this, I found that adding the head slot keywords (ClothingHead) to the hooded robes made them provide the correct warmth rating of 83, which you get from the separated robe and hood, but I don't know what kind of effect this may have on other mods using those keywords.

 

The only other way I can see to feasibly fix this issue is to extend and modify the GetWarmthRating() method in the actor and armor scripts to correctly account for the survival_BodyAndHead keyword, but since I can't actually see the source code for those scripts, I have no idea how I would go about doing this.

 

Does anyone have any suggestions for which method would be safer, or any tips for how I can go about overriding the GetWarmthRating() method? Any help you can provide would be appreciated.

Link to comment
Share on other sites

The survival keywords are all processed by the internal game functions (not Papyrus) and are specified using the default object list on the CK's Gameplay menu.

 

There's no default object that would match that Survival_BodyAndHead keyword so I think the correct solution would be to add the ClothingHead and ClothingBody keywords to the robes with hoods. That's what I've done in my own game.

 

 

The survival_warm and survival_cold keywords adjust the base warmth values for items but only work when the items also have one of the body part keywords.

 

Mods which add cloaks and other items that should provide warmth are going need to either add one of the body part keywords (even if it's not strictly appropriate) or use a script or magic effect to modify the ActorValue Variable09 while the item is equipped. The current value of Variable09 is always added as a bonus to the warmth rating in addition to the values provided by clothing and an equipped torch (which can technically be any light object held in the hand).

Link to comment
Share on other sites

  • Recently Browsing   0 members

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