Difference between revisions of "HPL3/Modding/Mod Dependencies"
Draugemalf (talk | contribs) m |
|||
| (One intermediate revision by one other user not shown) | |||
| Line 4: | Line 4: | ||
__TOC__ | __TOC__ | ||
| − | <br />{{bug|Mod dependencies are currently broken in Amnesia: Rebirth. They work for Amnesia: The Bunker}} | + | <br />{{bug|Mod dependencies are currently broken in Amnesia: Rebirth and Soma. They work for Amnesia: The Bunker}} |
==When to Use Mod Dependencies== | ==When to Use Mod Dependencies== | ||
| Line 36: | Line 36: | ||
Now you can use the mod as a dependency for other mods. | Now you can use the mod as a dependency for other mods. | ||
| + | |||
| + | If your dependency has custom modules, it is recommended to not include <code>modules.cfg</code> and <code>ModuleInterfaces_Custom.hps</code>. Instead have the mod which uses the dependency include the necessary changes to those files within itself. | ||
| + | Having those files both inside the dependency and the mod that uses it could cause errors. | ||
{{Note|Your dependency can have dependencies of its own as well.}} | {{Note|Your dependency can have dependencies of its own as well.}} | ||
| Line 61: | Line 64: | ||
Now your mod loads the mod dependency with the <code>UID</code> of "<code>my_uid</code>". | Now your mod loads the mod dependency with the <code>UID</code> of "<code>my_uid</code>". | ||
| + | |||
==See Also== | ==See Also== | ||
Latest revision as of 22:56, 14 March 2026
Mod dependencies provide a solution for sharing mod contents across multiple other mods. A few mods could depend on a parent mod to derive assets and other content from, instead of including it in their own mod.
Contents
|
Bug: Mod dependencies are currently broken in Amnesia: Rebirth and Soma. They work for Amnesia: The Bunker |
When to Use Mod Dependencies
- The main occasion to use Mod Dependencies is when you want to distribute assets packs which include models, textures, materials, scripts, etc for people to use freely in their own mods.
- Mod dependencies can help to reduce the mod size you want to distribute, as a big portion of the assets themselves are not actually included in the mod, but come from an external source.
Setting Up a Mod Dependency
In order to turn a regular mod into a mod dependency, the mod's entry file needs to have a special attribute called UID. This is used so other mods can reference your mod as a dependency. The convention of naming a UID is the form provider_name.mod_name. For example, if the mod creator is named steve and the mod name is called Castle Assets Pack, the UID for the mod will be steve.castle_assets_pack.
In order to set a UID manually for a mod:
- Open the mod's entry entry file.
- Inside, add an attribute called
UIDand give it a name:<?xml version="1.0" encoding="UTF-8"?> <Content Version="1.0" Type="StandAlone" Title="Your mod name here" Author="Your name here" Description="Mod description here" UID="my_uid" LauncherPic="LauncherPic.png" InitCfg="config/main_init.cfg" />
Now you can use the mod as a dependency for other mods.
If your dependency has custom modules, it is recommended to not include modules.cfg and ModuleInterfaces_Custom.hps. Instead have the mod which uses the dependency include the necessary changes to those files within itself.
Having those files both inside the dependency and the mod that uses it could cause errors.
Using a Mod Dependency
In order to use a mod dependency, the entry file of the mod which uses the dependency needs to have a special attribute called Dependencies. It is a list of UIDs separated by commas.
In order to set Dependencies manually for a mod:
- Open the entry entry file of the mod you want to add a dependency to.
- Inside, add an attribute called
Dependenciesand list theUID(s):<?xml version="1.0" encoding="UTF-8"?> <Content Version="1.0" Type="StandAlone" Title="Your mod name here" Author="Your name here" Description="Mod description here" Dependencies="my_uid" LauncherPic="LauncherPic.png" InitCfg="config/main_init.cfg" />
Now your mod loads the mod dependency with the UID of "my_uid".
