Making a mod package: Difference between revisions

From OniGalore
Jump to navigation Jump to search
mNo edit summary
(updating for AEI 1.1)
Line 10: Line 10:
Sample:
Sample:


  AEInstallVersion -> 1.0
  AEInstallVersion -> 1.1
  NameOfMod -> Upgraded ONCCs
  NameOfMod -> Improved Weapons
  ModString -> 21000UpgradedONCCs 1
  ModString -> 11000BetterWeaps 1.1
<!--ModVersion -> 1.1-->
Category -> AE: Weapons
  Creator -> Loser
  Creator -> Geyser/Loser/Iritscen/Gumby
  HasOnis -> Yes
  HasOnis -> Yes
  Readme -> Gives enemies more health, better bullet dodging, and better blocking skills.
HasDeltas -> No
HasBSL -> No
HasDats -> No
IsEngine -> No
  Readme -> Improves the appearence and mechanics of existing Oni weapons. \n \n Currently contains...
GlobalNeeded -> Yes


;'''AEInstallVersion'''
:;'''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:
:What version of the Installer is needed to read this package. 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:
::1.0 (Edition 2009-07): Initial release.
::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. 1.0 packages will still be compatible. -->
::1.1 (Edition 2010-05):
:::*Now supports BSL mods. This means that the "HasBSL" flag now works. See step 7.
:::*No more division of level0_Final into level0_Character, level0_Textures, etc., and no more need for a double-path like level1_Final/level1_Final. See step 5. The 1.0 package hierarchy still works, however.
:::*Supports floating-point version numbers, like "ModString -> 11000BetterWeaps 1.1".


;'''NameOfMod'''
:;'''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.
: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'''
:;'''ModString'''
<!--Depreciated. add strikethrough-->
: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.
: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.<!--are we changing the name in this field to be the persistent ID?-->


<!--
:;'''Creator'''
;'''ModVersion'''
:This is the version of the mod. Be sure to specify it if you want updating to work properly
-->
;'''Creator'''
:The name(s) that you want to get credit for the mod, displayed to the user in the Installer.
:The name(s) that you want to get credit for the mod, displayed to the user in the Installer.


;'''HasOnis'''
:;'''HasOnis'''
:Set this to "Yes" to tell the installer that .oni files are present.
:Set this to "Yes" to tell the installer that .oni files are present.


;'''HasBSL'''
:;'''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.
: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.


;'''Platform'''
:;'''Platform'''
:If set to "Windows", mod is ignored on Macs. If set to "Macintosh", mod is ignored on Windows.
:If set to "Windows", mod is not listed in the Installer window on the Macintosh. If set to "Macintosh", mod is ignored on Windows.


;'''Readme'''
:;'''Readme'''
:The read-me text displayed for the user in the installer. You can make linebreaks by using " \n ".
:The read-me text displayed for the user in the installer. You can make linebreaks by using " \n ".
Flags not documented here are currently ignored by the Installer.
----
----
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, make a folder named "oni" inside your package folder. If you have .bsl files, make a folder named "bsl" inside the 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 the global data in level0_Final, make a "level0_Final" folder inside "oni". 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.
 
----
:If you have...
6. A BSL mod uses the names of the IGMD subfolders the script(s) will go into, e.g. a script that is meant for Chapter 1 goes in bsl/EnvWarehouse/.
 
----
TRAC, TRAM make a level0_Animations folder...
7. Put levelX (anything but level0) .oni files inside their respective levelX_Final/ directories.
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
<!--^ 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.
 
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, but we can change this step to explain that every level that a BSL mod affects needs a folder inside bsl/ with the name of the IGMD subfolder the script(s) will go into, e.g. a script that is meant for Chapter 1 goes in bsl/EnvWarehouse/-->
 
8. Put level0 .oni files inside their respective folders as created in step 5.<!--woot, another obsolete step-->
 
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!
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.
'''Special Notes'''
 
*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.


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


New ONCCs should have this inside the ONCP:
*New ONCCs should have this inside the ONCP:


             <ONCPParticle>
             <ONCPParticle>
Line 87: Line 77:
             </ONCPParticle>
             </ONCPParticle>


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


[[Category:Modding tutorials]]
[[Category:Modding tutorials]]

Revision as of 00:16, 24 May 2010

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.1
NameOfMod -> Improved Weapons
ModString -> 11000BetterWeaps 1.1
Category -> AE: Weapons
Creator -> Geyser/Loser/Iritscen/Gumby
HasOnis -> Yes
HasDeltas -> No
HasBSL -> No
HasDats -> No
IsEngine -> No 
Readme -> Improves the appearence and mechanics of existing Oni weapons. \n \n Currently contains...
GlobalNeeded -> Yes
AEInstallVersion
What version of the Installer is needed to read this package. 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:
1.0 (Edition 2009-07): Initial release.
1.1 (Edition 2010-05):
  • Now supports BSL mods. This means that the "HasBSL" flag now works. See step 7.
  • No more division of level0_Final into level0_Character, level0_Textures, etc., and no more need for a double-path like level1_Final/level1_Final. See step 5. The 1.0 package hierarchy still works, however.
  • Supports floating-point version numbers, like "ModString -> 11000BetterWeaps 1.1".
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.
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.
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.
Platform
If set to "Windows", mod is not listed in the Installer window on the Macintosh. If set to "Macintosh", mod is ignored on Windows.
Readme
The read-me text displayed for the user in the installer. You can make linebreaks by using " \n ".

Flags not documented here are currently ignored by the Installer.


4. If you have .oni files, 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 the global data in level0_Final, make a "level0_Final" folder inside "oni". 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. A BSL mod uses the names of the IGMD subfolders the script(s) will go into, e.g. a script that is meant for Chapter 1 goes in bsl/EnvWarehouse/.


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

You are done!


Special Notes

  • 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.