Skip to content

Commit

Permalink
Describe type + reason introduced in NeoForge 20.4.40-beta
Browse files Browse the repository at this point in the history
  • Loading branch information
shartte committed Dec 16, 2023
1 parent 56569a0 commit 9d617c0
Showing 1 changed file with 9 additions and 8 deletions.
17 changes: 9 additions & 8 deletions docs/gettingstarted/modfiles.md
Original file line number Diff line number Diff line change
Expand Up @@ -122,14 +122,15 @@ The features system allows mods to demand that certain settings, software, or ha

Mods can specify their dependencies, which are checked by NeoForge before loading the mods. These configurations are created using the [array of tables][array] `[[dependencies.<modid>]]`, where `modid` is the identifier of the mod that consumes the dependency.

| Property | Type | Default | Description | Example |
|:---------------|:-------:|:-------------:|:---------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------|
| `modId` | string | **mandatory** | The identifier of the mod added as a dependency. | `modId="jei"` |
| `mandatory` | boolean | **mandatory** | Whether the game should crash when this dependency is not met. | `mandatory=true` |
| `versionRange` | string | `""` | The acceptable version range of the language loader, expressed as a [Maven Version Range][mvr]. An empty string matches any version. | `versionRange="[1, 2)"` |
| `ordering` | string | `"NONE"` | Defines if the mod must load before (`"BEFORE"`) or after (`"AFTER"`) this dependency. If the ordering does not matter, return `"NONE"` | `ordering="AFTER"` |
| `side` | string | `"BOTH"` | The [physical side][dist] the dependency must be present on: `"CLIENT"`, `"SERVER"`, or `"BOTH"`. | `side="CLIENT"` |
| `referralUrl` | string | *nothing* | A URL to the download page of the dependency. Currently unused. | `referralUrl="https://library.example.com/"` |
| Property | Type | Default | Description | Example |
|:---------------|:------:|:-------------:|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------|
| `modId` | string | **mandatory** | The identifier of the mod added as a dependency. | `modId="jei"` |
| `type` | string | `required` | Replaced the `mandatory` field in NeoForge 20.4.40-beta. Specifies the nature of this dependency: `required` is the default and prevents the mod from loading if this dependency is missing. `optional` will not prevent the mod from loading if the dependency is missing, but still validates that the dependency is compatible. `incompatible` prevents the mod from loading if this dependency is present. `discouraged` still allows the mod to load if the dependency is present, but presents a warning to the user. | `type=incompatible` |
| `reason` | string | *nothing* | Available since NeoForge 20.4.40-beta. An optional user-facing message to describe why this dependency is required, or why it is incompatible |
| `versionRange` | string | `""` | The acceptable version range of the language loader, expressed as a [Maven Version Range][mvr]. An empty string matches any version. | `versionRange="[1, 2)"` |
| `ordering` | string | `"NONE"` | Defines if the mod must load before (`"BEFORE"`) or after (`"AFTER"`) this dependency. If the ordering does not matter, return `"NONE"` | `ordering="AFTER"` |
| `side` | string | `"BOTH"` | The [physical side][dist] the dependency must be present on: `"CLIENT"`, `"SERVER"`, or `"BOTH"`. | `side="CLIENT"` |
| `referralUrl` | string | *nothing* | A URL to the download page of the dependency. Currently unused. | `referralUrl="https://library.example.com/"` |

:::danger
The `ordering` of two mods may cause a crash due to a cyclic dependency, for example if mod A must load `"BEFORE"` mod B and at the same time, mod B must load `"BEFORE"` mod A.
Expand Down

1 comment on commit 9d617c0

@neoforged-pages-deployments
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Deploying with Cloudflare Pages

Name Result
Last commit: 9d617c0b5fc45c5850c0566ad4d33f645de0bc2f
Status: ✅ Deploy successful!
Preview URL: https://3ec22c4a.neoforged-docs-previews.pages.dev
PR Preview URL: https://pr-37.neoforged-docs-previews.pages.dev

Please sign in to comment.