For those uncomfortable downloading a PS1 script - I get that. So here's the full code for the Steam version if you want to see what each line does. You can easily copy/paste and do whatever you want
# Define directory and plugin file $directory = "C:\Program Files (x86)\Steam\steamapps\common\Oblivion Remastered\OblivionRemastered\Content\Dev\ObvData\Data" $pluginsFile = Join-Path -Path $directory -ChildPath "plugins.txt" # Save current ACL $originalACL = Get-Acl -Path $pluginsFile # Base plugin list (preserved order) $basePlugins = @( "Oblivion.esm", "DLCBattlehornCastle.esp", "DLCFrostcrag.esp", "DLCHorseArmor.esp", "DLCMehrunesRazor.esp", "DLCOrrery.esp", "DLCShiveringIsles.esp", "DLCSpellTomes.esp", "DLCThievesDen.esp", "DLCVileLair.esp", "Knights.esp", "AltarESPMain.esp", "AltarDeluxe.esp", "AltarESPLocal.esp" ) # ESPs to exclude from delta $excludedPlugins = @("AltarGymNavigation.esp", "TamrielLeveledRegion.esp") # Get all .esp files in the directory $allEsps = Get-ChildItem -Path $directory -Filter *.esp -File | Select-Object -ExpandProperty Name # Filter delta .esps not in base list or excluded $deltaEsps = $allEsps | Where-Object { $_ -notin $basePlugins -and $_ -notin $excludedPlugins } | Sort-Object # Final list $finalList = $basePlugins + $deltaEsps # Write to plugins.txt with UTF-8 (no BOM) and proper line endings [System.IO.File]::WriteAllLines($pluginsFile, $finalList) # Restore original ACL Set-Acl -Path $pluginsFile -AclObject $originalACL Write-Host "plugins.txt updated with $($finalList.Count) entries. Permissions preserved."
using PS as with your script edit, plugins.txt file appear to put the load-order in alphabetic order.
is this correct to have it this way ? because i always seen that indications are to put the .esp files that are patches for another .esp file to load after and below the main .esp file
here example :
Ascension - Rarer Loot.esp Ascension.esp
shouldn't be Ascension.esp stay ABOVEAscension - Rarer Loot.esp ?
another example :
ImmersiveVendorAndLoot_UnleveledEconomy_Patch.esp is set much ABOVE the main file UNLEVELED ECONOMY.esp
Then you can just tell people to put the script in the base game folder and run it, and we won't have to change the path again if you update the script - just overwrite and go.
I don't really understand how to use this. I ran the ps1 file but my Plugins.txt still looks like vanilla. Can anyone help a poor wretch like me? EDIT: I tried again after changing the directory in the file (I have my Bethesda games installed outside of Program Files, as everyone probably should) and it still didn't change my plugin list.
Notice too all Vortex users-- you don't need this, as Vortex automatically updates your plugins.txt for you. No additional steps needed for installing any mod via Vortex.
15 comments
# Define directory and plugin file
$directory = "C:\Program Files (x86)\Steam\steamapps\common\Oblivion Remastered\OblivionRemastered\Content\Dev\ObvData\Data"
$pluginsFile = Join-Path -Path $directory -ChildPath "plugins.txt"
# Save current ACL
$originalACL = Get-Acl -Path $pluginsFile
# Base plugin list (preserved order)
$basePlugins = @(
"Oblivion.esm",
"DLCBattlehornCastle.esp",
"DLCFrostcrag.esp",
"DLCHorseArmor.esp",
"DLCMehrunesRazor.esp",
"DLCOrrery.esp",
"DLCShiveringIsles.esp",
"DLCSpellTomes.esp",
"DLCThievesDen.esp",
"DLCVileLair.esp",
"Knights.esp",
"AltarESPMain.esp",
"AltarDeluxe.esp",
"AltarESPLocal.esp"
)
# ESPs to exclude from delta
$excludedPlugins = @("AltarGymNavigation.esp", "TamrielLeveledRegion.esp")
# Get all .esp files in the directory
$allEsps = Get-ChildItem -Path $directory -Filter *.esp -File | Select-Object -ExpandProperty Name
# Filter delta .esps not in base list or excluded
$deltaEsps = $allEsps | Where-Object { $_ -notin $basePlugins -and $_ -notin $excludedPlugins } | Sort-Object
# Final list
$finalList = $basePlugins + $deltaEsps
# Write to plugins.txt with UTF-8 (no BOM) and proper line endings
[System.IO.File]::WriteAllLines($pluginsFile, $finalList)
# Restore original ACL
Set-Acl -Path $pluginsFile -AclObject $originalACL
Write-Host "plugins.txt updated with $($finalList.Count) entries. Permissions preserved."
i tried it and i have question ?
using PS as with your script edit, plugins.txt file appear to put the load-order in alphabetic order.
is this correct to have it this way ?
because i always seen that indications are to put the .esp files that are patches for another .esp file to load after and below the main .esp file
here example :
Ascension - Rarer Loot.esp
Ascension.esp
shouldn't be Ascension.esp stay ABOVE Ascension - Rarer Loot.esp ?
another example :
ImmersiveVendorAndLoot_UnleveledEconomy_Patch.esp is set much ABOVE the main file UNLEVELED ECONOMY.esp
$directory = Join-Path -Path (Get-Location).Path -ChildPath "OblivionRemastered\Content\Dev\ObvData\Data"
Then you can just tell people to put the script in the base game folder and run it, and we won't have to change the path again if you update the script - just overwrite and go.
EDIT: I tried again after changing the directory in the file (I have my Bethesda games installed outside of Program Files, as everyone probably should) and it still didn't change my plugin list.
(sorry for the dumb question)