Making a mod package: Difference between revisions

From OniGalore
Jump to navigation Jump to search
(d'oh, fixing an unfinished sentence)
(writing documentation for Installer 1.1 in hidden text, so when we release we can just uncomment it and we're set)
Line 1: Line 1:
The Anniversary Edition comes with a set of mods in the "package" format. This new [[Anniversary Edition/Framework|framework]] also allows modders to make third-party mods that will install easily into the Edition. You can start your package by copying an existing AE package and modifying it to save time, but in any case you'll need to learn how a package is made:
The Anniversary Edition comes with a set of mods in the "package" format. This new [[Anniversary Edition/Framework|framework]] also allows modders to make third-party mods that will install easily into the Edition. You can start your package by copying an existing AE package and modifying it to save time, but in any case you'll need to learn how a package is made:


1. Open up your Edition\install\packages folder.
2. Create a new folder with a name corresponding to your mod. No spaces, please. The five digit number in front corresponds to where in the load order you want your mod to be. Please, leave some space between your mod and other AE mods. See [[Anniversary Edition/Framework#Package numbering|HERE]] to see the numbers being used already and to know how to number your mod.


1. Open up your Edition/install/packages folder.
----
2. Create a new folder with a name corresponding to your mod. No spaces, please. The five digit number in front corresponds to where in the load order you want your mod to be. Please, leave some space between your mod and other AE mods. See [[Anniversary Edition/Framework#Package numbering|HERE]] to know how to number your mod.
----
3. Create (or copy) a config file named "Mod_Info.cfg" inside your new folder.
3. Create (or copy) a config file named "Mod_Info.cfg" inside your new folder.


Sample:
Sample:


  AEInstallVersion -> 1.0  
  AEInstallVersion -> 1.0  
  NameOfMod -> Upgraded ONCCs
  NameOfMod -> Upgraded ONCCs
  ModString -> 21000UpgradedONCCs 1
  ModString -> 21000UpgradedONCCs 1
Line 16: Line 17:
  Readme -> Gives enemies more health, better bullet dodging, and better blocking skills.
  Readme -> Gives enemies more health, better bullet dodging, and better blocking skills.


''AEInstallVersion'' is just the lowest version of the installer this mod is compatible with. Right now, always 1.0. :)
;'''AEInstallVersion'''
 
:What version of the Installer is needed to read this package. Right now there is only one significant release of the Installer, 1.0, so all packages should say 1.0. <!--There are two significant releases of the Installer, 1.0 and 1.1. If you make a new package at this point, you should just set its AEInstallVersion to 1.1 to be safe. Following, for the sake of thorough documentation, are the functional package-handling differences between the versions:
''NameOfMod'' is the name of the mod. :) It can be anything you like. It is displayed in the installer.
::1.0 (Edition 2009-07): Initial release.
 
::1.1 (Edition 2009-11): Now supports "HasBSL" values "Yes" and "Addon". Now expects .oni files to be in oni/levelX_Final/, rather than oni/levelX_Final/levelX_Final.-->
''ModString'' is two parts. The first is the name of the folder the mod is in. The second is the version of the mod. (Integers only, please)


''Creator'' is the name that is displayed in the installer.
;'''NameOfMod'''
:The "public" name of the mod. It can be anything you like, but should be written in an easily understandable manner, since it is displayed for the user in the Installer.


''HasOnis'' is set to Yes to tell the installer that .oni files are present.
;'''ModString'''
:This line has two parts. The first is the name of the folder the mod is in. The second is the version of the mod (integers only, please).<!--are we changing the name in this field to be the persistent ID?-->


''Readme'' is the readme displayed in the installer. You can make a new line by using " \n "
;'''Creator'''
:The name(s) that you want to get credit for the mod, displayed to the user in the Installer.


In the future there will be more types of mods ("HasBSL", etc).
;'''HasOnis'''
:Set this to "Yes" to tell the installer that .oni files are present.
<!--;'''HasBSL'''
:If set to "Yes", the Installer considers your mod a scenario and takes steps to exclude other BSL scenario mods from being installed for the same level. If set to "Addon", the Installer allows your mod to be installed to any level without restriction. Of course not all third-party BSL add-ons are guaranteed to be compatible with each other, but this is an inherent risk in third-party modding.-->


;'''Readme'''
:The read-me text displayed for the user in the installer. You can make linebreaks by using " \n ".
----
4. If you have .oni files (the only type of files supported right now), make a folder named "oni" inside your package folder.
4. If you have .oni files (the only type of files supported right now), make a folder named "oni" inside your package folder.
 
<!--If you have .bsl files, make a folder named "bsl" inside the package folder.-->
----
5. If your mod modifies level0_Final, make a "level0_Final" folder inside "oni".
5. If your mod modifies level0_Final, make a "level0_Final" folder inside "oni".


Line 44: Line 54:


...inside level0_Final
...inside level0_Final
 
<!--^ no longer true, now everything goes in level0_Final/-->
6. For every level that your mod uses, make a "levelX_Final" folder inside "oni". (level1_Final, level2_Final, etc...) New levels are currently not detected.
6. For every level that your mod uses, make a "levelX_Final" folder inside "oni". (level1_Final, level2_Final, etc...) New levels are currently not detected.


7. In each of the folders created in the previous step, make another "levelX_Final" folder inside the first one.
7. In each of the folders created in the previous step, make another "levelX_Final" folder inside the first one. <!--this step is now obsolete-->
 
8. Put level0 .oni files inside their respective folders as created in step 5.5.


9. Put levelX (anything but level0) .oni files inside their respective levelX_Final/levelX_Final directories.
8. Put level0 .oni files inside their respective folders as created in step 5.<!--woot, another obsolete step-->


You are done :)
9. Put levelX (anything but level0) .oni files inside their respective levelX_Final/levelX_Final directories.<!--only one level of directory, now, not two-->


You are done!
----
Be very careful when replacing (not adding) M3GM and TRAC, they can be a bit touchy. With TRAC, you must include all of the children of the TRAC you are adding. With M3GM, you must also include the file that references the M3GM.
Be very careful when replacing (not adding) M3GM and TRAC, they can be a bit touchy. With TRAC, you must include all of the children of the TRAC you are adding. With M3GM, you must also include the file that references the M3GM.



Revision as of 01:49, 30 October 2009

The Anniversary Edition comes with a set of mods in the "package" format. This new framework also allows modders to make third-party mods that will install easily into the Edition. You can start your package by copying an existing AE package and modifying it to save time, but in any case you'll need to learn how a package is made:


1. Open up your Edition/install/packages folder.


2. Create a new folder with a name corresponding to your mod. No spaces, please. The five digit number in front corresponds to where in the load order you want your mod to be. Please, leave some space between your mod and other AE mods. See HERE to know how to number your mod.


3. Create (or copy) a config file named "Mod_Info.cfg" inside your new folder.

Sample:

AEInstallVersion -> 1.0 
NameOfMod -> Upgraded ONCCs
ModString -> 21000UpgradedONCCs 1
Creator -> Loser
HasOnis -> Yes
Readme -> Gives enemies more health, better bullet dodging, and better blocking skills.
AEInstallVersion
What version of the Installer is needed to read this package. Right now there is only one significant release of the Installer, 1.0, so all packages should say 1.0.
NameOfMod
The "public" name of the mod. It can be anything you like, but should be written in an easily understandable manner, since it is displayed for the user in the Installer.
ModString
This line has two parts. The first is the name of the folder the mod is in. The second is the version of the mod (integers only, please).
Creator
The name(s) that you want to get credit for the mod, displayed to the user in the Installer.
HasOnis
Set this to "Yes" to tell the installer that .oni files are present.
Readme
The read-me text displayed for the user in the installer. You can make linebreaks by using " \n ".

4. If you have .oni files (the only type of files supported right now), make a folder named "oni" inside your package folder.


5. If your mod modifies level0_Final, make a "level0_Final" folder inside "oni".

If you have...

TRAC, TRAM make a level0_Animations folder... ONSK, TXMP make a level0_Textures folder... ONCC, TRBS, ONCV, ONVL, TRMA, TRSC, TRAS make a level0_Characters folder... OSBD, SNDD make a level0_Sounds folder... BINA3RAP make a level0_Particles folder... Anything else, make a level0_Final folder...

...inside level0_Final 6. For every level that your mod uses, make a "levelX_Final" folder inside "oni". (level1_Final, level2_Final, etc...) New levels are currently not detected.

7. In each of the folders created in the previous step, make another "levelX_Final" folder inside the first one.

8. Put level0 .oni files inside their respective folders as created in step 5.

9. Put levelX (anything but level0) .oni files inside their respective levelX_Final/levelX_Final directories.

You are done!


Be very careful when replacing (not adding) M3GM and TRAC, they can be a bit touchy. With TRAC, you must include all of the children of the TRAC you are adding. With M3GM, you must also include the file that references the M3GM.

Whenever possible, copy the files from packages\Globalize instead of the default Oni files.

New ONCCs should have this inside the ONCP:

           <ONCPParticle>
               <Name>glass_break</Name>
               <Type>glass_break</Type>
               <BodyPart>-1</BodyPart>
           </ONCPParticle>

If they do not, they will not be able to break glass when a user installs the glass-breaking AE mod.