Base Object Swapper

The Base Object Swapper mod is a framework to swap base records via config files while the game loads. As such, those changes always win over whatever is defined in plugins and in a carefully crafted load order.

As long as these changes are static - they happen the same way every time the game loads - it typically would be better for proper modding practice to make such changes via plugins or to maybe use a patcher to create a plugin from the swap config files.

LOD generation is a snap shot of the current load order, so any changes to base records or references through whatever technique afterwards won't be reflected in the LOD.

DynDOLOD reads every *_SWAP.INI present in the games data folder and applies the base record swapping for each affected reference before generating LOD, thus applying the base record swap to all LOD types if applicable. All files are read in alphabetical order and the filenames are case sensitive. Files being loaded last win. A log message will notify how many base records swaps have been loaded.

If the new base record is of a type that does not support LOD or is not considered for LOD by DynDOLOD, it will simply have no LOD representation.

Swapping typically works for large references, too. Large reference bugs are triggered if the new base record type is changed from STAT or MSTT (a warning message Base Record Type Not STAT or MSTT For Large Reference is written to the message log - the large reference bugs workarounds fix this) or in case the volume of the objects bounds of the new base record is smaller than the required minimum (this is automatically fixed by DynDOLOD).

Using the material object shader from the original base record is not supported at the moment.

If *_SWAP.INI config files are added or changed after generating LOD, there can be visual differences. In that case consider updating LOD or generating from scratch as usual.

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_SWAP.INI if required. In case such swap definitions are detected, remove such lines from the reported SWAP.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.

Locational Replacements

DynDOLOD reads the form ID or Editor ID of locations or cell records defined via [Form|Location/Cell_FormID,Location/Cell_EditiorID] and applies those swaps only to LOD for references in those locations (including child locations) or cells.

Note that this feature does not work properly with large references.

Transform Overrides

DynDOLOD reads transforms defined with Pos[A|R], Rot[A|R] and Scale settings and applies the transformation to the generated object and tree LOD.

If any of the transformations contain a random min/max setting, the affected reference is ignored for LOD.

Chance

Any randomized swaps defined with Chance are ignored by default. Any LOD will be generated for the original reference or base record.

Set SwapsChance=1 in ..\DynDOLOD\Edit Scripts\DynDOLOD\DynDOLOD_[GAME MODE].ini in case all these references or base records should be ignored for LOD.