Fix links in mod file structure - #11183

This commit is contained in:
Yair Morgenstern 2024-02-26 22:53:28 +02:00
parent 1101f42957
commit 6448f8e47e
4 changed files with 65 additions and 65 deletions

View File

@ -9,10 +9,10 @@ This file contains the beliefs that can be chosen for religions in your mod.
Each belief has the following structure:
| Attribute | Type | Default | Notes |
| --------- | ---- | ------- |-------------------------------------------------------------------------------|
| --------- | ---- | ------- |-----------------------------------------------------------------------------------|
| name | String | Required | |
| type | Enum | Required | Type of belief. Value must be Pantheon, Founder, Follower or Enhancer |
| uniques | List of Strings | empty | List of [unique abilities](../) this belief adds to cities following it |
| uniques | List of Strings | empty | List of [unique abilities](../../uniques) this belief adds to cities following it |
| civilopediaText | List | empty | See [civilopediaText chapter](5-Miscellaneous-JSON-files.md#civilopedia-text) |
## Buildings.json
@ -41,7 +41,7 @@ Each building has the following structure:
| cityHealth | Integer | 0 | Health bonus the city in which this building is built receives |
| hurryCostModifier | Integer | 0 | When this building is bought using gold or faith, the price is increased by this much percent |
| quote | String | none | If this building is a (national) wonder, this string will be shown on the completion popup |
| uniques | List of Strings | empty | List of [unique abilities](../uniques) this building has |
| uniques | List of Strings | empty | List of [unique abilities](../../uniques) this building has |
| replacementTextForUniques | String | none | If provided, this string will be shown instead of all of the uniques |
| percentStatBonus | Object | none | Percentual bonus for stats provided by the building. Same format as [specialized stats](3-Map-related-JSON-files.md#specialized-stats) (numbers are in percent. i.e. `[30]` represents 30% __bonus__ to a stat) |
| greatPersonPoints | Object | none | Great person points by this building generated per turn. Valid keys are the names of units (Great Scientist, Warrior, etc.), valid values are Integers |
@ -57,12 +57,12 @@ This file contains all the nations and city states, including Barbarians and Spe
Each nation has the following structure:
| Attribute | Type | Default | Notes |
| --------- | ---- | ------- | ----- |
| --------- | ---- | ------- |-------------------------------------------------------------------------------------------------------------------------------------------------|
| name | String | Required | |
| leaderName | String | none | Omit only for city states! If you want LeaderPortraits, the image file names must match exactly, including case |
| style | String | none | Modifier appended to pixel unit image names |
| cityStateType | String | none | Distinguishes major civilizations from city states (must be in [CityStateTypes.json](#citystatetypesjson)) |
| startBias | List of strings | empty | Zero or more of: [terrainFilter](../Unique-parameters.md/#terrainfilter) or "Avoid [terrainFilter]". [^S] |
| startBias | List of strings | empty | Zero or more of: [terrainFilter](../../Unique-parameters.md/#terrainfilter) or "Avoid [terrainFilter]". [^S] |
| preferredVictoryType | String | Neutral | The victory type major civilizations will pursue (need not be specified in [VictoryTypes.json](5-Miscellaneous-JSON-files.md#victorytypesjson)) |
| personality | String | none | The name of the personality specified in [Personalities.json](#personalitiesjson)
| favoredReligion | String | none | The religion major civilization will choose if available when founding a religion. Must be in [Religions.json](#religionsjson) |
@ -79,7 +79,7 @@ Each nation has the following structure:
| outerColor | [List of 3× Integer](5-Miscellaneous-JSON-files.md#rgb-colors-list) | Required | RGB color for inner circle of nation icon |
| uniqueName | String | none | Decorative name for the special characteristic of this nation |
| uniqueText | String | none | Replacement text for "uniques". If empty, uniques are listed individually |
| uniques | List | empty | List of [unique abilities](../uniques) this civilisation has |
| uniques | List | empty | List of [unique abilities](../../uniques) this civilisation has |
| cities | List | empty | City names used sequentially for newly founded cities. Required for major civilizations and city states |
| civilopediaText | List | empty | See [civilopediaText chapter](5-Miscellaneous-JSON-files.md#civilopedia-text) |
<!-- | adjective | String | none | Currently unused | -->
@ -90,7 +90,7 @@ Each nation has the following structure:
Multiple "Avoid" entries are treated equally (and reduce chance for success - if no region is left avoiding _all_ specified types that civ gets a random one).
When combining preferred terrain with "Avoid", the latter takes precedence, and preferred terrain only has minor weight when choosing between regions that are not of a type to avoid.
These notes are __only__ valid when playing on generated maps, loaded maps from map editor get no "regions" and startBias is processed differently (but you can expect single-entry startBias to work best).
[^V]: See [Supply Leader Voices](../Images-and-Audio.md#supply-leader-voices)
[^V]: See [Supply Leader Voices](../../Images-and-Audio.md#supply-leader-voices)
## Personalities.json
@ -105,7 +105,7 @@ Each personality has the following structure:
| [`<stats>`](3-Map-related-JSON-files.md#general-stat) | Float | 5 | Amount of focus on the stat the computer player will have. Typically ranges from 0 (no focus) to 10 (double focus) |
| military | Float | 5 | Amount of focus on the military growth the computer player will have. Typically ranges from 0 (no focus) to 10 (double focus) |
| priorities | Object | none | Priorities for each policy branch [^B] |
| uniques | List | empty | List of [unique abilities](../uniques) this personality has |
| uniques | List | empty | List of [unique abilities](../../uniques) this personality has |
| civilopediaText | List | empty | See [civilopediaText chapter](5-Miscellaneous-JSON-files.md#civilopedia-text) |
<!-- | warMongering | Float | 5 | Amount of focus on declaring war the computer player will have. Typically ranges from 0 (no focus) to 10 (double focus) |-->
@ -135,8 +135,8 @@ Each city state type has the following structure:
| Attribute | Type | Default | Notes |
| --------- | ---- | ------- | ----- |
| name | String | Required | |
| friendBonusUniques | List of Strings | empty | List of [unique abilities](../uniques) granted to major civilizations when friends with this city state |
| allyBonusUniques | List of Strings | empty | List of [unique abilities](../uniques) granted to major civilizations when allied to city state |
| friendBonusUniques | List of Strings | empty | List of [unique abilities](../../uniques) granted to major civilizations when friends with this city state |
| allyBonusUniques | List of Strings | empty | List of [unique abilities](../../uniques) granted to major civilizations when allied to city state |
| color | [List of 3× Integer](5-Miscellaneous-JSON-files.md#rgb-colors-list) | [255, 255, 255] | RGB color of text in civilopedia |
## Policies.json
@ -158,7 +158,7 @@ Each policy branch has the following structure:
| name | String | Required | |
| era | String | Required | Unlocking era as defined in [Eras.json](5-Miscellaneous-JSON-files.md#Eras.json) |
| priorities | Object | none | Priorities for each victory type, [see here](#branch-priorities)
| uniques | List | empty | List of [unique abilities](../uniques) this policy branch grants upon adopting it |
| uniques | List | empty | List of [unique abilities](../../uniques) this policy branch grants upon adopting it |
| policies | List | empty | List of [member policies](#member-policy-structure) and [branch 'finisher'](#branch-finisher-structure) - pay attention to the nesting of {} and [] |
#### Member policy structure
@ -169,14 +169,14 @@ Each policy branch has the following structure:
| row | Integer | Required | Placement in UI, each unit approximately half the icon size |
| column | Integer | Required | Placement in UI, each unit approximately half the icon size |
| requires | List | empty | List of prerequisite policy names |
| uniques | List | empty | List of [unique abilities](../uniques) this policy member grants upon adopting it |
| uniques | List | empty | List of [unique abilities](../../uniques) this policy member grants upon adopting it |
#### Branch finisher structure
| Attribute | Type | Default | Notes |
| --------- | ---- | ------- | ----- |
| name | String | Required | |
| uniques | List | empty | List of [unique abilities](../uniques) this finisher grants upon adopting all the policy members in the branch |
| uniques | List | empty | List of [unique abilities](../../uniques) this finisher grants upon adopting all the policy members in the branch |
### Branch priorities
@ -303,5 +303,5 @@ Each tech column has the following structure:
| cost | Integer | [Column techCost](#column-structure) | The amount of science required to research this tech |
| prerequisites | List of Strings | empty | A list of the names of techs that are prerequisites of this tech. Only direct prerequisites are necessary |
| quote | String | none | A nice story presented to the player when they research this tech |
| uniques | List of Strings | empty | List of [unique abilities](../uniques) this technology grants |
| uniques | List of Strings | empty | List of [unique abilities](../../uniques) this technology grants |
| civilopediaText | List | empty | See [civilopediaText chapter](5-Miscellaneous-JSON-files.md#Civilopedia-text) |

View File

@ -22,11 +22,11 @@ Each terrain entry has the following structure:
| movementCost | Integer | 1 | Base movement cost |
| defenceBonus | Float | 0 | Combat bonus for units being attacked here |
| RGB | [List of 3× Integer](5-Miscellaneous-JSON-files.md#rgb-colors-list) | Gold | RGB color for 'Default' tileset display |
| uniques | List of Strings | empty | List of [unique abilities](../uniques) this terrain has |
| uniques | List of Strings | empty | List of [unique abilities](../../uniques) this terrain has |
| civilopediaText | List | empty | See [civilopediaText chapter](5-Miscellaneous-JSON-files.md#civilopedia-text) |
[^A]: Some names have special meanings. `Grassland` is used as fallback in some cases - e.g. Civilopedia prefers to displays a TerrainFeature on top of it, unless `occursOn` is not empty and does not contain it.
`River` is hardcoded to be used to look up a [Stats](../uniques.md#global-uniques) unique to determine the bonuses an actual River provides (remember, rivers live on the edges not as terrain).
`River` is hardcoded to be used to look up a [Stats](../../uniques.md#global-uniques) unique to determine the bonuses an actual River provides (remember, rivers live on the edges not as terrain).
River should always be a TerrainFeature and have the same uniques the one in the vanilla rulesets has - if you change that, expect surprises.
[^B]: A base ruleset mod is always expected to provide at least one Land and at least one Water terrain. We do not support Land-only or Water-only mods, even if they might be possible to pull off.
@ -48,7 +48,7 @@ Each improvement has the following structure:
| uniqueTo | String | none | The name of the nation this improvement is unique for |
| [`<stats>`](#stats) | Integer | 0 | Per-turn bonus yield for the tile |
| turnsToBuild | Integer | -1 | Number of turns a worker spends building this. If -1, the improvement is unbuildable [^D]. If 0, the improvement is always built in one turn |
| uniques | List of Strings | empty | List of [unique abilities](../uniques) this improvement has |
| uniques | List of Strings | empty | List of [unique abilities](../../uniques) this improvement has |
| shortcutKey | String | none | Keyboard binding. Currently, only a single character is allowed (no function keys or Ctrl combinations) |
| civilopediaText | List | empty | See [civilopediaText chapter](5-Miscellaneous-JSON-files.md#civilopedia-text) |
@ -79,7 +79,7 @@ Each resource has the following structure:
| revealedBy | String | none | The technology name required to see, work and improve this resource |
| improvedBy | List of strings | empty | The improvements required for obtaining this resource. Must be in [TileImprovements.json](#tileimprovementsjson) |
| improvement | String | none | The improvement required to obtain this resource. Must be in [TileImprovements.json](#tileimprovementsjson) (redundant due to `improvedBy`) |
| unique | List of Strings | empty | List of [unique abilities](../uniques) this resource has |
| unique | List of Strings | empty | List of [unique abilities](../../uniques) this resource has |
| civilopediaText | List | empty | See [civilopediaText chapter](5-Miscellaneous-JSON-files.md#civilopedia-text) |
## Ruins.json
@ -95,7 +95,7 @@ Each of the objects in the file represents a single reward you can get from ruin
| name | String | Required | Name of the ruins. Never shown to the user, but they have to be distinct |
| notification | String | Required | Notification added to the user when this reward is chosen. If omitted, an empty notification is shown. Some notifications may have parameters, refer to the table below. |
| weight | Integer (≥0) | 1 | _Relative_ weight this reward is chosen next [^E] |
| uniques | List of Strings | empty | List of [unique abilities](../uniques) that will trigger when entering the ruins. If more than 1 unique is added, the notification will be shown multiple times due to a bug (may be outdated) |
| uniques | List of Strings | empty | List of [unique abilities](../../uniques) that will trigger when entering the ruins. If more than 1 unique is added, the notification will be shown multiple times due to a bug (may be outdated) |
| excludedDifficulties | List of Strings | empty | A list of all difficulties on which this reward may _not_ be awarded |
[^E]: The exact algorithm for choosing a reward is the following:
@ -126,7 +126,7 @@ A few uniques can be added to ancient ruin effects to modify when they can be ea
- "Hidden when religion is disabled"
- "Hidden after a great prophet has been earned"
## [Tileset-specific json](../Creating-a-custom-tileset.md)
## [Tileset-specific json](../../Creating-a-custom-tileset.md)
[Link to original FantasyHex](https://github.com/yairm210/Unciv/blob/master/android/assets/jsons/TileSets/FantasyHex.json)
@ -134,14 +134,14 @@ A mod can define new Tilesets or add to existing ones, namely FantasyHex. There
| Attribute | Type | Default | Notes |
| --------- | ---- | ------- | ----- |
| [useColorAsBaseTerrain](../Creating-a-custom-tileset.md#useColorAsBaseTerrain) | Boolean | false | |
| [useSummaryImages](../Creating-a-custom-tileset.md#useSummaryImages) | Boolean | false | |
| [unexploredTileColor](../Creating-a-custom-tileset.md#unexploredTileColor) | Color | Dark Gray | `{"r":0.25,"g":0.25,"b":0.25,"a":1}` |
| [fogOfWarColor](../Creating-a-custom-tileset.md#fogOfWarColor) | Color | Black | `{"r":0,"g":0,"b":0,"a":1}` |
| [fallbackTileSet](../Creating-a-custom-tileset.md#fallbackTileSet) | String | "FantasyHex" | null to disable |
| [tileScale](../Creating-a-custom-tileset.md#tileScale) | Float | 1.0 | The scale of all tiles. Can be used to increase or decrease the size of every tile |
| [tileScales](../Creating-a-custom-tileset.md#tileScales) | Object | empty | Used by the "Minimal" tileset to scale all its tiles except the base terrain down. Overrides `tileScale` value for specified terrain |
| [ruleVariants](../Creating-a-custom-tileset.md#ruleVariants) | Object | empty | [See here](#layering-images) |
| [useColorAsBaseTerrain](../../Creating-a-custom-tileset.md#useColorAsBaseTerrain) | Boolean | false | |
| [useSummaryImages](../../Creating-a-custom-tileset.md#useSummaryImages) | Boolean | false | |
| [unexploredTileColor](../../Creating-a-custom-tileset.md#unexploredTileColor) | Color | Dark Gray | `{"r":0.25,"g":0.25,"b":0.25,"a":1}` |
| [fogOfWarColor](../../Creating-a-custom-tileset.md#fogOfWarColor) | Color | Black | `{"r":0,"g":0,"b":0,"a":1}` |
| [fallbackTileSet](../../Creating-a-custom-tileset.md#fallbackTileSet) | String | "FantasyHex" | null to disable |
| [tileScale](../../Creating-a-custom-tileset.md#tileScale) | Float | 1.0 | The scale of all tiles. Can be used to increase or decrease the size of every tile |
| [tileScales](../../Creating-a-custom-tileset.md#tileScales) | Object | empty | Used by the "Minimal" tileset to scale all its tiles except the base terrain down. Overrides `tileScale` value for specified terrain |
| [ruleVariants](../../Creating-a-custom-tileset.md#ruleVariants) | Object | empty | [See here](#layering-images) |
### Layering images

View File

@ -27,9 +27,9 @@ Each unit has the following structure:
| uniqueTo | String | none | The nation that this unit is unique to. Must be in [Nations.json](2-Civilization-related-JSON-files.md#nationsjson) |
| hurryCostModifier | Integer | 0 | If this unit is bought for gold, its price is increased by so much percent |
| promotions | List of Strings | empty | A list of all the promotions the unit automatically receives upon being built. Each promotion must be in [UnitPromotions.json](#unitpromotionsjson) |
| uniques | List of Strings | empty | List of [unique abilities](../uniques) this unit has |
| uniques | List of Strings | empty | List of [unique abilities](../../uniques) this unit has |
| replacementTextForUniques | String | none | If provided, this will be displayed instead of the list of uniques. Can be used for better formatting. |
| attackSound | String | none | The sound that is to be played when this unit attacks. For possible values, see [Sounds](../Images-and-Audio.md#sounds)
| attackSound | String | none | The sound that is to be played when this unit attacks. For possible values, see [Sounds](../../Images-and-Audio.md#sounds)
| civilopediaText | List | empty | See [civilopediaText chapter](5-Miscellaneous-JSON-files.md#civilopedia-text) |
## UnitPromotions.json
@ -51,7 +51,7 @@ Each promotion has the following structure:
| column | Integer | Optional | Determines placement order on the promotion picker screen. Name is historical, these coordinates no longer control placement directly. Promotions without coordinates are ensured to be placed last. (…) |
| row | Integer | Optional | … In base mods without any coordinates, promotions without prerequisites are sorted alphabetically and placed top down, the rest of the screen will structure the dependencies logically. If your mod has a "Heal instantly", it is suggested to use row=0 to place it on top |
| unitTypes | List of Strings | empty | The unit types for which this promotion applies as specified in [UnitTypes.json](#unittypesjson) |
| uniques | List of Strings | empty | List of [unique abilities](../uniques.md) this promotion grants to the units |
| uniques | List of Strings | empty | List of [unique abilities](../../uniques.md) this promotion grants to the units |
| civilopediaText | List | empty | See [civilopediaText chapter](5-Miscellaneous-JSON-files.md#civilopedia-text) |
## UnitTypes.json
@ -67,4 +67,4 @@ Each unit type has the following structure:
| --------- | ---- | ------- | ----- |
| name | String | Required | |
| movementType | Enum | Required | The domain through which the unit moves. Allowed values: "Water", "Land", "Air" |
| uniques | List of String | none | List of [unique abilities](../uniques.md) this promotion grants to units of this type |
| uniques | List of String | none | List of [unique abilities](../../uniques.md) this promotion grants to units of this type |

View File

@ -124,7 +124,7 @@ This file is a little different:
- Does not exist in Vanilla ruleset
- Is entirely optional but will be created after downloading a mod
Note that this file controls _declarative mod compatibility_ (Work in progress) - e.g. there's [uniques](../uniques.md#modoptions-uniques) to say your Mod should only or never be used as 'Permanent audiovisual mod'.
Note that this file controls _declarative mod compatibility_ (Work in progress) - e.g. there's [uniques](../../uniques.md#modoptions-uniques) to say your Mod should only or never be used as 'Permanent audiovisual mod'.
Incompatibility filtering works so far between extension and base mods, but feel free to document known extension-to-extension incompatibilities using the same Unique now. Stay tuned!
The file can have the following attributes, not including the values Unciv sets automatically:
@ -132,11 +132,11 @@ The file can have the following attributes, not including the values Unciv sets
| Attribute | Type | | Notes |
| --------- | ---- | ------- | ----- |
| isBaseRuleset | Boolean | false | Replaces vanilla ruleset if true |
| uniques | List | empty | Mod-wide specials, [see here](../uniques.md#modoptions-uniques) |
| techsToRemove | List | empty | List of [Technologies](2-Civilization-related-JSON-files.md#techsjson) or [technologyFilter](../Unique-parameters.md#technologyfilter) to remove (isBaseRuleset=false only) |
| buildingsToRemove | List | empty | List of [Buildings or Wonders](2-Civilization-related-JSON-files.md#buildingsjson) or [buildingFilter](../Unique-parameters.md#buildingfilter) to remove (isBaseRuleset=false only) |
| unitsToRemove | List | empty | List of [Units](4-Unit-related-JSON-files.md#unitsjson) or [unitFilter](../Unique-parameters.md#baseunitfilter) to remove (isBaseRuleset=false only) |
| nationsToRemove | List | empty | List of [Nations](2-Civilization-related-JSON-files.md#nationsjson) or [nationFilter](../Unique-parameters.md#nationfilter) to remove (isBaseRuleset=false only) |
| uniques | List | empty | Mod-wide specials, [see here](../../uniques.md#modoptions-uniques) |
| techsToRemove | List | empty | List of [Technologies](2-Civilization-related-JSON-files.md#techsjson) or [technologyFilter](../../Unique-parameters.md#technologyfilter) to remove (isBaseRuleset=false only) |
| buildingsToRemove | List | empty | List of [Buildings or Wonders](2-Civilization-related-JSON-files.md#buildingsjson) or [buildingFilter](../../Unique-parameters.md#buildingfilter) to remove (isBaseRuleset=false only) |
| unitsToRemove | List | empty | List of [Units](4-Unit-related-JSON-files.md#unitsjson) or [unitFilter](../../Unique-parameters.md#baseunitfilter) to remove (isBaseRuleset=false only) |
| nationsToRemove | List | empty | List of [Nations](2-Civilization-related-JSON-files.md#nationsjson) or [nationFilter](../../Unique-parameters.md#nationfilter) to remove (isBaseRuleset=false only) |
| constants | Object | empty | See [ModConstants](#modconstants) |
The values normally set automatically from github metadata are:
@ -231,7 +231,7 @@ The formula for the gold cost of a unit upgrade is (rounded down to a multiple o
max((`base` + `perProduction` \* (new_unit_cost - old_unit_cost)), 0)
\* (1 + eraNumber \* `eraMultiplier`) \* `civModifier`
) ^ `exponent`
With `civModifier` being the multiplicative aggregate of ["\[relativeAmount\]% Gold cost of upgrading"](../uniques.md#global-uniques) uniques that apply.
With `civModifier` being the multiplicative aggregate of ["\[relativeAmount\]% Gold cost of upgrading"](../../uniques.md#global-uniques) uniques that apply.
## GlobalUniques.json