BSAs and Archive Invalidation

From TESCOSI --A site dedicated to mod users
Jump to: navigation, search

A Bethesda Softworks Archive (BSABethesda Softworks Archive) is a type of compressed file format in which Oblivion packs away many of its files. They reduce clutter and allow the game to find files more easily. For that reason, a number of people recommend BSABethesda Softworks Archive repacking. This introduces a new dynamic when installing lose files, especially replacers. The game looks through the BSAs first and the looks for newer loose data files. If you install a mod containing files that are dated earlier than the BSABethesda Softworks Archive containing files that it overlaps with, the game will still load the files in the BSAs unless you use archive invalidation. The other way to circumvent this problem is to use a file redater or OBMMOblivion Mod Manager's BSABethesda Softworks Archive reset timestamp function (See the OBMMOblivion Mod Manager page under "Programs & Utilities.)

Archive Invalidation

This is one of those straight-forward topics, where once you have finished reading this, you will probably not need to reference this page again...Unless, you are trying to explain it to someone else, perhaps? Anyway, the reading material:

  1. ArchiveInvalidation Explained by Dev_Akm
  2. ArchiveInvalidation Destroyed by Dev_Akm

BSABethesda Softworks Archive Redirection

  • OBMMOblivion Mod Manager and BAINBAsh INstallers both have a BSABethesda Softworks Archive redirection option (but do not implement it in both at once.)
    >> Note: OBMMOblivion Mod Manager's is found in Utilities>Archive invalidation, and BAINBAsh INstallers's can be selected by right-clicking on the Package header in the Installers tab.
  • ArchiveInvalidation Invalidated! is another tool that implements BSABethesda Softworks Archive Redirection, and many make the mistake of using it, duplicating functionality they already have with OBMMOblivion Mod Manager.
  • Use one form of archive invalidation at time. For example, if you use OBMMOblivion Mod Manager and BAINBAsh INstallers, only have BSABethesda Softworks Archive Redirection set in one.
  • BSABethesda Softworks Archive Redirection is BSABethesda Softworks Archive Redirection, regardless of the tool that implements it; however, OBMMOblivion Mod Manager and BAINBAsh INstallers have an advantage in that they will update the Oblivion.ini if they find that the redirection BSABethesda Softworks Archive is missing (i.e., after regenerating it) which is something that ArchiveInvalidation Invalidated! does not do. You would have to rerun the executable.
  • OBMMOblivion Mod Manager's redirectoin BSABethesda Softworks Archive is not in the Data folder, but, rather, it is found in the obmm folder.
  • The redirection BSABethesda Softworks Archive of BAINBAsh INstallers and ArchiveInvalidation Invalidated! have the same name.
  • Use OBMMOblivion Mod Manager's BSABethesda Softworks Archive packaging tool instead of BSABethesda Softworks Archive Commander, as the latter seems to have issues properly constructing file paths.

Loading BSAs

There are two methods by which BSAs are loaded: INI registration and plugin association. Vanilla Oblivion's (default) BSAs are loaded via INI registration. Those are always found in the sArchiveList upon generating a new Oblivion.ini. Unless you are a power users that uses striping for greater performance, you should stick to the second method, plugin association.

Some Facts

  • The sArchiveList is limited to 256 characters.
  • The CSConstruction Set and Oblivion use separate INI files, separate archive lists.
  • BSAs registered in the INIs do not have to be in the data folder, or even on the same HDD.
  • The fastest way for the game to find files is in uncompressed BSAs, BSAs packed with "no compression."
  • BSAs count toward the soft cap of 300-400 total plugins and BSAs (before your game goes haywire.)
  • The faster the game can find load files, the smoother the game will run.
  • Reinstalling the game will not overwrite an existing Oblivion.ini, and the same is true for the CSConstruction Set INI file.
  • A redirection BSABethesda Softworks Archive must contain at least one file.
  • BSAs cannot be more than 2GB (2048MB) in size.

INI Registration

  • This method gives the users more flexibility because BSAs do not have to be in the Data folder, allowing for striping to be used to speed up the transfer of data collectively from the BSAs.
  • To deal with the character limit, rename all BSAs so that they use fewer characters.
    >> notes: Changing the names of the original BSAs is fine so long as the sArchiveList reflects the name changes.
  • Remember to update the CSConstruction Set INI file as well.
  • If using Wrye Bash, create a sArchiveList INI tweak to preserve your modified BSABethesda Softworks Archive list so that it can be easily applied and updated.
  • OBMMOblivion Mod Manager users can create a dummy OMOD that simply has a script that makes INI changes, which would contain your sArchiveList.

Comments on the INI Registration by Showler

