2303 lines
59 KiB
HTML

<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="canonical" href="https://yairm210.github.io/Unciv/Modders/Unique-parameters/">
<link rel="prev" href="../Creating-a-UI-skin/">
<link rel="next" href="../uniques/">
<link rel="icon" href="../../assets/favicon.png">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.6.20">
<title>Unique parameters - Unciv</title>
<link rel="stylesheet" href="../../assets/stylesheets/main.e53b48f4.min.css">
<link rel="stylesheet" href="../../assets/stylesheets/palette.06af60db.min.css">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
<script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
</head>
<body dir="ltr" data-md-color-scheme="default" data-md-color-primary="teal" data-md-color-accent="amber">
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
<a href="#unique-parameters" class="md-skip">
Skip to content
</a>
</div>
<div data-md-component="announce">
</div>
<header class="md-header md-header--shadow" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href="../.." title="Unciv" class="md-header__button md-logo" aria-label="Unciv" data-md-component="logo">
<img src="../../assets/Icon.png" alt="logo">
</a>
<label class="md-header__button md-icon" for="__drawer">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg>
</label>
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<div class="md-header__topic">
<span class="md-ellipsis">
Unciv
</span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
Unique parameters
</span>
</div>
</div>
</div>
<form class="md-header__option" data-md-component="palette">
<input class="md-option" data-md-color-media="" data-md-color-scheme="default" data-md-color-primary="teal" data-md-color-accent="amber" aria-label="Switch to dark mode" type="radio" name="__palette" id="__palette_0">
<label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_1" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 2a7 7 0 0 0-7 7c0 2.38 1.19 4.47 3 5.74V17a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1v-2.26c1.81-1.27 3-3.36 3-5.74a7 7 0 0 0-7-7M9 21a1 1 0 0 0 1 1h4a1 1 0 0 0 1-1v-1H9z"/></svg>
</label>
<input class="md-option" data-md-color-media="" data-md-color-scheme="slate" data-md-color-primary="teal" data-md-color-accent="amber" aria-label="Switch to light mode" type="radio" name="__palette" id="__palette_1">
<label class="md-header__button md-icon" title="Switch to light mode" for="__palette_0" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 2a7 7 0 0 1 7 7c0 2.38-1.19 4.47-3 5.74V17a1 1 0 0 1-1 1H9a1 1 0 0 1-1-1v-2.26C6.19 13.47 5 11.38 5 9a7 7 0 0 1 7-7M9 21v-1h6v1a1 1 0 0 1-1 1h-4a1 1 0 0 1-1-1m3-17a5 5 0 0 0-5 5c0 2.05 1.23 3.81 3 4.58V16h4v-2.42c1.77-.77 3-2.53 3-4.58a5 5 0 0 0-5-5"/></svg>
</label>
</form>
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
<label class="md-header__button md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
</label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
<label class="md-search__icon md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
</label>
<nav class="md-search__options" aria-label="Search">
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
</button>
</nav>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
<div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta">
Initializing search
</div>
<ol class="md-search-result__list" role="presentation"></ol>
</div>
</div>
</div>
</div>
</div>
<div class="md-header__source">
<a href="https://github.com/yairm210/unciv" title="Go to repository" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 7.0.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg>
</div>
<div class="md-source__repository">
yairm210/unciv
</div>
</a>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<main class="md-main" data-md-component="main">
<div class="md-main__inner md-grid">
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="../.." title="Unciv" class="md-nav__button md-logo" aria-label="Unciv" data-md-component="logo">
<img src="../../assets/Icon.png" alt="logo">
</a>
Unciv
</label>
<div class="md-nav__source">
<a href="https://github.com/yairm210/unciv" title="Go to repository" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 7.0.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg>
</div>
<div class="md-source__repository">
yairm210/unciv
</div>
</a>
</div>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../.." class="md-nav__link">
<span class="md-ellipsis">
Welcome to Unciv!
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../Credits/" class="md-nav__link">
<span class="md-ellipsis">
Credits
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../Guiding-Principles/" class="md-nav__link">
<span class="md-ellipsis">
Guiding Principles
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../Privacy-Policy/" class="md-nav__link">
<span class="md-ellipsis">
Privacy Policy
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" >
<label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
<span class="md-ellipsis">
Developers
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_5">
<span class="md-nav__icon md-icon"></span>
Developers
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../Developers/Building-Locally/" class="md-nav__link">
<span class="md-ellipsis">
Building Locally
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../Developers/Coding-standards/" class="md-nav__link">
<span class="md-ellipsis">
Coding standards
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../Developers/From-code-to-deployment/" class="md-nav__link">
<span class="md-ellipsis">
From code to deployment
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../Developers/Game-Making-Tips/" class="md-nav__link">
<span class="md-ellipsis">
Game Making Tips
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../Developers/Map-rendering/" class="md-nav__link">
<span class="md-ellipsis">
Map rendering
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../Developers/Project-structure-and-major-classes/" class="md-nav__link">
<span class="md-ellipsis">
Project structure
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../Developers/Saved-games-and-transients/" class="md-nav__link">
<span class="md-ellipsis">
Saved games and transients
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../Developers/Testing-Android-Builds/" class="md-nav__link">
<span class="md-ellipsis">
Building for and testing on Android
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../Developers/Translations%2C-mods%2C-and-modding-freedom-in-Open-Source/" class="md-nav__link">
<span class="md-ellipsis">
Translations, mods, and modding freedom in Open Source
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../Developers/UI-development/" class="md-nav__link">
<span class="md-ellipsis">
UI Development
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../Developers/Unique-replacement-process/" class="md-nav__link">
<span class="md-ellipsis">
Unique replacement process
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../Developers/Uniques/" class="md-nav__link">
<span class="md-ellipsis">
Uniques
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6" checked>
<label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
<span class="md-ellipsis">
Modders
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_6">
<span class="md-nav__icon md-icon"></span>
Modders
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../Mods/" class="md-nav__link">
<span class="md-ellipsis">
Introduction to Mods
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../Making-a-new-Civilization/" class="md-nav__link">
<span class="md-ellipsis">
'My first mod' - Making a new Civilization
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../Images-and-Audio/" class="md-nav__link">
<span class="md-ellipsis">
Images and Audio
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6_4" >
<label class="md-nav__link" for="__nav_6_4" id="__nav_6_4_label" tabindex="0">
<span class="md-ellipsis">
Mod file structure
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_6_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_6_4">
<span class="md-nav__icon md-icon"></span>
Mod file structure
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../Mod-file-structure/1-Overview/" class="md-nav__link">
<span class="md-ellipsis">
Mod file structure Overview
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../Mod-file-structure/2-Civilization-related-JSON-files/" class="md-nav__link">
<span class="md-ellipsis">
Civilization-related JSON files
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../Mod-file-structure/3-Map-related-JSON-files/" class="md-nav__link">
<span class="md-ellipsis">
Map-related JSON files
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../Mod-file-structure/4-Unit-related-JSON-files/" class="md-nav__link">
<span class="md-ellipsis">
Unit-related JSON files
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../Mod-file-structure/5-Miscellaneous-JSON-files/" class="md-nav__link">
<span class="md-ellipsis">
Miscellaneous JSON files
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6_5" >
<label class="md-nav__link" for="__nav_6_5" id="__nav_6_5_label" tabindex="0">
<span class="md-ellipsis">
Special Mods
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_6_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_6_5">
<span class="md-nav__icon md-icon"></span>
Special Mods
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../Creating-a-custom-tileset/" class="md-nav__link">
<span class="md-ellipsis">
Creating a custom tileset
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../Creating-a-UI-skin/" class="md-nav__link">
<span class="md-ellipsis">
Creating a UI skin
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--active">
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
<label class="md-nav__link md-nav__link--active" for="__toc">
<span class="md-ellipsis">
Unique parameters
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<a href="./" class="md-nav__link md-nav__link--active">
<span class="md-ellipsis">
Unique parameters
</span>
</a>
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#general-filter-rules" class="md-nav__link">
<span class="md-ellipsis">
General Filter Rules
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#civfilter" class="md-nav__link">
<span class="md-ellipsis">
civFilter
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#nationfilter" class="md-nav__link">
<span class="md-ellipsis">
nationFilter
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#baseunitfilter" class="md-nav__link">
<span class="md-ellipsis">
baseUnitFilter
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#mapunitfilter" class="md-nav__link">
<span class="md-ellipsis">
mapUnitFilter
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#buildingfilter" class="md-nav__link">
<span class="md-ellipsis">
buildingFilter
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#cityfilter" class="md-nav__link">
<span class="md-ellipsis">
cityFilter
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#improvementfilter" class="md-nav__link">
<span class="md-ellipsis">
improvementFilter
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#populationfilter" class="md-nav__link">
<span class="md-ellipsis">
populationFilter
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#religionfilter" class="md-nav__link">
<span class="md-ellipsis">
religionFilter
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#policyfilter" class="md-nav__link">
<span class="md-ellipsis">
policyFilter
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#combatantfilter" class="md-nav__link">
<span class="md-ellipsis">
combatantFilter
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#regiontype" class="md-nav__link">
<span class="md-ellipsis">
regionType
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#simpleterrain" class="md-nav__link">
<span class="md-ellipsis">
simpleTerrain
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#stats" class="md-nav__link">
<span class="md-ellipsis">
stats
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#resourcefilter" class="md-nav__link">
<span class="md-ellipsis">
resourceFilter
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#stockpiledresource" class="md-nav__link">
<span class="md-ellipsis">
stockpiledResource
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#stockpile" class="md-nav__link">
<span class="md-ellipsis">
Stockpile
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#technologyfilter" class="md-nav__link">
<span class="md-ellipsis">
technologyFilter
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#terrainfilter" class="md-nav__link">
<span class="md-ellipsis">
terrainFilter
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#tilefilter" class="md-nav__link">
<span class="md-ellipsis">
tileFilter
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#terrainquality" class="md-nav__link">
<span class="md-ellipsis">
terrainQuality
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#countable" class="md-nav__link">
<span class="md-ellipsis">
countable
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../uniques/" class="md-nav__link">
<span class="md-ellipsis">
Uniques
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../Type-checking/" class="md-nav__link">
<span class="md-ellipsis">
Type checking
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../Scenarios/" class="md-nav__link">
<span class="md-ellipsis">
Scenarios
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../Autoupdates/" class="md-nav__link">
<span class="md-ellipsis">
Autoupdates
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_7" >
<label class="md-nav__link" for="__nav_7" id="__nav_7_label" tabindex="0">
<span class="md-ellipsis">
Other
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_7_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_7">
<span class="md-nav__icon md-icon"></span>
Other
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../Other/Force-rating-calculation/" class="md-nav__link">
<span class="md-ellipsis">
Force rating calculation
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../Other/Installing-on-macOS/" class="md-nav__link">
<span class="md-ellipsis">
Installing on MacOS
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../Other/Intentional-departures-from-Civ-V/" class="md-nav__link">
<span class="md-ellipsis">
Intentional departures from Civ V
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../Other/Multiplayer/" class="md-nav__link">
<span class="md-ellipsis">
Multiplayer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../Other/Regions/" class="md-nav__link">
<span class="md-ellipsis">
Regions
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../Other/Simulations/" class="md-nav__link">
<span class="md-ellipsis">
Simulations
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../Other/Translating/" class="md-nav__link">
<span class="md-ellipsis">
Translating
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#general-filter-rules" class="md-nav__link">
<span class="md-ellipsis">
General Filter Rules
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#civfilter" class="md-nav__link">
<span class="md-ellipsis">
civFilter
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#nationfilter" class="md-nav__link">
<span class="md-ellipsis">
nationFilter
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#baseunitfilter" class="md-nav__link">
<span class="md-ellipsis">
baseUnitFilter
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#mapunitfilter" class="md-nav__link">
<span class="md-ellipsis">
mapUnitFilter
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#buildingfilter" class="md-nav__link">
<span class="md-ellipsis">
buildingFilter
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#cityfilter" class="md-nav__link">
<span class="md-ellipsis">
cityFilter
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#improvementfilter" class="md-nav__link">
<span class="md-ellipsis">
improvementFilter
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#populationfilter" class="md-nav__link">
<span class="md-ellipsis">
populationFilter
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#religionfilter" class="md-nav__link">
<span class="md-ellipsis">
religionFilter
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#policyfilter" class="md-nav__link">
<span class="md-ellipsis">
policyFilter
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#combatantfilter" class="md-nav__link">
<span class="md-ellipsis">
combatantFilter
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#regiontype" class="md-nav__link">
<span class="md-ellipsis">
regionType
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#simpleterrain" class="md-nav__link">
<span class="md-ellipsis">
simpleTerrain
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#stats" class="md-nav__link">
<span class="md-ellipsis">
stats
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#resourcefilter" class="md-nav__link">
<span class="md-ellipsis">
resourceFilter
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#stockpiledresource" class="md-nav__link">
<span class="md-ellipsis">
stockpiledResource
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#stockpile" class="md-nav__link">
<span class="md-ellipsis">
Stockpile
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#technologyfilter" class="md-nav__link">
<span class="md-ellipsis">
technologyFilter
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#terrainfilter" class="md-nav__link">
<span class="md-ellipsis">
terrainFilter
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#tilefilter" class="md-nav__link">
<span class="md-ellipsis">
tileFilter
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#terrainquality" class="md-nav__link">
<span class="md-ellipsis">
terrainQuality
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#countable" class="md-nav__link">
<span class="md-ellipsis">
countable
</span>
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<h1 id="unique-parameters">Unique parameters</h1>
<p>This page contains an overview of all different parameters used in uniques and what values can be filled into them.
Each of the different parameter types is described below, including all possible values for them.
These are split into two categories:</p>
<ul>
<li>descriptions: e.g., "the name of any unit"</li>
<li><code>Text that looks like this</code>. This last one must be used exactly the same</li>
</ul>
<p>Note that all of these are case-sensitive!</p>
<h2 id="general-filter-rules">General Filter Rules</h2>
<p>All filters except for <code>populationFilter</code> and <code>resourceFilter</code> accept multiple values in the format: <code>{A} {B} {C}</code> etc, meaning "the object must match ALL of these filters"</p>
<blockquote>
<p>Example: <code>[{Military} {Water}] units</code>, <code>[{Wounded} {Armor}] units</code>, etc.</p>
</blockquote>
<p>No space or other text is allowed between the <code>[</code> and the first <code>{</code>, nor between the last <code>}</code> and the ending <code>]</code>. The space in <code>} {</code>, however, is mandatory.</p>
<p>All filters accept <code>non-[filter]</code> as a possible value</p>
<blockquote>
<p>Example: <code>[non-[Wounded]] units</code></p>
</blockquote>
<p>These can be combined by nesting, with the exception that an "ALL" filter cannot contain another "ALL" filter, even with a NON-filter in between.</p>
<blockquote>
<p>Example: <code>[{non-[Wounded]} {Armor}] units</code> means unit is type Armor and at full health.
Example: <code>[non-[{Wounded} {Armor}]] units</code> means unit is neither wounded nor an Armor one.</p>
</blockquote>
<p><code>[{non-[{Wounded} {Armor}]} {Embarked}] units</code> WILL FAIL because the game will treat both "} {" at the same time and see <code>non-[{Wounded</code> and <code>Armor}]</code>, both invalid.</p>
<p>Display of complex filters in Civilopedia may become unreadable. If so, consider hiding that unique and provide a better wording using the <code>Comment []</code> unique separately.</p>
<h2 id="civfilter">civFilter</h2>
<p>Allows filtering for specific civs.</p>
<p>Allowed values:</p>
<ul>
<li><code>Human player</code></li>
<li><code>AI player</code></li>
<li><a href="#nationfilter">nationFilter</a></li>
</ul>
<h2 id="nationfilter">nationFilter</h2>
<p>Allows filtering for specific nations. Used by <a href="../Mod-file-structure/5-Miscellaneous-JSON-files/#modoptionsjson">ModOptions.nationsToRemove</a>.</p>
<p>Allowed values:</p>
<ul>
<li><code>All</code>, <code>all</code></li>
<li><code>City-States</code>, <code>City-State</code></li>
<li><code>Major</code></li>
<li>Nation name</li>
<li>A unique a Nation has (verbatim, no placeholders)</li>
</ul>
<h2 id="baseunitfilter">baseUnitFilter</h2>
<p>Unit filters can be divided up into two parts: <code>baseUnitFilter</code>s and <code>mapUnitFilter</code>s.
The former is tested against the unit as it appears in the json.
This means it doesn't have an owning civ or tile it stands on, just its base properties.
The latter is tested against the unit as it appears on the map, including its nation, tile, health and all other properties.</p>
<p>Allowed values:</p>
<ul>
<li>unit name</li>
<li>unit type - e.g. Melee, Ranged, WaterSubmarine, etc.</li>
<li><code>Land</code>, <code>Water</code>, <code>Air</code></li>
<li><code>land units</code>, <code>water units</code>, <code>air units</code></li>
<li><code>non-air</code> for non-air non-missile units</li>
<li><code>Military</code>, <code>military units</code></li>
<li><code>Civilian</code>, <code>civilian units</code></li>
<li><code>All</code>, <code>all</code></li>
<li><code>Melee</code></li>
<li><code>Ranged</code></li>
<li><code>Nuclear Weapon</code></li>
<li><code>Great Person</code></li>
<li><code>Embarked</code></li>
<li>Matching <a href="#technologyfilter">technologyfilter</a> for the tech this unit requires - e.g. <code>Modern Era</code></li>
<li>Any exact unique the unit has</li>
<li>Any exact unique the unit type has</li>
<li>Any combination of the above (will match only if all match). The format is <code>{filter1} {filter2}</code> and can match any number of filters. For example: <code>[{Modern era} {Land}]</code> units</li>
</ul>
<h2 id="mapunitfilter">mapUnitFilter</h2>
<p>This indicates a unit as placed on the map. Compare with <code>baseUnitFilter</code>.</p>
<p>Allowed values:</p>
<ul>
<li>Any matching <a href="#baseunitfilter">baseUnitFilter</a></li>
<li>Any <a href="#civfilter">civFilter</a> matching the owner</li>
<li>Any unique the unit has - also includes uniques not caught by the <a href="#baseunitfilter">baseUnitFilter</a>, for example promotions</li>
<li>Any promotion name, or an exact unique a promotion has</li>
<li><code>Wounded</code></li>
<li><code>Embarked</code></li>
<li><code>City-State</code></li>
<li><code>Barbarians</code>, <code>Barbarian</code></li>
<li><code>Non-City</code></li>
<li>Again, any combination of the above is also allowed, e.g. <code>[{Wounded} {Water}]</code> units.</li>
</ul>
<p>You can check this in-game using the console with the <code>unit checkfilter &lt;filter&gt;</code> command</p>
<h2 id="buildingfilter">buildingFilter</h2>
<p>Allows to only activate a unique for certain buildings.</p>
<p>Allowed values:</p>
<ul>
<li><code>All</code>, <code>all</code></li>
<li><code>Buildings</code>, <code>Building</code></li>
<li><code>Wonder</code>, <code>Wonders</code></li>
<li><code>National Wonder</code>, <code>National</code></li>
<li><code>World Wonder</code>, <code>World</code> -- All wonders that are not national wonders</li>
<li>building name</li>
<li>The name of the building it replaces (so for example uniques for libraries will apply to paper makers as well)</li>
<li>Matching <a href="#technologyfilter">technologyfilter</a> for the tech this building requires - e.g. Modern Era</li>
<li>An exact unique the building has (e.g.: <code>spaceship part</code>)</li>
<li><code>Culture</code>, <code>Gold</code>, etc. if the building is <code>stat-related</code> for that stat. Stat-related buildings are defined as one of the following:<ul>
<li>Provides that stat directly (e.g. +1 Culture)</li>
<li>Provides a percentage bonus for that stat (e.g. +10% Production)</li>
<li>Provides that stat as a bonus for resources (e.g. +1 Food from every Wheat)</li>
<li>Provides that stat per some amount of population (e.g. +1 Science for every 2 population [cityFilter])</li>
</ul>
</li>
<li>Any combination of the above (will match only if all match). The format is <code>{filter1} {filter2}</code> up to any number of filters. For example <code>[{Ancient era} {Food}]</code> buildings.</li>
</ul>
<h2 id="cityfilter">cityFilter</h2>
<p>cityFilters allow us to choose the range of cities affected by this unique:</p>
<ul>
<li><code>in this city</code></li>
<li><code>in all cities</code>, <code>All</code>, <code>all</code> - Generally applies to all cities owned by the relevant civ</li>
<li><code>in your cities</code>, <code>Your</code></li>
<li><code>in all coastal cities</code>, <code>Coastal</code></li>
<li><code>in capital</code>, <code>Capital</code></li>
<li><code>in all non-occupied cities</code>, <code>Non-occupied</code> - all cities that are not puppets and don't have extra unhappiness from being recently conquered</li>
<li><code>in all cities with a world wonder</code></li>
<li><code>in all cities connected to capital</code></li>
<li><code>in all cities with a garrison</code>, <code>Garrisoned</code></li>
<li><code>in non-enemy foreign cities</code> - In all cities owned by civs other than you that you are not at war with</li>
<li><code>in enemy cities</code>, <code>Enemy</code></li>
<li><code>in foreign cities</code>, <code>Foreign</code></li>
<li><code>in annexed cities</code>, <code>Annexed</code></li>
<li><code>in puppeted cities</code>, <code>Puppeted</code></li>
<li><code>in resisting cities</code>, <code>Resisting</code></li>
<li><code>in cities being razed</code>, <code>Razing</code></li>
<li><code>in holy cities</code>, <code>Holy</code></li>
<li><code>in City-State cities</code></li>
<li><code>in cities following this religion</code> - Should only be used in pantheon/follower uniques for religions</li>
<li><code>in cities following our religion</code></li>
<li><code>in all cities in which the majority religion is a major religion</code></li>
<li><code>in all cities in which the majority religion is an enhanced religion</code></li>
<li>[civFilter]</li>
</ul>
<p>You can check this in-game using the console with the <code>city checkfilter &lt;filter&gt;</code> command</p>
<h2 id="improvementfilter">improvementFilter</h2>
<p>For filtering a specific improvement.</p>
<p>Allowed values:</p>
<ul>
<li>improvement name</li>
<li>An exact unique the improvement has (e.g.: <code>spaceship improvement</code>)</li>
<li><code>Improvement</code></li>
<li><code>All</code>, <code>all</code></li>
<li><code>Great Improvement</code>, <code>Great</code></li>
<li><code>All Road</code> - for Roads &amp; Railroads</li>
</ul>
<h2 id="populationfilter">populationFilter</h2>
<p>A filter determining a part of the population of a city.</p>
<p>Allowed values:</p>
<ul>
<li><code>Population</code></li>
<li><code>Specialists</code></li>
<li><code>Unemployed</code></li>
<li><code>Followers of the Majority Religion</code> or <code>Followers of this Religion</code>, both of which only apply when this religion is the majority religion in that city</li>
<li>Specialist names</li>
</ul>
<h2 id="religionfilter">religionFilter</h2>
<p>For filtering specific relgions</p>
<ul>
<li><code>any</code></li>
<li><code>major</code></li>
<li><code>enhanced</code></li>
<li><code>your</code></li>
<li><code>foriegn</code></li>
<li><code>enemy</code></li>
<li>The name of a relgion symbol</li>
<li>The name of a belief</li>
<li>A unique of a belief the religion has</li>
</ul>
<h2 id="policyfilter">policyFilter</h2>
<p>Allowed values:</p>
<ul>
<li><code>All</code>, <code>all</code></li>
<li><code>[policyBranchName] branch</code></li>
<li>The name of the policy</li>
<li>A unique the Policy has (verbatim, no placeholders)</li>
</ul>
<h2 id="combatantfilter">combatantFilter</h2>
<p>Allowed values:</p>
<ul>
<li><a href="#mapunitfilter">mapUnitFilter</a>, for unit combatants</li>
<li><code>City</code>, <code>All</code>, or <a href="#civfilter">civFilter</a>, for city combatants</li>
</ul>
<p>Since mapUnitFilter contains civFilter, that means civFilter can be applied to combatantFilter for both units and cities.</p>
<h2 id="regiontype">regionType</h2>
<p>Used for dividing the world into regions in each of which a single player is placed at the start of the game.
Allowed values are <code>Hybrid</code> and the name of any terrain that has one of the following two uniques:</p>
<ul>
<li><code>A Region is formed with at least [amount]% [simpleTerrain] tiles, with priority [amount]</code></li>
<li><code>A Region is formed with at least [amount]% [simpleTerrain] tiles and [simpleTerrain] tiles, with priority [amount]</code></li>
</ul>
<h2 id="simpleterrain">simpleTerrain</h2>
<p>Used by NaturalWonderGenerator to place natural wonders</p>
<p>Allowed values:</p>
<ul>
<li><code>Land</code></li>
<li><code>Water</code></li>
<li><code>Elevated</code></li>
<li>The name of any terrain</li>
</ul>
<h2 id="stats">stats</h2>
<p>This indicates a text comprised of specific stats and is slightly more complex.</p>
<p>Each stats is comprised of several stat changes, each in the form of <code>+{amount} {stat}</code>,
where 'stat' is one of the seven major stats
(eg <code>Production</code>, <code>Food</code>, <code>Gold</code>, <code>Science</code>, <code>Culture</code>, <code>Happiness</code> and <code>Faith</code>).
For example: <code>+1 Science</code>.</p>
<p>These can be strung together with ", " between them, for example: <code>+2 Production, +3 Food</code>.</p>
<h2 id="resourcefilter">resourceFilter</h2>
<p>Allowed values:</p>
<ul>
<li>Resource name</li>
<li><code>any</code></li>
<li><code>All</code>, <code>all</code></li>
<li>Resource type: <code>Strategic</code>, <code>Luxury</code>, <code>Bonus</code></li>
<li>Stat provided by the resource when improved (e.g. <code>Food</code>)</li>
</ul>
<h2 id="stockpiledresource">stockpiledResource</h2>
<p>This indicates a text that corresponds to a custom Stockpile Resource.</p>
<p>These are global civilization resources that act similar to the main Civ-wide resources like <code>Gold</code> and <code>Faith</code>.
You can generate them and consume them. And actions that would consume them are blocked if you
don't have enough left in stock.</p>
<p>To use, you need to first define a TileResources with the "Stockpiled" Unique. Then you can reference
them in other Uniques.</p>
<h2 id="stockpile">Stockpile</h2>
<p>Something that can be added to a civ</p>
<p>Allowed values:</p>
<ul>
<li>stockpiled resource (see above)</li>
<li>Stat name - for global stats, not city stats</li>
<li><code>Stored Food</code> (for cities)</li>
<li><code>Golden Age points</code></li>
</ul>
<h2 id="technologyfilter">technologyFilter</h2>
<p>At the moment only implemented for <a href="../Mod-file-structure/5-Miscellaneous-JSON-files/#modoptionsjson">ModOptions.techsToRemove</a>.</p>
<p>Allowed values:</p>
<ul>
<li><code>All</code>, <code>all</code></li>
<li>The name of an Era</li>
<li>The name of a Technology</li>
<li>A unique a Technology has (verbatim, no placeholders)</li>
</ul>
<h2 id="terrainfilter">terrainFilter</h2>
<p>This indicates the terrain on a single tile.</p>
<p>Allowed values:</p>
<ul>
<li>A filter names a specific json attribute (by name):<ul>
<li>Base terrain</li>
<li>Terrain features</li>
<li>Base terrain uniques</li>
<li>Terrain feature uniques</li>
<li>Resource</li>
<li>Natural wonder</li>
<li>A <a href="#nationfilter">nationFilter</a> matching the tile owner</li>
</ul>
</li>
<li>Or the filter is a constant string choosing a derived test:<ul>
<li><code>All</code>, <code>all</code></li>
<li><code>Terrain</code></li>
<li><code>Water</code>, <code>Land</code></li>
<li><code>Coastal</code> (at least one direct neighbor is a coast)</li>
<li><code>River</code> (as in all 'river on tile' contexts, it means 'adjacent to a river on at least one side')</li>
<li><code>Open terrain</code>, <code>Rough terrain</code> (note all terrain not having the rough unique is counted as open)</li>
<li><code>Friendly Land</code>, <code>Friendly</code> - land belonging to you, or other civs with open borders to you</li>
<li><code>Foreign Land</code> - any land that isn't friendly land</li>
<li><code>Enemy Land</code>, <code>Enemy</code> - any land belonging to a civ you are at war with</li>
<li><code>your</code> - land belonging to you</li>
<li><code>Unowned</code> - land that is not owned by any civ</li>
<li><code>Water resource</code>, <code>Strategic resource</code>, <code>Luxury resource</code>, <code>Bonus resource</code>, <code>resource</code></li>
<li><code>Natural Wonder</code> (as opposed to above which means testing for a specific Natural Wonder by name, this tests for any of them)</li>
<li><code>Featureless</code></li>
<li><code>Fresh Water</code></li>
<li><code>non-fresh water</code></li>
<li><code>Impassible</code></li>
</ul>
</li>
</ul>
<p>Please note all of these are <em>case-sensitive</em>.</p>
<p>Note: Resource filters depend on whether a viewing civ is known in the context where the filter runs. Water and specific tests require a viewing civ, and if the resource needs a tech to be visible, that tech to be researched by the viewing civ. The other resource category tests can succeed without a known viewing civ only for resources not requiring any tech. So - test your mod!</p>
<p>So for instance, the unique "[stats] from [tileFilter] tiles [cityFilter]" can match several cases:</p>
<h2 id="tilefilter">tileFilter</h2>
<p>Allowed values:</p>
<ul>
<li><a href="#terrainfilter">terrainFilter</a> for this tile</li>
<li><a href="#improvementfilter">improvementFilter</a> for this tile</li>
<li><a href="#civfilter">civFilter</a> of the civilization who owns this tile</li>
<li><code>Improvement</code> or <code>improved</code> for tiles with any improvements</li>
<li><code>unimproved</code> for tiles with no improvement</li>
<li><code>pillaged</code> for pillaged tiles</li>
<li><code>worked</code> for tiles worked by a city</li>
</ul>
<p>You can check this in-game using the console with the <code>tile checkfilter &lt;filter&gt;</code> command</p>
<h2 id="terrainquality">terrainQuality</h2>
<p>Used to indicate for what use the terrain should be viewed when dividing the world into regions, in each of which a single player is placed at the start of the game.</p>
<p>Allowed values:</p>
<ul>
<li><code>Undesirable</code></li>
<li><code>Food</code></li>
<li><code>Desirable</code></li>
<li><code>Production</code></li>
</ul>
<h2 id="countable">countable</h2>
<p>Indicates <em>something that can be counted</em>, used both for comparisons and for multiplying uniques</p>
<p>Allowed values:</p>
<ul>
<li>Integer constant - any positive or negative integer number<ul>
<li>Example: <code>Only available &lt;when number of [123] is more than [0]&gt;</code></li>
</ul>
</li>
<li><code>turns</code> - Number of turns played<ul>
<li>Example: <code>Only available &lt;when number of [turns] is more than [0]&gt;</code></li>
<li>Always starts at zero irrespective of game speed or start era</li>
</ul>
</li>
<li><code>year</code> - The current year<ul>
<li>Example: <code>Only available &lt;when number of [year] is more than [0]&gt;</code></li>
<li>Depends on game speed or start era, negative for years BC</li>
</ul>
</li>
<li><code>Cities</code> - The number of cities the relevant Civilization owns<ul>
<li>Example: <code>Only available &lt;when number of [Cities] is more than [0]&gt;</code></li>
</ul>
</li>
<li><code>Units</code> - The number of units the relevant Civilization owns<ul>
<li>Example: <code>Only available &lt;when number of [Units] is more than [0]&gt;</code></li>
</ul>
</li>
<li>Stat name (<code>Production</code>, <code>Food</code>, <code>Gold</code>, <code>Science</code>, <code>Culture</code>, <code>Happiness</code> or <code>Faith</code>)<ul>
<li>Example: <code>Only available &lt;when number of [Science] is more than [0]&gt;</code></li>
<li>Gets the stat <em>reserve</em>, not the amount per turn (can be city stats or civilization stats, depending on where the unique is used)</li>
</ul>
</li>
<li>Stat/Resource Per Turn<ul>
<li>Example: <code>Only available &lt;when number of [[Culture] Per Turn] is more than [0]&gt;</code></li>
<li>Gets the amount of a stat or resource the civilization gains per turn</li>
</ul>
</li>
<li><code>Completed Policy branches</code><ul>
<li>Example: <code>Only available &lt;when number of [Completed Policy branches] is more than [0]&gt;</code></li>
</ul>
</li>
<li><code>[cityFilter] Cities</code><ul>
<li>Example: <code>Only available &lt;when number of [[in all cities] Cities] is more than [0]&gt;</code></li>
</ul>
</li>
<li><code>[mapUnitFilter] Units</code><ul>
<li>Example: <code>Only available &lt;when number of [[Wounded] Units] is more than [0]&gt;</code></li>
</ul>
</li>
<li><code>[buildingFilter] Buildings</code><ul>
<li>Example: <code>Only available &lt;when number of [[Culture] Buildings] is more than [0]&gt;</code></li>
</ul>
</li>
<li><code>Adopted [policyFilter] Policies</code><ul>
<li>Example: <code>Only available &lt;when number of [Adopted [Oligarchy] Policies] is more than [0]&gt;</code></li>
</ul>
</li>
<li><code>Remaining [civFilter] Civilizations</code><ul>
<li>Example: <code>Only available &lt;when number of [Remaining [City-States] Civilizations] is more than [0]&gt;</code></li>
</ul>
</li>
<li><code>Owned [tileFilter] Tiles</code><ul>
<li>Example: <code>Only available &lt;when number of [Owned [Farm] Tiles] is more than [0]&gt;</code></li>
</ul>
</li>
<li><code>[tileFilter] Tiles</code><ul>
<li>Example: <code>Only available &lt;when number of [[Desert] Tiles] is more than [0]&gt;</code></li>
</ul>
</li>
<li>Resource name - From <a href="3-Map-related-JSON-files.md#tileresourcesjson">TileResources.json</a><ul>
<li>Example: <code>Only available &lt;when number of [Iron] is more than [0]&gt;</code></li>
<li>Can be city stats or civilization stats, depending on where the unique is used</li>
<li>For example: If a unique is placed on a building, then the retrieved resources will be of the city. If placed on a policy, they will be of the civilization.</li>
<li>This can make a difference for e.g. local resources, which are counted per city.</li>
</ul>
</li>
<li><code>Era number</code> - Number of the era the current player is in<ul>
<li>Example: <code>Only available &lt;when number of [Era number] is more than [0]&gt;</code></li>
<li>Zero-based index of the Era in Eras.json.</li>
</ul>
</li>
<li><code>Speed modifier for [stat]</code> - A game speed modifier for a specific Stat, as percentage<ul>
<li>Example: <code>Only available &lt;when number of [Speed modifier for [Culture]] is more than [0]&gt;</code></li>
<li>Chooses an appropriate field from the Speeds.json entry the player has chosen.</li>
<li>It is returned multiplied by 100.</li>
<li>Food and Happiness return the generic <code>modifier</code> field.</li>
<li>Other fields like <code>goldGiftModifier</code> or <code>barbarianModifier</code> are not accessible with this Countable.</li>
</ul>
</li>
<li>Evaluate expressions!<ul>
<li>Example: <code>Only available &lt;when number of [[Iron] + 2] is more than [0]&gt;</code></li>
<li>Expressions support arbitrary math operations, and can include other countables, when surrounded by square brackets.</li>
<li>For example, since <code>Cities</code> is a countable, and <code>[Melee] units</code> is a countable, you can have something like: <code>([[Melee] units] + 1) / [Cities]</code> (the whitespace is optional but helps readability)</li>
<li>Since on translation, the brackets are removed, the expression will be displayed as <code>(Melee units + 1) / Cities</code></li>
<li>Supported operations between 2 values are: +, -, *, /, %, ^</li>
<li>Supported operations on 1 value are: - (negation), √ (square root), abs (absolute value - turns negative into positive), sqrt (square root), floor (round down), ceil (round up)</li>
</ul>
</li>
</ul>
</article>
</div>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div>
</main>
<footer class="md-footer">
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-copyright">
Made with
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
Material for MkDocs
</a>
</div>
</div>
</div>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<script id="__config" type="application/json">{"base": "../..", "features": [], "search": "../../assets/javascripts/workers/search.973d3a69.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
<script src="../../assets/javascripts/bundle.f55a23d4.min.js"></script>
</body>
</html>