Skip to content
Cl3mus33 edited this page Aug 20, 2026 · 1 revision

Naming Conventions for Mod Authors

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.

The core rule

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.

Recognized season suffixes

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 meshes

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.

PBR textures

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.

What NOT to do

  • 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/*.ini declaring 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.

Clone this wiki locally