Seasons

In addition to the default LOD meshes and textures this option adds a season identifier to the LOD meshes and textures filenames.

This feature is for powerofthrees's Seasons Of Skyrim which does the actual switching of assets for the different seasons in the game.

This feature is new and is expected to have bugs or limitations. Report issues and discuss on the official DynDOLOD support forum.

In addition to DynDOLOD generating object, tree and dynamic LOD for seasons, also use xLODGen to generate terrain LOD meshes and textures for the different seasons. Generate and install terrain LOD before generating with DynDOLOD.

Do not swap records in DynDOLOD plugins. The form IDs of records is different for every load order and LOD generation process. Editor IDs are not guaranteed to stay consistent. The LOD generation process will automatically swap records directly or create a DynDOLOD_[SPR|SUM|AUT|WIN].INI if required. In case such swap definitions are detected, remove such lines from the reported *.INI files permanently so the LOD generation process works and the generated LOD patch works properly in the game.

In case things do not work as expected, report any issues or make feature requests to the official DynDOLOD support forum.

Settings

Use the Seasons checkbox in the advanced mode of DynDOLOD to enable the feature. The checkbox is only available if swap data for a season has been found and loaded successfully.

Once the Seasons checkbox is checked, verify the worldspaces selection list top left for a [Seasons] being appended to an entry. For example Tamriel (Skyrim) - Skyrim esm [Seasons]. Double click an entry to enable or disable the [Seasons] status.

If the file ..\Seasons of Skyrim\SKSE\Plugins\po3_SeasonsOfSkyrim.ini exists in the load order, its Worldspace settings for every season will be used to automatically pre-select which worldspaces will have LOD files with [Seasons] identifiers generated. However, DynDOLOD will always generate all selected seasons for all selected worldspaces with the [Seasons] identifier.

DynDOLOD respects the po3_SeasonsOfSkyrim.ini the true/false setting for base record types (Activators, Furniture, Movable Statics, Statics or Trees) for each season in po3_SeasonsOfSkyrim.in. If for example Movable Statics for a season is set to false, then those objects will have default LOD for that season. If such a setting is changed, LOD will need to be generated from scratch to take affect.

Use the Default button to reset the current options in case they have been loaded from a previous generation session.

Select the desired and available seasons in the drop down menu. A season in the drop down menu only becomes available if swap data for the season has been loaded successfully. The Default season should always be generated. It can only be deselected in expert mode. Only generating the default season is equivalent as not checking the Seasons checkbox.

Use the Snow checkbox to apply the snow LOD shaders to the non swapped objects in object LOD for the season WIN. Use this for Season Type=1 in ..\Seasons of Skyrim\SKSE\Plugins\po3_SeasonsOfSkyrim.ini.

DynDOLOD reads and uses the snow shader blacklist defined in .\Data\Seasons\*_[NOSNOW|SNOW].ini to control application of the snow LOD shader.

By default the object LOD meshes for the default season of a worldspace are generated first, then the object LOD meshes for the different seasons. If there are no differences in the area an object LOD mesh covers, then it is copied from the default season object LOD mesh. Set SeasonsCopy=0 in ..\DynDOLOD\Edit Scripts\DynDOLOD\DynDOLOD_[GAME MODE].ini so all object LOD meshes are generated and none are copied.

By default the object LOD for all seasons (including the default) use the same object LOD atlas textures. Set SeasonsCombineAtlas=0 in ..\DynDOLOD\Edit Scripts\DynDOLOD\DynDOLOD_[GAME MODE].ini so every season uses its own set of object LOD atlas textures.

Technical Information

The feature requires season swap files in ..\Data\Seasons\*[SPR|SUM|AUT|WIN].ini.

All files are read in alphabetical order and the filenames are case sensitive. Files being loaded last win.

The format for the swaps is [Original base record]|[Swapped Base Record] separated by the pipe symbol (vertical line or bar).

The original and swap base records can be either be defined as 0x[Hex Form ID]~[Plugin FileName] or [Editor ID].

The form IDs or Editor IDs need to match base records used by references in the current load order.

For each season LOD meshes and texture filenames will be changed to *.[SPR|SUM|AUT|WIN].[BTO|BTT|LST|DDS].

For dynamic LOD ..\Seasons\DynDOLOD_[SPR|SUM|AUT|WIN].INI will be created in the DynDOLOD output folder so that dynamic LOD objects switch with the seasons as well.

Grass and Grass LOD

Seasonal grass cache support requires Grass Cache Helper NG. Follow its instructions to generate grass cache files *.[SPR|SUM|AUT|WIN].CGID for all desired seasons.

A method to do this is by forcing a specific season with the Season Type = [1|2|3|4] setting in the po3_SeasonsOfSkyrim.ini. After generating grass cache for a forced season, rename all its *.CGID files to *.[SPR|SUM|AUT|WIN].CGID. For example on the Windows command prompt with rename *.cgid *.WIN.cgid before moving the files from the MO2 Overwrite folder to the mod folder that will contain all the grass cache files. Repeat for every season. In the end there should be default grass cache files plus the grass caches for the 4 seasons.

When LODGen generates object LOD, it will check if matching seasonal grass cache files with a season identifier exist in the load order and uses them accordingly, otherwise the normal grass cache files will be used as fallback.

In case of questions or problems make a post on the official DynDOLOD support forum.

Map Mods

If a map mod uses custom terrain LOD or object LOD files, these files need to be manually copied to the seasonal filenames *.[SPR|SUM|AUT|WIN].[BTR|BTO], so that a version exits for every season. For example ..Data\Meshes\Terrain\Tamriel\Objects\Tamriel.32.0.0.WIN.BTO.

See Maps and Map Mods for more information.

Out of Memory errors

Generating 4 seasons in addition to the default season can spawn many long running LODGen processes at the same time which all can require several GB of memory.

In case this creates out of memory errors and/or high CPU usage, the number of simultaneously running LODGen processes per worldspace can be limited by setting MaxLODGenPerWorldspace=x in ..\DynDOLOD\Edit Scripts\DynDOLOD\DynDOLOD_[GAME MODE].ini.

In case this creates out of memory errors and/or high CPU usage, the number of total simultaneously running LODGen processes can be limited by setting MaxLODGen=x in ..\DynDOLOD\Edit Scripts\DynDOLOD\DynDOLOD_[GAME MODE].ini.

Use the LODGenThreadSplit setting ..\DynDOLOD\Edit Scripts\DynDOLOD\DynDOLOD_[GAME MODE].ini to control the number of main threads in case a LODGen process consumes large amounts of memory.