Repository navigation
Naming Conventions
If your mod already ships seasonal texture or mesh variants next to their base file, AutoSeasons will very likely pick them up automatically with zero configuration needed from the end user. This page documents exactly what it looks for.
For a record using a base texture like rock01.dds, AutoSeasons looks for a sibling file in the
same folder using one of the recognized season suffixes, and only generates a seasonal
duplicate for seasons where a matching file actually exists on disk. A texture with only a winter
variant gets only a winter duplicate — spring/summer/autumn are left untouched.
| Season | Suffixes checked |
|---|---|
| Winter |
_win, _winter
|
| Spring |
_spr, _spring
|
| Summer |
_sum, _summer
|
| Autumn |
_aut, _autumn, _fall
|
Suffix matching is case-insensitive and applies before the file extension, and before any
_n (normal), _m/_em (Complex Material/environment mask), _p (parallax/height), or
similar shader-slot suffix your texture set already uses — e.g. rock01_win_n.dds is recognized as
the winter variant of rock01_n.dds.
Grass .nif files use the same suffix set, plus a couple of common two-letter short forms some
grass packs use (most notably Cathedral 3D Grass Library's own convention):
| Season | Suffixes checked |
|---|---|
| Winter |
win, winter, sn
|
| Spring |
spr, spring, sp
|
| Summer |
sum, summer, su
|
| Autumn |
aut, autumn, fall, au
|
e.g. grass01_sn.nif next to grass01.nif is recognized as its winter variant, alongside
grass01_winter.nif.
If your mod ships PBR variants under a textures\pbr\... mirror of the vanilla path (Community
Shaders / PGPatcher convention), AutoSeasons detects this automatically and, alongside the plugin
duplicate, authors matching PBRNIFPatcher json rules so a downstream PGPatcher run converts the
seasonal duplicate's meshes correctly too. See PBR Support for the full detail.
- Don't ship a seasonal variant for something that's blocklisted by default (interiors, dungeon kits, dead/lifeless statics) expecting AutoSeasons to use it — those are excluded regardless of what files exist. See Using AutoSeasons for the exact default rules, which end users can further customize.
- If your mod ships its own
Data/Seasons/*.inideclaring its own seasonal swaps, AutoSeasons will detect and respect that by default instead of generating a duplicate of its own — see Season Mod Conflicts. This means shipping both your own ini and naming-convention-matched files works fine: AutoSeasons defers to your own declared swap.