Hope this is a bug not a feature. First, plenty of good things about this mod i've seen so far. Was playing as Sidar and i like the nice focusing touches on their buildings that support theme.
My issue is while running Runes my city got chosen for the infernal capitol when they entered the world. Odd i thought and sucks as it was my best city, but okay. It did have Veil present. Then about 10 turns later my second best city gets taken as another Infernal faction surfaces. I reloaded save and checked and the city had zero revolt pressure. No warning. As both factions/cities start with several high units boosted w/ iron and it is early game this pretty much shut down my game. Annoying.
Did i just get really unlucky? Is there any way to prevent this other than closing borders to anyone who is trying to spread Veil? Makes me leery of investing in another game.
It is a feature. Whenever the Infernal Pact ritual is completed, a new demon lord enters the world. If there is a valid target city, the new Infernal player will steal it. (Otherwise they enter on a semi-random title which is given a Hellfire improvement and becomes hell terrain.)
The city is chosen by this code:
As you can see, the player who completed the Infernal Pact ritual will not have any of its cities stolen. Neither will an Infernal Player. No player's capital city may be stolen. Only cities with AV present may be stolen, and it is much less likely that any player with the AV state religion will loose a city. (It also won't take Acheron's city.)
I allowed human players to construct the ritual in any city where the Ashen Veil religion is present, but AI players must have the AV state religion. Infernal players can never use the ritual themselves. It may only be used if at least one demon lord has not yet entered the game. It can be used a maximum of 7 times overall, and not more than 3 times by the members of any team.
Adopting AV state religion protects you, but not perfectly.
Destroying all AV players (excluding the Infernals) or convincing them to change state religions, will prevent them from using the ritual. If you use the ritual yourself, you can prevent others from using it as much.
You can remove AV from your cities to protect them. This can be done by having a priest of your state religion use the Inquisition spell (which requires the Inquisition promotion, which requires level 3 and Religious Law), by completing the Purge of the Unfaithful ritual (available at Priesthood, this ritual removes all non state religions in your territory, except form their holy cities, and causes brief periods of disorder in the process), or by spreading The Order or The Empyrean to the city (which may cause a conflict between the religions and remove one or the other of them).
I would really like to make the ritual become significantly more expensive every time it is completed, so that Infernal players won't enter the game so close to he same time. This would require an DLL change Tholal has not made for me yet though.
The thought just came to mind that the AI might be starting the production of repeatable rituals in different cities at the same time, in order to complete multiple instances more quickly. I think I'll use a bit of python to prevent this.
You can of course prevent any demon lords (or Basium) from ever entering the game at all if you use the Compact Enforced game option.