Anniversary Edition/Framework
The Anniversary Edition Seven introduced a revised framework which installs from scratch, separate from any previous Editions. Following is a rundown of what the Installer is doing, from start to finish. To learn how to make your own mod package, which is required in order for the AE Installer to handle your mod properly, see Making a mod package.
Initialization
When first running the Installer, this is a one-time process that uses OniSplit to break the .dat/.raw(/.sep) files in Oni's GDF and breaks them into their constituent resources, yielding thousands of .oni files. These files are stored in temporary folders, one for each level. Next, the Installer performs what is called globalization: in order to allow modders access to (nearly) all data in all levels, it moves the .onis from each game level's folder to level 0, discarding duplicates (for instance, instead of making all characters available globally, BWest would put the ONCCs in each level for the characters they needed, to save memory; this means that the same character data can occur many times throughout the game data). The exception to this globalization is each level's AKEV and all child resources, its title, fail and win screens, and its LSI. Finally, the Installer recombines those folders of .oni files into the .dat/.raw(/.sep) files for each level, in AE/AEInstaller/vanilla/. Note that no data has been modded yet, just reformatted.
Installation
After this, the user can choose some mods to install. When the Install button is clicked, the Installer starts off by deleting the existing .dat/.raw(/.sep) files in AE/GDF to start from a blank slate. It then iterates through each mod package you selected, and sends a command to OniSplit to combine the .dat for that level (in AEInstaller/vanilla/) with the .oni files from whichever packages have files meant for that level. The final .dat/.raw(/.sep) files are then created in AE/GDF.
XML patching
Coming soon.
Package numbering
When one package overlaps with another in some way, such as two packages that provide new textures for the same character, which one will take precedence? The answer is that the Installer goes by the number at the front of the name of the package folder. A package numbered 11111 will override package 11110 when they are installed into Oni.