Skip to main content
DynDOLOD - Dynamic Distant Objects LOD
Finally I can see my house from here!
Support me on Ko-fi

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 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. 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) 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. Since this is a new feature, there might be issues or discrepancies in the order the base record swaps are applied for example. Report any issues to the official DynDOLOD support forum.

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 base records in DynDOLOD plugins. The form IDs of records is different for every load order and LOD generation process.

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.

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.