21 April 2010 - 04:50 PM The primary benefit (perhaps the only benefit) is that it allows you to have BSABethesda Softworks Archive files in locations outside the DATA folder. Except for really unusual circumstances where someone may have limited room on their main hard drive (which is absurdly rare these days), the only purpose to this is load balancing. Load balancing is not striping from RAID, but it is an attempt to get some of it's benefits. It's a known fact that both Windows, and your computer hardware are capable of transferring data from the hard drive faster than the hard drive is capable of providing that data. Load balancing is a trick where you put half your bsas on one drive, and half on a second drive (or three drives, or four drives). This ends up with the game loading meshes from drive A, and textures from drive B (for example), and can help reduce stuttering for some people. A more advanced method actually involves building entirely new BSAs designed to spread the load by dividing the meshes/textures/sounds/etc. between multiple BSAs in a manner that is most efficient.

21 April 2010 - 05:17 PM I'd add a note that load balancing is a power user option, and if you don't understand it, you shouldn't attempt it.

Plugin Association Loading

  • Rename the BSABethesda Softworks Archive to "<PluginName><anything>.bsa"
    • The plugin must be an ESP file.
    • The "PluginName" does not include the ".ESP" extension.
    • "Anything" must start with a space, hyphen or underscore, or <anything> can be nothing at all.
      Example: "DLCShiveringIsles.esp" can load "DLCShiveringIsles - <something>.bsa"
      Example: "DLCShiveringIsles.esp" cannot load "DLCShiveringIeslesSomething.bsa"
  • There are only two ways to load BSAs using an ESP with spaces in the name: 1) If the plugin has a space at the end, it can load multiple BSAs starting with the entire name of the plugin, including the space. 2) If the plugin only has spaces in the middle of the name, it can load a single BSABethesda Softworks Archive that matches its name.
    • Example: "Better Cities.esp" can load "Better Cities.bsa".
    • Example: "Better Cities .esp" can load "Better Cities - <something>.bsa"
    • Example: "Better Cities.esp" cannot load "Better Cities <anything>.bsa"
  • Use a plugin that is unlikely to be removed from your load order, so that you will not have to remember to rename your BSAs.
  • If you have "DLCShiveringIsles.esp" in your load order, theoretically, every BSABethesda Softworks Archive you need to load in your data folder can be named "DLCShiveringIsles <BSABethesda Softworks Archive Name>.bsa" or "DLCShiveringIsles - <BSABethesda Softworks Archive Name>.bsa" or something equivalent. However, it is simplest to only reserve the renaming BSAs for mod-added BSAs. The same can be done with any plugin in your load order, but using one that is unlikely to be removed minimizes the upkeep.>> notes; 1) If you rename the original BSAs, you have to edit multiple lines in the Oblivion.ini. 2) Unless, you know what you are doing, you should probably refrain from renaming the original BSAs.

Preferred naming schemes

  • Multiple BSAs or BSAs for different mods: "SomePlugin - SomeBSA.bsa"
    • plugin: "SomePlugin.esp"
  • Single BSABethesda Softworks Archive for same mod: "SomeMod.bsa"
    • plugin: "SomeMod.esp"
  • SIShivering Isles users: "DLCShiveringIsles - <anything>.bsa"

"Real" Examples:

  • FCOMFrans, War Cry, Oscuro's, Martigen recommended renaming options
    • MMMMartigen's Monster Mod BSABethesda Softworks Archive: "FCOMFrans, War Cry, Oscuro's, Martigen_Convergence_Mart'sMonsterMod.bsa"
    • Fran BSABethesda Softworks Archive: "FCOMFrans, War Cry, Oscuro's, Martigen_Convergence_FraNewItems.bsa"
      >> notes: The FCOMFrans, War Cry, Oscuro's, Martigen team recommends renaming this BSABethesda Softworks Archive "Oblivion - FraNewItems.bsa" with a dummy plugin. It takes up an extra plugin slot and requires that you create a dummy plugin, but both naming conventions work. The choice is yours.
  • MMMMartigen's Monster Mod recommended renaming options (use name of main MMMMartigen's Monster Mod plugin)
    Rename "MMMMartigen's Monster Mod.bsa" to...
    • MMMMartigen's Monster Mod: "Mart's Monster Mod.bsa"
    • MMMMartigen's Monster Mod+OOOOscuro's Oblivion Overhaul: "Mart's Monster Mod for OOOOscuro's Oblivion Overhaul.bsa"
    • FCOMFrans, War Cry, Oscuro's, Martigen: "FCOMFrans, War Cry, Oscuro's, Martigen_Convergence_Mart'sMonsterMod.bsa"
  • Loading BSAs with dummy plugin (non-SIShivering Isles)
    1. Copy the blank esp Oblivion\Mopy\Extras\blank.esp
    2. Put the plugin in your Data folder
    3. Rename the plugin "Oblivion.esp"
    4. Rename each BSABethesda Softworks Archive to force load "Oblivion - <BSABethesda Softworks Archive name>.bsa"
  • Renaming multiple BSAs for forced loading (SIShivering Isles)
    Rename each BSABethesda Softworks Archive to force load "DLCShiveringIsles - <BSABethesda Softworks Archive name>.bsa"
    >> notes: SIShivering Isles users can always use the the naming convention above to load BSAs in place of any other naming scheme.

External Links