Anniversary Edition/Framework: Difference between revisions
m (actually, it's called a mod package) |
(adding section on how to choose a package number) |
||
Line 11: | Line 11: | ||
Put even more simply, your new modded files have a mutual exclusion with the AE's modded files; only one or the other can be active at a time. No actual harm is being done in terms of lost data if you attempt to mod in this old way, but it means that the smart way to mod is always to make a package and install it through the Installer, even if you are merely testing something. This has the nice side effect of forcing you to be organized :-) | Put even more simply, your new modded files have a mutual exclusion with the AE's modded files; only one or the other can be active at a time. No actual harm is being done in terms of lost data if you attempt to mod in this old way, but it means that the smart way to mod is always to make a package and install it through the Installer, even if you are merely testing something. This has the nice side effect of forcing you to be organized :-) | ||
==Package numbering== | |||
When the Installer sees that more than one package affects a given level, what order does it install the packages in? If two packages have the same files in them, which one will take precedence? This is a particularly important consideration for packages that modify level0_Final (that is, most of them). The answer is that the Installer goes by the number at the front of the name of the package folder. So, how do you pick a number for your mod? First of all, the general rule of thumb is: | |||
1xxxx - Weapons | |||
2xxxx - Characters (and character textures) | |||
3xxxx - Particles | |||
4xxxx/5xxxx - Animations | |||
This tells you what the first digit will be, but the rest of the numbers determine whether your mod installs over another similar mod or under it. For instance, a package numbered 11100 will override the files in 11000 if both packages get installed. Ideally, you should use the thousands and hundreds place to number your mod if it's unconnected to other mods of that type, and use the tens and ones place to indicate that you are patching another mod package. For example: | |||
41000 (implies this is a mod that tweaks animations) | |||
41100 (implies that this mod might be related to mod 41000, or else you are just looking for another free number and 42-4900 are taken) | |||
41010 (probably someone's addition or improvement to mod 41000) | |||
41001 (must be an addition or improvement for mod 41000, or why else would they be numbered so closely?) | |||
Okay, so now you get the idea, but how do you know which numbers are free? First, check the numbers in use by the AE [[Anniversary Edition/Packages|HERE]]. Next, go to the [http://mods.oni2.net Mod Depot], and choose the Packages option from the sidebar to see all packaged mods. The names of the files (under the "Download Link" column) will tell you the numbers for these third-party packages. Any number not used by an AE package or a package on the Depot should be safe to use. | |||
[[Category:Anniversary Edition]] | [[Category:Anniversary Edition]] |
Revision as of 21:35, 26 September 2009
The 2009-07 release of the Edition introduced a revised framework. You should place the unzipped contents of the AE release for your platform into a fresh copy of Oni's folder, rather than a copy of Oni that already had an older Edition installed. Following is a rundown of how globalization and mod installation work. 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.
The globalization process
When first running the Installer, this is a one-time process that takes the vanilla .dats in Oni's GDF and breaks them into thousands of .oni files in folders like Edition/GDF/level1_Final. Next, the Installer combines those folders of .oni files into singleton, large .oni files, one for each level, in Edition/install/VanillaDats/. Note that no data has been modded yet, just reformatted. This process of pre-compiling the data results in a large speed increase over previous recombination methods.
The mod installation process
Right after this, the Installer prompts you to choose some mods to install. When you hit the Install button, the Installer starts off by deleting the existing .dat/.raw(/.sep) files in Edition/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 singleton .oni for that level (in VanillaDats) with the .oni files in whichever packages have files meant for that level. The final .dat/.raw(/.sep) files are then created in Edition/GDF.
Implications of the new process
The import of this is that the folders of .oni files in Edition/GDF/ are never used again after the globalization is done. In the old way of doing things, these folders were what you modded files in, and then recombined to generate new .dat/.raw(/.sep) files. However, if you tried that approach now, and altered those folders' files, and recompiled them, you would find yourself playing an Oni with only your mod and no AE mods, because the -import command you used on the "_Final" folder left out the AE's mods in Edition/install/packages/. And the next time you installed or removed a mod using the Installer, you would find yourself playing an Oni with only the AE mods, and not your own. Your modded files would still be in the "_Final" folder you placed them in, but the -import command that the Installer used didn't look at those "_Final" folders, it worked from the giant singleton .oni files for each level that were in VanillaDats instead.
Put even more simply, your new modded files have a mutual exclusion with the AE's modded files; only one or the other can be active at a time. No actual harm is being done in terms of lost data if you attempt to mod in this old way, but it means that the smart way to mod is always to make a package and install it through the Installer, even if you are merely testing something. This has the nice side effect of forcing you to be organized :-)
Package numbering
When the Installer sees that more than one package affects a given level, what order does it install the packages in? If two packages have the same files in them, which one will take precedence? This is a particularly important consideration for packages that modify level0_Final (that is, most of them). The answer is that the Installer goes by the number at the front of the name of the package folder. So, how do you pick a number for your mod? First of all, the general rule of thumb is:
1xxxx - Weapons
2xxxx - Characters (and character textures)
3xxxx - Particles
4xxxx/5xxxx - Animations
This tells you what the first digit will be, but the rest of the numbers determine whether your mod installs over another similar mod or under it. For instance, a package numbered 11100 will override the files in 11000 if both packages get installed. Ideally, you should use the thousands and hundreds place to number your mod if it's unconnected to other mods of that type, and use the tens and ones place to indicate that you are patching another mod package. For example:
41000 (implies this is a mod that tweaks animations)
41100 (implies that this mod might be related to mod 41000, or else you are just looking for another free number and 42-4900 are taken)
41010 (probably someone's addition or improvement to mod 41000)
41001 (must be an addition or improvement for mod 41000, or why else would they be numbered so closely?)
Okay, so now you get the idea, but how do you know which numbers are free? First, check the numbers in use by the AE HERE. Next, go to the Mod Depot, and choose the Packages option from the sidebar to see all packaged mods. The names of the files (under the "Download Link" column) will tell you the numbers for these third-party packages. Any number not used by an AE package or a package on the Depot should be safe to use.