Skyrim
0 of 0

File information

Last updated

Original upload

Created by

BrinaSair

Uploaded by

BrinaSair

Virus scan

Some manually verified files

Tags for this mod

About this mod

This mod adds monthly modifiers to Frostfall's base regional temperatures so that the temperatures will vary throughout the year. It also includes an MCM so that you can set each region's base temp and each month-type's modifier.

Requirements
Permissions and credits
This is a Classic Skyrim conversion of my mod by the same name for Skyrim SE. I created it when I was asked for assistance by Chernobylite12 in converting this mod's scripts into a classic version. In seeking to assist him I learned that the LE compiler noticed issues that the SSE compiler overlooked, leading to my update to v1.2b of the SSE version of this mod. Chernobylite12 also assisted in beta-testing both versions of this mod in Classic Skyrim. 

Below is the description from the Skyrim SE page. To the best of my knowledge, currently there is no weather mod for Classic Skyrim that supports changing weather patterns according to the month, although in theory it should be possible to convert them, given that they use SKSE64 - which for nearly all purposes is equivalent to SKSE, and they do not use a .dll file.



Recently weather mods have finally gained the ability to change weather patterns according to the month, allowing for seasonal variation. But there is a problem: the popular Frostfall does not change the values it uses as the temperatures for each region. So whether it is summer or winter, the forest around Riften will always have base temperature value of "12". While Frostfall will temporarily change the current maximum temperature to "-5" during snow and to "-10" during severe snow, as soon as the snow ends it will jump back up to 12 (approximately, since there is a random variance added even for clear weather) if you are in the Fall Forest region of Riften Hold - or even 20 if you are in the Pine Forest region mostly found in Falkreath Hold. So I decided to make a mod to change that.

While I have set certain values as default, you may change any of the regions' base temperatures to whatever default values you want, and you may do the same for each type of month. For the monthly variation I use a simple system where each month falls into a specific month type: Hot, Warm, Nice, Average, Cool, Chilly, or Cold, where the hottest and coldest month types each affect one month, then the two months on either side of the hottest are "Warm", the two on either side of the coldest are "Chilly", and so on until you reach the two full months nearest an equinox, which are "Average". The default array for temperature modification is (+12, +8, +4, +0, -4, -8, -12).

Be advised that the value called "temperature" used by Frostfall may not be a real world temperature. When checking real world locations to determine what type of values to use for both regional base values and monthly alterations, I found I had to multiply the Frostfall temperature value by 1.5 to 2.0 to get something close to a real world Celsius value (both positive and negative). And even then often summer or winter was quite off for some regions. In the end I gave up on using real regions and simply chose a monthly variation that had three-quarters of the maximum range of Frostfall's 10 tier cold system (from +18 to -14, or 32), and I either kept the region default values the same or I chose default values that gave an August base temperature close to Frostfall's base value for that region. The chart in the images section shows the original and selected values.

Frostfall works by determining the region, then looking up the base temperature for that region, then applying weather modifiers, and then applying the night-time modifier if necessary to the temperature. Then it determines the minimum and maximum allowable temperature for that situation and if necessary changes the current temperature to that value. This prevents Frostfall from seeing the temperature as 20 if it is currently snowing in Pine Forest, such as due to a mod that alters regional weathers.

All I did was modify Frostfall's climate script, adding GameMonth as a global variable it looked up, and then adding additional globals for each region and each month type. Then I changed the if-statement to use region[month] instead of a set value for each region, while elsewhere creating a function that set each regions base temperature for each month, using the global values. I also modified Frostfall's Compatibility script, so that instead of returning the region base temperature value for certain areas in DLC (and a couple New Land mods) instead it returned the region numerals already used elsewhere by Frostfall, which were then used by Climate script in the same manner as Skyrim's regions.

Also, I made a small addition, so that instead of a -5 temperature adjustment at night that turns off / on at exactly 7am / 7 pm, instead there is a transition period: During the twilight periods the penalty is -2. Unfortunately I could not find a way to look up the game's start / end times for sunrise and sunset, so instead you can enter the hour manually. The defaults are close to the vanilla game values, but they are not exactly the same since otherwise 'day' is only from about 10a to 4p, with twilight lasting a combined 9 hours (5:30a - 10a and 4p - 8:30p). Using Frostfall's choice of nighttime as a guide, I set the twilight period to occur during the first / last hour of daylight and the two hours of night nearest each of those (so from 5a - 8a and from 6p - 9p). These hours can be set in 1/6 hour increments. I chose this value because the game engine treats game time in ten-minute intervals. For example, 2pm is seen by the game engine as 84, as it is 840 minutes after midnight. In the future this may allow for compatibility with mods that could see / alter the sunrise / sunset times.


As of version 1.1 the following has been done, at the request of a few commenters: a region has been created to contain the Throat of the World mountain where High Hrothgar is located, and that region has been set to use the Arctic / Snow region temperature. (Prior, due to not having a region associated with it, much of it used Unknown.) I also created a very tiny region in the maximum and the minimum temperature functions that is set to use the platform upon which the player is placed during the scene at the Statue of Meridia where the player is raised into the sky. While I have set this tiny area to always have temperature +10, I am not sure whether it will implement due to Frostfall's manner of timing its updates in temperature (see below), but here is hoping that it works.

Finally, I have added a second version of this mod: the Dangerous Mountain version. This version adds 3 additional tiers of coldness to the Throat of the World. Since each tier is -5 worse in maximum temperature than the one below, and the mountain has now been set to use the Arctic / Snow region, the ascent will be even more intensely cold - especially the path between High Hrothgar and the peak. Below are the starting points of each tier of coldness:

1 - where snow is first seen on the path (max temp set to -5)
1.5 - at the first curve in the path after snow becomes continuous on the path
2 - at the wide steps just before High Hrothgar
2.5 - at the top of the stairs just after High Hrothgar
3 - ~1/3 of the way to the peak from High Hrothgar, where a goat is seen on a ledge above
3.5 - ~2/3 of the way to the peak, where a large rock formation briefly splits the path in two
4 - shortly before the peak, between the silver vein and the narrow pass through steep rock
   (a relatively short tier, set to max temp -20 or (in dangerous mountain) to -35)
5 - the peak (max temp set to +10)


Something I noticed while testing this mod is that Frostfall only updates its current temperature upon events: a change in the weather, the start / end of night, or entering a new region / worldspace. This lead me to realize that any changes made to a month type's temperature adjustment or to a region's base temperature in the MCM will NOT be noticed until the next time Frostfall updates itself. So if you change the value of a region, it will not change in actual game play even if you spend in-game hours walking around that region - not unless the weather changes (which admittedly is likely to occur in any given two hour period of game time), if night starts / stops, or if you  wander into another region / worldspace. But the last also includes interior spaces, so just entering and then leaving an interior space will set the game to use the new values you entered into the MCM. Note that Frostfall does not notice fast travelling - whether by console command (coc), by carriage, or by typical fast travelling, so if you fast travel you will still show in the MCM (and to Frostfall) as being in the prior type of region - at least until the weather changes or night starts / ends. But a quick step indoors (or into a mine, cave, or any interior space) will fix that, as a change in worldspace is always noticed.

Finally, be advised that if you use any other mod that modifies the Frostfall scripts "_frost_climatesystem" or "_frost_compatibility" then that mod will not be compatible with this mod. The latter script had to be changed to deal with the DLC regions (Solstheim, Falmer Valley, etc) and have them return region codes instead of a base temperature.