Creating your Own BSA files

Revision as of 06:53, 17 June 2006 by imported>JOG (set off commandline command, added link to Command prompt basics)

This is a slightly edited (to fit the context) version of this thread on the Elder Scrolls forums. Go there for the latest updates.

To clarify, for those of you who don't know, the .bsa files are what Bethesda have made to archive all of Oblivion's data into a few compact files, instead of a ton of folder trees with a ton of files (which is MUCH harder to manage).

Now, why should the modding community care about .bsa files? Well, it makes packaging, installing, and uninstalling mods much easier, which is good for you, and the consumer. Basically, you can put all of your files (with the exception of the .esp and readme, of course) into one compact file. So, the user just plops that in his or her data folder and your mod will work.

It has been said, that .bsa files would slow down load times, indefinitely, and would therefore cause the game itslef to be a slower experience. This is most definitely NOT true. A compressed .bsa file is about as fast as its uncompressed, folder tree brother. So, there really isn't any reason not to use this method of packaging your mod.

You might be thinking that it would make editing your textures, meshes, et cetera hard, though. Again, not so. Just remember to keep the original files, and you can access them again whenever you need them. After you've changed things, just repackage the .bsa file.

So, without further ado, the tutorial:


First, what you're going to need:

BSACommander -- This is what you'll be using to create your .bsa file

BinPatch -- This is what you'll be using to create patcher programs for your consumers

So, first you'll need to create your .bsa. Simple enough.

1. Create a folder and name it whatever you want. This will become our source folder.

2. Inside this folder place all the folders you would need for your mods files (i.e. textures\MyMod\)

3. Now put your mods files where they need to be. Remember do NOT place your .esp in this directory. It should NOT be compressed into your .bsa file

4. Now, open up BSACommander and click "Pack"

5. Where it says "Archive Name" click "..." and navigate to your Data folder. Type in the NAME OF YOUR .ESP FILE (without the .esp extension) and click save. If you do not use the same name as your .esp file, you will need to register the .bsa file in your .ini file, which is a pain.

6. Where it says "Source Dir" click "..." and find the folder where you made in step one. Click on the folder and click okay.

7. Now make sure "recursive sbdrs" and "compress" are checked

8. Now where the two colored boxes are, click each question mark and click apply (one after the other).

9. Change the compression options if you want (default works for me) and then click "pack."


Viola. You've created your first .bsa. Boot up Oblivion and make sure it works. There might be a problem with your textures not showing up in game (as it is with mine when I used this method). After a bit of research I figured out that in the .nif file, the texture property's path shouldn't have any "/", but instead "\". If you're having problems with your texture, after putting everything in a .bsa, after you check to make sure your tree is set up right, make sure you used "\" in the .nif file.


Now, here is the real beauty of putting your mod in a .bsa file. Once the consumer has the original .bsa file they can use significantly smaller patch programs that will update their .bsa files, if the need arises. To put it simply, the user gets the original and you update your mod's .bsa file. Now, you make a patch that will update the users old file.

Here's how:

1. Get the aforementioned program (binpatch)

2. Open up your command prompt and navigate to the "bin" directory of your new BINPATCH folder (created when you extract the download).

3. Type

genpatch -s=gui oldfile newfile patchname

replacing oldfile, with the original file's name, newfile with the new file's name, and patchname, with what you want the patch to be called. Make sure you type the FULL path name. (i. e. C:\Program Files\...)

4. Push enter and take your patch file and distribute it saying that people should only use it if they are upgrading, otherwise they should download the full .bsa.

5. The created executable is rather self-explanatory. The consumer simply clicks "browse" to find the old .bsa file and then clicks apply. All done. Pretty simple, no?


Now isn't that nice? Patch files are much smaller than the full .bsa and will allow you to distribute quick changes...quickly (hehe).

If there are multiple versions of the .bsa file, you can also type multiple oldfiles and they can all use that patchfile to update themselves. Yayyyy.


I hope this helps some people, and I hope that people actually use it. It can make installing/uninstalling mods very simple, and even cut down on download size.

Now, some people might see this as being more trouble than it's worth. Well, for big mods, this could be VERY useful. It means that the user only has to download your .bsa file once, instead of having to download everything over and over again. Plus, it makes you look professional, and stuff :p.

You can also use programs like Oblivion Mod Manager to simply view .bsa files, but BSA Commander will do that too.


See Also

BSA Files

BSA Unpacker Tutorial

Command Prompt Basics