KotOR-esque Modding System?

If you’ve ever modded Knights of the Old Republic, you’ll know that it’s rather simple. Just create(unless it’s already there) an “Override” folder and drop the modified files in. I was wondering if I could do something like that for a project in Unity.

Basically, if a player wants to change the texture, they just find the texture images(KotOR uses .tga files), change them around in their editor, and then put them in the Override folder. Items could be retextured and even new items be made(simply creating the weapon files then adding a value to an item manager. Even scripts(AIs, force powers, difficulty, et cetera) and dialog could be created or edited in KotOR.

Is there anyway to force the engine to check and see if a file is in the Override folder(assuming that is what I call it) before it checks the core files and load the Override version if it exists? This would help a great deal because I plan on releasing official mods or “DLC” packs for my game after it is finished and an ability such as this would be extremely helpful. This method of modding works out best for both the modders and for the game owner. The modder doesn’t have to worry about going into the source and changing it then recompiling and the game owner doesn’t have to worry if they install a mod they don’t like or that crashes the game. They simply removed the files from the override folder without worrying about ruining the game as the vanilla is never touched, just overridden.

First you need to load resources at runtime this could be either from a local file or from a web server.

Next, unless your users have Unity 3D Pro in order to create Asset Bundles you would need to make your game use some custom file format for data.

A simple example would be to store a text file with balance values and download it from a server - as shown here.