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."
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.
GAME PASS folder structure where "plugins.txt" is located: C:\XboxGames\The Elder Scrolls IV- Oblivion Remastered\Content\OblivionRemastered\Content\Dev\ObvData\Data
Game Executable path: C:\XboxGames\The Elder Scrolls IV- Oblivion Remastered\Content\OblivionRemastered\Binaries\WinGDK\OblivionRemastered-WinGDK-Shipping.exe
12 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."
$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)
C:\XboxGames\The Elder Scrolls IV- Oblivion Remastered\Content\OblivionRemastered\Content\Dev\ObvData\Data
Game Executable path:
C:\XboxGames\The Elder Scrolls IV- Oblivion Remastered\Content\OblivionRemastered\Binaries\WinGDK\OblivionRemastered-WinGDK-Shipping.exe