-
Notifications
You must be signed in to change notification settings - Fork 51
Creating and publishing a mod
This page is for modders who want to create a mod and add it in the mod catalog.
Installed mods are each in a folder inside the Final Fantasy IX folder. Typically, they have the following contents :
-
FF9_Data
(folder)- (files that will replace content in \x64\FF9_Data)
-
StreamingAssets
(folder)- (files that will replace content in \StreamingAssets)
- The folder structure can also replace files inside p0dataX.bin archives, following their internal path (use Hades Workshop to export files, and they'll be exported with their full internal path
- (files that will replace content in \StreamingAssets)
-
ModDescription.xml
- See *Mod description
-
Memoria.ini
- An optional file that contains settings that will overwrite the value in \Final Fantasy IX\Memoria.ini
ModDescription.xml
(in the root of the mod folder) contains the information of a mod (name, version, incompatibilities...). This is the information displayed in "Installed Mods", This is better if the content corresponds to the Mod Catalog, which is what's displayed in the "Catalog" tab. If the mod is only downloadable through the catalog, and ModDescription.xml is missing from your mod, the mod manager will create one from Mod Catalog upon downloading it.
A typical description file looks like this:
<Mod> <Name>My Mod</name> <Version>1.0</version> <InstallationPath>MyModFolder</installationpath> <Author>My Name</author> <Description>This mod enhances the game to a point never attained before. Be sure to try it.</description> <Category>Various</category> <Website>https://www.example.com</website> <DownloadUrl>https://www.example.com/file.zip?optionA=1&optionB=2</downloadurl> <PreviewFileUrl>https://www.example.com/image.png</previewfileurl> </mod>
Attention: the character '&' is not valid and needs to be replaced by '&', for example in mod download links
The fields Name
and InstallationPath
are required while the others are optional, although some of them are strongly recommended.
Here are the possible fields that can provide informations to the tool:
Field | Description |
---|---|
Name |
The name of the mod
Required |
InstallationPath |
The name of the mod folder
Required |
Author |
The author(s) of the mod
Recommended |
CurrentVersion |
The current version of the mod, in the format major.minor[.build[.revision]] , eg. 1.2.0
Recommended |
Category |
The category of the mod
Recommended, It is better to use existing categories: Gameplay , Visual , Audio , Story , Translation or Various
|
DownloadUrl |
A download URL to the mod
Recommended It has to be a permanent direct download link (most likely of a ZIP file) with no extra step. e.g. for dropbox, have 'dl=1' at the end. '&' is not valid and needs to be replaced by '&' |
ReleaseDateOriginal |
The date at which the first version of the mod was released
Preferably in YYYY-MM-DD format |
ReleaseDate |
The date at which this version of the mod was released
Preferably in YYYY-MM-DD format |
Description |
A description of the mod that can be multi-lined
Make sure to escape special characters with the equivalent valid XML codes Recommended |
PatchNotes | A description of the changes in your latest version |
Website |
The URL of the mod's front page, typically giving more detailed information about it
Recommended |
DownloadFormat |
The expected format of the file downloaded
Archive Type: Zip (the default) also support, Rar, Tar, GZ, BZip, 7z or SingleFileWithPath:{path} where {path} is the asset path of the unique asset of the mod (eg. SingleFileWithPath:FF9_Data/EmbeddedAsset/UI/Atlas/Face Atlas )
|
PreviewFile | The relative path to a preview file (typically a jpg/png) inside the mod folder, to display as a header in the preview in Installed Mods. If absent, PreviewFileUrl with be used instead. For Sub-mods this will be displayed in the tooltip when hovering the option (max display size: 550x300px). |
PreviewFileUrl |
Direct URL to a remote preview file (typically a jpg/png)
If you upload your image to imgur, make sure it's permanent by being logged-in, right click on it, copy image link. e.g. https://i.imgur.com/yz2cgYv.jpeg |
IncompatibleWith |
A list of mod names that are not compatible with your mod (separated by ',')
When both mods are active, they'll both display a red icon and the launcher will show a red cross on the mod manager |
SubMod |
A list of optional features
From players' perspective: each option can be toggled on/off depending on their preference From modders' perspective: a sub-mod is a mod folder contained in the main mod folder. The assets related to the optional feature of the mod must be placed in that sub-mod folder and the sub-mod must be registered with the relevant informations, typically: <Mod> <Name>My Mod</name> <InstallationPath>MyMod</installationpath> <SubMod> <Name>Optional music</name> <InstallationPath>MusicSubMod</installationpath> <Description>Use the optional musics of the mod.</description> </submod> </mod>In this example, the main mod folder is MyMod and the music sub-mod folder is MyMod/MusicSubMod .
Sub-mod informations can include a Priority field, specifying the priority of the sub-mod compared to the main mod's priority.
|
Default |
Sub-mod tagged with Default will be active by default when the mod gets activated for the first time
|
Group |
Only one sub-mod of a group can be active at the same time.
Additionally if a sub-mod is tagged with Default (optional) it will be selected if no other sub-mods in the group are active, ensuring there is always one sub-mod in the group active. Only one of the sub-mods of the group should have this tag. If none of the sub-mods of the group have this tag, it will be possible to deactivate all of them.
<Mod> <Name>My Mod</name> <InstallationPath>MyMod</installationpath> <SubMod> <Name>Option A</name> <InstallationPath>OptionA</installationpath> <Description>This is option A</description> <Group>MyGroup</group> <Default/> </submod> <SubMod> <Name>Option B</name> <InstallationPath>OptionB</installationpath> <Description>This is option B</description> <Group>MyGroup</group> </submod> </mod> |
ActivateWithMod |
Activate sub-mod automatically when all the specified mods are active.
If any of the mods specified is inactive so will the sub-mod. Sub-mods tagged in this fashion will be hidden from the user in the launcher <SubMod> <Name>Hidden option</name> <InstallationPath>HiddenOption</installationpath> <ActivateWithMod>Other Mod A, Other Mod B</activatewithmod> </submod> |
ActivateWithoutMod |
Activate sub-mod automatically when all the specified mods are inactive.
If any of the mods specified is active the sub-mod will be inactive. Sub-mods tagged in this fashion will be hidden from the user in the launcher <SubMod> <Name>Hidden option</name> <InstallationPath>HiddenOption</installationpath> <ActivateWithoutMod>Other Mod A, Other Mod B</activatewithoutmod> </submod> |
Header |
Allows you to display a header in the mod manager mod options panel.
<Mod> ... <Header>Header 1</header> <SubMod>...</submod> <SubMod>...</submod> <SubMod>...</submod> <Header>Header 2</header> <SubMod>...</submod> <SubMod>...</submod> <SubMod>...</submod> ... </mod> |
DownloadSize |
The size of the file to download (taking the eventual compression into account)
Not yet implemented |
FullSize |
The size of the mod folder once installed
Not yet implemented |
HasPriorityOverMods |
Mods that should be lower than your mod
Not yet implemented |
CompatibilityNotes |
Precision about the compatibility of this mod with other mods
It is possible to specify the other mod concerned by these compatibility informations by specifying the attribute OtherModLow or OtherModHigh (eg. <CompatibilityNotes OtherModHigh="MoguriFiles">Notes about the Moguri Mod if it is placed with higher priority than the mod containing this description</compatibilitynotes> )
Multiple CompatibilityNotes fields can be used
Currently unused |
Modders that have created a mod inside a mod folder and have written a ModDescription.xml
for it can publish them in Memoria's Mod Manager fairly easily:
- Pack the mod folder inside a archive (various tools can do that: Windows's embedded zipper, WinRAR, 7zip, etc...). The root of the archive should either contain your mod folder or be that mod folder itself directly. Note currently we support compression formats Zip, Rar, Tar, Bzip, Gzip, 7-Zip.
- Upload your mod somewhere online such that it has a static public download link (eg. with Dropbox, Mediafire, etc...). Note that the website "Nexus Mods" doesn't provide such static links and is not supported yet as a valid download source. Moddb links are supported and should look like this
https://www.moddb.com/downloads/start/123456/
- Open Memoria's remote mod catalog and click on "Edit this file": it allows to open a pull request that modifies that catalog. Add a copy of your
ModDescription.xml
's content inside the complete catalog and wait for one of the devs to check and validate your pull request.
The Mod Manager is accessible from the launcher
In the manager, you can (un)install, (de)activate and configure mods that rely on the Memoria Engine to function