Tips: Cleaning Plugins With TES3CMD

Register BSAs File Renames OPENMW_PHYSICS_FPS Shiny Meshes INI Importer TR Patcher Atlased Meshes BBC Patching

A "dirty" plugin, or one that contains GMST contamination, is created by default when using the vanilla construction kit. Any content creator that uses it unknowingly creates plugins with bad or undesirable changes.

The TES3CMD utility was created to, among many other things, clean plugins of these undesired changes. Please see the below pages as a more detailed reference on the topic of plugin cleaning:

NOTE: Not all plugins require cleaning, despite TES3CMD finding things to clean! Please consult the documentation for any mod that you are unsure about cleaning.

In my own quest to clean dirty plugins, I wrote a bash script to automate the process. Below is a bash script that can be used on any unix-like OS to clean known dirty mods, all in one swoop (it assumes tes3cmd is available in your $PATH).

Before you can run the script, you must have:

  1. A working install of vanilla Morrowind.
  2. Copies of each plugin you want to clean should be in the vanilla install's Data Files directory.
  3. Place the below script into the root of the vanilla install (right next to the Morrowind.exe file) and run it from that directory.

NOTE: If you aren't comfortable with scripts, please don't just copy and paste this. It's meant to be a reference for those who know what they are doing.

HEY: Windows scripters!! I need your help in providing an equivalent example for your OS. Please contact me if you can help!

#!/usr/bin/env bash

set -e

#
# Below is an example list of plugins.
# Replace it with a list of ones you are using that need cleaning.
#
declare -a plugins_to_clean=(
    "Abandoned_Flatv2_0.esp"
    "Almalexia_Voicev1.esp"
    "FLG - Balmora's Underworld V1.1.esp"
    "Better Robes.ESP"
    "Building Up Uvirith's Legacy1.1.ESP"
    "DD_Caldera_Expansion.esp"
    "NX9_Guards_Complete.ESP"
    "Dwemer and Ebony Service Refusal.ESP"
    "GITD_Telvanni_Dormers.ESP"
    "GITD_Telvanni_Dormers_Exterior.ESP"
    "GITD_Telvanni_Dormers_Interiors.ESP"
    "GITD_WL_RR_Interiors.esp"
    "Graphic Herbalism.esp"
    "Graphic Herbalism - No Glow.esp"
    "Graphic Herbalism Extra.esp"
    "CultSheog-1.02.ESP"
    "CultSheog-TR1807.esp"
    "Kilcunda's Balmora.ESP"
    "MD_Azurian Isles.esm"
    "Magical Missions.ESP"
    "Xenn's Marksman Overhaul.ESP"
    "MW Containers Animated.esp"
    "Go To Jail.esp"
    "Go To Jail (Mournhold + Solshteim).ESP"
    "MRM.esm"
    "NX9_Guards_Complete.ESP"
    "On the Move.esp"
    "OTM_TR.ESP"
    "Ozzy's Grass - Merged.esp"
    "Ports Of Vvardenfell V1.6.ESP"
    "Cyrodiil_Main.esm"
    "Quill of Feyfolken 2.0 [fixed].esp"
    "SadrithMoraExpandedTR.esp"
    "Sky_Main.esm"
    "DA_Sobitur_Facility_Clean.ESP"
    "DA_Sobitur_Quest_Part_1 Clean.esp"
    "DA_Sobitur_Quest_Part_2 Clean.esp"
    "DA_Sobitur_Repurposed_1.ESP"
    "DA_Sobitur_TRIngred_Compat.ESP"
    "Stav_gnisis_minaret.ESP"
    "OTR_Coast_Variety.esp"
    "TheForgottenShields - Artifacts_VN.esp"
    "SG-toughersixth.esp"
    "Ttooth Ecology OpenMW.esp"
    "Ttooth Ecology - TR Patch.ESP"
    "Ttooth Ecology - Fish Addon.esp"
    "True_Lights_And_Darkness_1.1.esp"
    "UCNature.esm"
    "UFR_v3dot2_noRobe.esp"
    "Vurt's BC Tree Replacer II.ESP"
    "Windows Glow - Bloodmoon Eng.esp"
    "Windows Glow - Raven Rock Eng.esp"
    "Windows Glow - Tribunal Eng.esp"
    "Windows Glow.esp"
)

_oldIFS=$IFS

IFS=$(echo -en "\n\b")

for thing in "${plugins_to_clean[@]}"; do
    _path=$(find . -name "${thing}")
    echo NOW RUNNING: tes3cmd clean "${_path}"
    tes3cmd clean "${_path}"
done

IFS=$_oldIFS

Plugins that have been cleaned will be output as Clean_PluginName.esp (e.g. Clean_Windows Glow.esp), and the original left in place untouched.

Register BSAs File Renames OPENMW_PHYSICS_FPS Shiny Meshes INI Importer TR Patcher Atlased Meshes BBC Patching

About Getting Started CFG Generator Name Generator Mod Lists Load Order Resources Tips FAQ Contact Feedback Issue Tracker Source Code #momw on Freenode TES3MP Server
All original content on this site is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. Creative Commons License