Skip to content

AI restrictions via Global uniques (with AI civFilter)#15236

Open
Fanfblrik wants to merge 4 commits into
yairm210:masterfrom
Fanfblrik:feature/no-ai-settlers
Open

AI restrictions via Global uniques (with AI civFilter)#15236
Fanfblrik wants to merge 4 commits into
yairm210:masterfrom
Fanfblrik:feature/no-ai-settlers

Conversation

@Fanfblrik

Copy link
Copy Markdown
Contributor

Summary

Reworks AI restriction uniques per review: they are now Global uniques (typically used with <for [AI player] Civilizations>), not ModOptions toggles.

Existing uniques (no new types)

Use in GlobalUniques.json:

  • Cannot build [Settler] units <for [AI player] Civilizations>
  • Cannot build [World Wonder] buildings <for [AI player] Civilizations>

New Global uniques

Unique Typical usage
Always accepts white peace <for [AI player] Civilizations>
Cities cannot be liberated <for [AI player] Civilizations>
Cannot vote in World Congress <for [AI player] Civilizations>
Cannot trade with [civFilter] Civilizations Cannot trade with [Human player] Civilizations <for [AI player] Civilizations> (peace still allowed)
May not found a religion <for [AI player] Civilizations>
Cannot spread religion to [civFilter] Civilizations e.g. [City-States] / [Human player] + AI conditional
Cannot coup [civFilter] Civilizations Cannot coup [City-States] Civilizations <for [AI player] Civilizations>
No XP from fighting [civFilter] Civilizations No XP from fighting [AI player] Civilizations

Example jsons/GlobalUniques.json

{
  "name": "Global Uniques",
  "uniques": [
    "Always accepts white peace <for [AI player] Civilizations>",
    "Cities cannot be liberated <for [AI player] Civilizations>",
    "Cannot vote in World Congress <for [AI player] Civilizations>",
    "Cannot trade with [Human player] Civilizations <for [AI player] Civilizations>",
    "May not found a religion <for [AI player] Civilizations>",
    "Cannot spread religion to [City-States] Civilizations <for [AI player] Civilizations>",
    "Cannot spread religion to [Human player] Civilizations <for [AI player] Civilizations>",
    "Cannot coup [City-States] Civilizations <for [AI player] Civilizations>",
    "Cannot build [World Wonder] buildings <for [AI player] Civilizations>",
    "Cannot build [Settler] units <for [AI player] Civilizations>",
    "No XP from fighting [AI player] Civilizations"
  ]
}

Motivation

As reviewed: most restrictions generalize via existing Global uniques + AI civFilter conditionals. The two parameterized types that did not exist (Cannot spread religion to [civFilter], No XP from fighting [civFilter]) are added as Global uniques, along with a few parallel Global forms for diplomacy/religion.

ModOptions cannot carry conditionals and are not merged into getGlobalUniques(), so these belong in GlobalUniques.json.

Test plan

  • Extension mod with GlobalUniques.json as above
  • AI cannot train Settlers / World Wonders; humans can
  • AI white peace accepted; AI↔human trade limited to peace
  • AI cannot found/spread religion as configured; cannot coup CS
  • No XP from fighting major AI
  • Without the mod → vanilla behavior

@Fanfblrik

Copy link
Copy Markdown
Contributor Author

Replacement for #15224 (closed while rewriting the branch). Implements the review feedback: Global uniques + <for [AI player] Civilizations> instead of ModOptions, plus the two new parameterized globals you mentioned.

@github-actions

Copy link
Copy Markdown

This pull request has conflicts, please resolve those before we can evaluate the pull request.

Fanfblrik and others added 4 commits July 22, 2026 17:14
Prevents AI civilizations from training city-founder units when enabled under Advanced Settings, useful for multiplayer games with AI fillers.

Co-authored-by: Cursor <cursoragent@cursor.com>
Extend Advanced Settings with AI limits for peace, liberation, congress, trades, religion, coups, wonders, settlers, and XP.

Co-authored-by: Cursor <cursoragent@cursor.com>
Replace GameParameters checkboxes with ModOptions UniqueTypes so mods can enable Lekmod-style AI limits without new game options.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
@Fanfblrik
Fanfblrik force-pushed the feature/no-ai-settlers branch from 37333a4 to 06b88f5 Compare July 22, 2026 14:15
@github-actions

Copy link
Copy Markdown

Conflicts have been resolved.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant