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

@ -8,12 +8,12 @@ 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 |
| civilopediaText | List | empty | See [civilopediaText chapter](5-Miscellaneous-JSON-files.md#civilopedia-text) |
| 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](../../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 |
@ -56,33 +56,33 @@ 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] |
| 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] |
| 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) |
| startIntroPart1 | String | none | Introductory blurb shown to Player on game start... |
| startIntroPart2 | String | none | ... second paragraph. ___NO___ "TBD"!!! Leave empty to skip that alert. |
| declaringWar | String | none | Another greeting, voice hook supported [^V] |
| attacked | String | none | Another greeting, voice hook supported [^V] |
| defeated | String | none | Another greeting, voice hook supported [^V] |
| introduction | String | none | Another greeting, voice hook supported [^V] |
| neutralHello | String | none | Another greeting, voice hook supported [^V] |
| hateHello | String | none | Another greeting, voice hook supported [^V] |
| tradeRequest | String | none | Another greeting, voice hook supported [^V] |
| innerColor | [List of 3× Integer](5-Miscellaneous-JSON-files.md#rgb-colors-list) | black | RGB color for outer ring of nation icon |
| 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 |
| 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 | -->
| favoredReligion | String | none | The religion major civilization will choose if available when founding a religion. Must be in [Religions.json](#religionsjson) |
| startIntroPart1 | String | none | Introductory blurb shown to Player on game start... |
| startIntroPart2 | String | none | ... second paragraph. ___NO___ "TBD"!!! Leave empty to skip that alert. |
| declaringWar | String | none | Another greeting, voice hook supported [^V] |
| attacked | String | none | Another greeting, voice hook supported [^V] |
| defeated | String | none | Another greeting, voice hook supported [^V] |
| introduction | String | none | Another greeting, voice hook supported [^V] |
| neutralHello | String | none | Another greeting, voice hook supported [^V] |
| hateHello | String | none | Another greeting, voice hook supported [^V] |
| tradeRequest | String | none | Another greeting, voice hook supported [^V] |
| innerColor | [List of 3× Integer](5-Miscellaneous-JSON-files.md#rgb-colors-list) | black | RGB color for outer ring of nation icon |
| 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 |
| 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 | -->
[^S]: A "Coast" preference (_unless_ combined with "Avoid") is translated to a complex test for coastal land tiles, tiles next to Lakes, river tiles or near-river tiles, and such civs are processed first. Other startBias entries are ignored in that case.
Other positive (no "Avoid") startBias are processed next. Multiple positive preferences are treated equally, but get no "fallback".
@ -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