Quote Originally Posted by Dol Guldur View Post

Do remember to test it both ways (positively and negatively) as sometimes a piece of redundant or useless code that is not reported as incorrect may nevertheless pass as a positive and mislead.

Best of luck.
Before I proceed with the findings, I have 1 question: Dol Guldur, what do u mean by testing it both ways?

I'm finally completed with the building description and some upgrade options.
Before I continue with the findings, I have to stress that I am only using the ALEXANDER engine, not RTW or BI so I cannot guarantee it will work for the older engines.

I will first summarize all the details which are indicative of my findings:

1) Upgrade statements based on hidden resources which defines specific regions may be possible for different factions within the same building tree, however note that this is only based on a one time testing which is definitely not exhaustive. This sort of solves the complex logic required to allow different factions to have different upgrade options in different regions.
e.g.
upgrades
{
upgrade1 requires factions { romans_julii, } and hidden_resource 1 and hidden_resource 2
upgrade2 requires factions { cathage, } and hidden_resource 2 and hidden_resource 3
upgrade3 requires factions { egypt, } and hidden_resource 4 and hidden_resource 5
upgrade4 requires factions { scythia, } and hidden_resource 6 and hidden_resource 7
;... etc.
}
2) The upgrade options seem to reject building_present_min_level requirements as it will CTD on the turn the building is completed.

3) I have not checked whether the following requirements will work because it do not intend to use it in my upgrade options for my personal mod.
resource
building_present
marian_reforms
building_present

4) After I have allocated the hidden resources in the other regions, I will continue to post any other findings, especially with regards to other faction upgrade options once their hidden resource requirements are filled. I really hope it will work well with the rest of the factions.

Disclaimer: I only intend to post whatever I find asap, and I have no intention to test upgrade requirements as stated in 3. Any other modder should be able to test it easily, but I feel that a 'positive test' does not seem to expand the building options that much and I am quite tight with other commitments as well, so I'm giving it a miss.

Details:
I have only tested with the factions romans_julii, because I have yet to place other hidden_resources for the other factions. So please ignore code for all other factions for simplicity.

Code:
building government
{
	levels gov1 gov2 gov3 gov4 gov5 gov6 gov7 gov8
	{
	gov1 requires factions { romans_julii, egypt, epirus, macedon, thrace, armenia, pontus, dacia, germans, spain, scythia, numidia, }
	{
		capability
		{
		law_bonus bonus 1 requires factions { romans_julii, egypt, epirus, macedon, thrace, armenia, pontus, dacia, germans, spain, }
		}
		construction  1
		cost  200
		settlement_min village
		upgrades
		{
;imperium ;and not building_present_min_level hinterland_loc1 a_italia
		gov2 requires factions { romans_julii, } and not hidden_resource italy
;sociorum(18) ;and building_present_min_level hinterland_loc1 a_italia
		gov6 requires factions { romans_julii, } and hidden_resource italy
		gov6 requires factions { romans_julii, } and hidden_resource SW and hidden_resource B and hidden_resource y1 and hidden_resource n2 and hidden_resource y4 and hidden_resource y8 ;Trinakrie, Corieltauvae
		gov6 requires factions { romans_julii, } and hidden_resource SW and hidden_resource B and hidden_resource n1 and hidden_resource n2 and hidden_resource y4 and hidden_resource y8 ;Sicilia
		gov6 requires factions { romans_julii, } and hidden_resource SW and hidden_resource B and hidden_resource n1 and hidden_resource y2 and hidden_resource y4 and hidden_resource y8 ;Elimya
		gov6 requires factions { romans_julii, } and hidden_resource SW and hidden_resource B and hidden_resource y1 and hidden_resource n2 and hidden_resource n4 and hidden_resource n8 ;Insubramrog
		gov6 requires factions { romans_julii, } and hidden_resource SW and hidden_resource B and hidden_resource n1 and hidden_resource y2 and hidden_resource n4 and hidden_resource n8 ;Venetia
		gov6 requires factions { romans_julii, } and hidden_resource SW and hidden_resource B and hidden_resource y1 and hidden_resource y2 and hidden_resource y4 and hidden_resource y8 ;Korsim
		gov6 requires factions { romans_julii, } and hidden_resource SW and hidden_resource B and hidden_resource n1 and hidden_resource n2 and hidden_resource n4 and hidden_resource n8 ;Sardin
;sine suffragio(10)
		gov7 requires factions { romans_julii, } and hidden_resource italy
;autonomous allied state
		gov2 requires factions { egypt, }
;controlled allied state
		gov3 requires factions { egypt, }
;hyparchy
		gov4 requires factions { egypt, }
;allied territory
		gov2 requires factions { epirus, }
		gov2 requires factions { macedon, }
;controlled territory, garrisoned state
		gov3 requires factions { epirus, }
		gov3 requires factions { macedon, }
;semiautonomous satrapy
		gov2 requires factions { thrace, }
;satrapy
		gov2 requires factions { armenia, }
;allied kingdom
		gov3 requires factions { armenia, }
;allied state
		gov2 requires factions { pontus, }
;satrapy
		gov3 requires factions { pontus, }
;3 allied tribes
		gov2 requires factions { dacia, }
		gov2 requires factions { germans, }
		gov2 requires factions { spain, }
		}
	}
	gov2 requires factions { romans_julii, egypt, epirus, macedon, thrace, armenia, pontus, dacia, germans, spain, } and not hidden_resource not_here
	{
		capability
		{
;imperium
		law_bonus bonus 1 requires factions { romans_julii, } and not hidden_resource italy
		population_loyalty_bonus bonus -1 requires factions { romans_julii, } and not hidden_resource italy
		taxable_income_bonus bonus 1 requires factions { romans_julii, } and not hidden_resource italy
;autonomous allied state
		trade_base_income_bonus bonus 1 requires factions { egypt, }
		recruits_exp_bonus bonus 1 requires factions { egypt, }
;allied territory
		population_growth_bonus bonus 1 requires factions { epirus, macedon, }
		population_loyalty_bonus bonus -1 requires factions { epirus, }
		population_loyalty_bonus bonus -2 requires factions { macedon, }
		trade_base_income_bonus bonus 1 requires factions { epirus, macedon, }
		recruits_exp_bonus 1 requires factions { epirus, macedon, }
;semiautonomous satrapy
		happiness_bonus bonus -1 requires factions { thrace, }
		population_loyalty_bonus bonus -1 requires factions { thrace, }
		trade_base_income_bonus bonus 1 requires factions { thrace, }
		recruits_exp_bonus bonus 1 requires factions { thrace, }
;satrapy
		law_bonus bonus -2 requires factions { armenia, }
		taxable_income_bonus bonus 1 requires factions { armenia, }
		recruits_morale_bonus bonus -1 requires factions { armenia, }
;allied state
		population_loyalty_bonus bonus -2 requires factions { pontus, }
		trade_base_income_bonus bonus 1 requires factions { pontus, }
		recruits_exp_bonus bonus 1 requires factions { pontus, }
		recruits_morale_bonus bonus -1 requires factions { pontus, }
;3 allied tribes
		happiness_bonus bonus 1 requires factions { dacia, }
		law_bonus bonus -1 requires factions { dacia, germans, spain, }
		taxable_income_bonus bonus 2 requires factions { spain, }
		trade_base_income_bonus bonus 1 requires factions { dacia, germans, }
		recruits_exp_bonus bonus 1 requires factions { germans, spain, }
		}
		construction  2
		cost  400
		settlement_min town
		upgrades
		{
		gov3 requires factions { romans_julii, } and not hidden_resource italy
		gov4 requires factions { romans_julii, } and not hidden_resource italy
		gov5 requires factions { romans_julii, } and not hidden_resource italy
;hyparchy
		gov4 requires factions { egypt, } ;and hidden_resource
;military territory
		gov4 requires factions { epirus, } ;and hidden_resource epirus
;satrapy
		gov4 requires factions { macedon, } ;and hidden_resource alexander's empire
;allied state
		gov3 requires factions { thrace, } ;and not hidden_resource thrace if
		gov4 requires factions { thrace, } ;and hidden_resource thrace land
;royal satrapy
		gov4 requires factions { armenia, } ;and hidden_resource armenia_home
;persian satrapy
		gov4 requires factions { pontus, } ;and hidden_resource pontus
;3 client tribes
		gov3 requires factions { dacia, }
		gov3 requires factions { germans, }
		gov3 requires factions { spain, }
		}
	}
	gov3 requires factions { romans_julii, egypt, epirus, macedon, thrace, armenia, pontus, dacia, germans, spain, } and not hidden_resource not_here
	{
		capability
		{
;libera (free state)
		happiness_bonus bonus 1 requires factions { romans_julii, } and not hidden_resource italy
		taxable_income_bonus bonus 2 requires factions { romans_julii, } and not hidden_resource italy
		trade_base_income_bonus bonus 1 requires factions { romans_julii, } and not hidden_resource italy
;controlled allied state
		happiness_bonus bonus -1 requires factions { egypt, }
		taxable_income_bonus bonus 4 requires factions { egypt, }
;controlled territory
		population_growth_bonus bonus 1 requires factions { epirus, }
		happiness_bonus bonus -1 requires factions { epirus, }
		taxable_income_bonus bonus 2 requires factions { epirus, }
;garrisoned state
		happiness_bonus bonus -3 requires factions { macedon, }
		law_bonus bonus 1 requires factions { macedon, }
		population_loyalty_bonus bonus -1 requires factions { macedon, }
		taxable_income_bonus bonus 3 requires factions { macedon, }
		recruits_exp_bonus bonus 1 requires factions { macedon, }
;allied state
		population_loyalty_bonus bonus -1 requires factions { thrace, }
		taxable_income_bonus bonus 1 requires factions { thrace, }
		trade_base_income_bonus bonus 1 requires factions { thrace, }
		recruits_exp_bonus bonus 1 requires factions { thrace, }
;allied kingdom
		trade_base_income_bonus bonus 2 requires factions { armenia, }
		happiness_bonus bonus 1 requires factions { armenia, }
		population_loyalty_bonus bonus -1 requires factions { armenia, }
		recruits_exp_bonus bonus -2 requires factions { armenia, }
;satrapy
		happiness_bonus bonus 1 requires factions { pontus, }
		population_loyalty_bonus bonus -1 requires factions { pontus, }
		trade_base_income_bonus bonus 1 requires factions { pontus, }
		recruits_exp_bonus bonus 1 requires factions { pontus, }
		recruits_morale_bonus bonus -1 requires factions { pontus, }
;3 client tribes
		happiness_bonus bonus 1 requires factions { germans, spain, }
		law_bonus bonus 1 requires factions { spain, }
		taxable_income_bonus bonus 1 requires factions { dacia, germans, }
		trade_base_income_bonus bonus -1 requires factions { spain, }
		recruits_exp_bonus bonus 1 requires factions { dacia, germans, }
		recruits_morale_bonus 1 requires factions { spain, }
		}
		construction  2
		cost  400
		settlement_min town
		upgrades
		{
		gov8 requires factions { romans_julii, } and not hidden_resource italy
;hyparchy
		gov4 requires factions { egypt, } ;and hidden_resource
;military territory
		gov4 requires factions { epirus, } ;and hidden_resource epirus
;satrapy
		gov4 requires factions { macedon, } ;and hidden_resource alexander's empire
;royal satrapy
		gov4 requires factions { armenia, } ;and hidden_resource armenia_home
;persian satrapy
		gov4 requires factions { pontus, } ;and hidden_resource pontus
;administration
		gov4 requires factions { dacia, } ;and hidden_resource gaul home
		gov4 requires factions { germans, } ;and hidden_resource gaul home
		gov4 requires factions { spain, } ;and hidden_resource gaul home
		}
	}
	gov4 requires factions { romans_julii, egypt, epirus, macedon, thrace, armenia, pontus, dacia, germans, spain, } and not hidden_resource not_here
	{
		capability
		{
;stipendiaria (tributary state)
		happiness_bonus bonus -1 requires factions { romans_julii, } and not hidden_resource italy
		law_bonus bonus 1 requires factions { romans_julii, } and not hidden_resource italy
		taxable_income_bonus bonus 5 requires factions { romans_julii, } and not hidden_resource italy
;hyparchy
		law_bonus bonus 1 requires factions { egypt, } ;and hidden_resource
		population_loyalty_bonus bonus 1 requires factions { egypt, } ;and hidden_resource
		trade_base_income_bonus bonus 1 requires factions { egypt, } ;and hidden_resource
		taxable_income_bonus bonus 1 requires factions { egypt, } ;and hidden_resource
;military territory
		population_growth_bonus bonus -2 requires factions { epirus, }
		happiness_bonus bonus -1 requires factions { epirus, }
		taxable_income_bonus bonus 4 requires factions { epirus, }
		recruits_exp_bonus bonus 1 requires factions { epirus, }
;satrapy
		population_growth_bonus bonus -1 requires factions { macedon, }
		taxable_income_bonus bonus 1 requires factions { macedon, }
		population_loyalty_bonus bonus 1 requires factions { macedon, }
		recruits_morale_bonus 1 requires factions { macedon, }
;satrapy
		happiness_bonus bonus 1 requires factions { thrace, }
		taxable_income_bonus bonus 2 requires factions { thrace, }
		recruits_morale_bonus 1 requires factions { thrace, }
;royal satrapy
		law_bonus bonus -1 requires factions { armenia, } ;and hidden_resource
		population_loyalty_bonus bonus 1 requires factions { armenia, } ;and hidden_resource
		taxable_income_bonus bonus 2 requires factions { armenia, } ;and hidden_resource
;persian satrapy
		population_growth_bonus bonus -1 requires factions { pontus, }
		population_loyalty_bonus bonus 1 requires factions { pontus, }
		taxable_income_bonus bonus 1 requires factions { pontus, } ;and hidden_resource
		recruits_morale_bonus bonus 1 requires factions { pontus, }
;3 administration
		population_growth_bonus bonus -1 requires factions { dacia, }
		happiness_bonus bonus 1 requires factions { germans, }
		happiness_bonus bonus 2 requires factions { spain, }
		law_bonus bonus 1 requires factions { dacia, germans, }
		trade_base_income_bonus bonus -1 requires factions { germans, }
		trade_base_income_bonus bonus -2 requires factions { spain, }
		recruits_exp_bonus bonus 1 requires factions { dacia, }
		recruits_morale_bonus 1 requires factions { germans, spain, }
		}
		construction  4
		cost  1000
		settlement_min town
		upgrades
		{
		gov8 requires factions { romans_julii, } and not hidden_resource italy
;nomarchy
		gov5 requires factions { egypt, } ;and hidden_resource
;hegemonia
		gov5 requires factions { epirus, } ;and hidden_resource
;hegemonia
		gov5 requires factions { macedon, } ;and hidden_resource
;hegemonia
		gov5 requires factions { thrace, } ;and hidden_resource
;royal kingdom
		gov5 requires factions { armenia, } ;and hidden_resource armenia_royal
;royal territory
		gov5 requires factions { pontus, } ;and hidden_resource pontus_home
;king's tribe
		gov5 requires factions { dacia, germans, spain, } ;and hidden_resource gaul home
		gov5 requires factions { germans, } ;and hidden_resource gaul home
		gov5 requires factions { spain, } ;and hidden_resource gaul home
		}
	}
	gov5 requires factions { romans_julii, egypt, epirus, macedon, thrace, armenia, pontus, dacia, germans, spain, } and not hidden_resource not_here
	{
		capability
		{
;foederata (allied state)
		happiness_bonus bonus 1 requires factions { romans_julii, } and not hidden_resource italy
		law_bonus bonus 1 requires factions { romans_julii, } and not hidden_resource italy
		taxable_income_bonus bonus 3 requires factions { romans_julii, } and not hidden_resource italy
;nomarchy
		population_growth_bonus bonus -2 requires factions { egypt, } ;and hidden_resource
		law_bonus bonus 1 requires factions { egypt, } ;and hidden_resource
		taxable_income_bonus bonus 3 requires factions { egypt, } ;and hidden_resource
		trade_base_income_bonus bonus 2 requires factions { egypt, } ;and hidden_resource
		recruits_exp_bonus 1 requires factions { egypt, } ;and hidden_resource
;hegemonia
		population_growth_bonus bonus -1 requires factions { epirus, }
		happiness_bonus bonus 1 requires factions { epirus, }
		population_loyalty_bonus bonus 1 requires factions { epirus, }
		taxable_income_bonus bonus 7 requires factions { epirus, }
		recruits_morale_bonus bonus 2 requires factions { epirus, }
;hegemonia
		happiness_bonus bonus 1 requires factions { macedon, }
		law_bonus bonus 1 requires factions { macedon, }
		population_loyalty_bonus bonus 1 requires factions { macedon, }
		taxable_income_bonus bonus -3 requires factions { macedon, }
		recruits_exp_bonus bonus 1 requires factions { macedon, }
		recruits_morale_bonus bonus 1 requires factions { macedon, }
;hegemonia
		religious_belief zoroastrian 1 requires factions { thrace, } ;and hidden_resource
		trade_base_income_bonus bonus 2 requires factions { thrace, } ;and hidden_resource
		recruits_exp_bonus 1 requires factions { thrace, } ;and hidden_resource
;royal kingdom
		population_growth_bonus bonus -1 requires factions { armenia, } ;and hidden_resource
		law_bonus bonus 1 requires factions { armenia, } ;and hidden_resource
		population_loyalty_bonus bonus 1 requires factions { armenia, } ;and hidden_resource
		taxable_income_bonus bonus 3 requires factions { armenia, } ;and hidden_resource
		recruits_morale_bonus bonus 1 requires factions { armenia, } ;and hidden_resource
;royal territory
		population_growth_bonus bonus -2 requires factions { pontus, }
		population_loyalty_bonus bonus 2 requires factions { pontus, }
		taxable_income_bonus bonus 3 requires factions { pontus, } ;and hidden_resource
		recruits_morale_bonus bonus 1 requires factions { pontus, }
;king's tribe
		happiness_bonus bonus 1 requires factions { dacia, }
		trade_base_income_bonus bonus 1 requires factions { dacia, }
		law_bonus bonus 1 requires factions { dacia, }
		recruits_morale_bonus 1 requires factions { dacia, }
		trade_base_income_bonus bonus 1 requires factions { germans, }
		construction_cost_bonus_other bonus 1 requires factions { germans, }
		construction_cost_bonus_military bonus 1 requires factions { germans, }
		population_loyalty_bonus bonus 1 requires factions { germans, }
		recruits_morale_bonus 1 requires factions { germans, }
		trade_base_income_bonus bonus 1 requires factions { spain, }
		construction_cost_bonus_religious bonus 2 requires factions { spain, }
		construction_cost_bonus_military bonus 2 requires factions { spain, }
		recruits_morale_bonus 1 requires factions { spain, }
		}
		construction  5
		cost  2000
		settlement_min town
		upgrades
		{
;military administration
		gov6 requires factions { pontus, } ;and hidden_resource pontus_home
		gov8 requires factions { romans_julii, } and not hidden_resource italy
		}
	}
;(1)Xromans_julii, egypt, epirus, macedon, thrace, armenia, pontus, dacia, germans, spain,
	gov6 requires factions { romans_julii, } and not hidden_resource not_here
	{
		capability
		{
;sociorum (allied states)
		religious_belief christianity 1 requires factions { romans_julii, }
		happiness_bonus bonus 1 requires factions { romans_julii, }
		taxable_income_bonus bonus 3 requires factions { romans_julii, }
		}
		construction  4
		cost  500
		settlement_min town
		upgrades
		{
		gov8 requires factions { romans_julii, }
		}
	}
	gov7 requires factions { romans_julii, } and not hidden_resource not_here
	{
		capability
		{
;sine suffragio (romanized states)
		religious_belief christianity 1 requires factions { romans_julii, }
		happiness_bonus bonus 1 requires factions { romans_julii, }
		law_bonus bonus 1 requires factions { romans_julii, }
		taxable_income_bonus bonus 3 requires factions { romans_julii, }
		}
		construction  5
		cost  1000
		settlement_min town
		upgrades
		{
		gov8 requires factions { romans_julii, }
		}
	}
	gov8 requires factions { romans_julii, } and not hidden_resource not_here
	{
		capability
		{
;romana (citizenship)
		religious_belief christianity 1 requires factions { romans_julii, }
		happiness_bonus bonus 2 requires factions { romans_julii, }
		law_bonus bonus 1 requires factions { romans_julii, }
		taxable_income_bonus bonus 5 requires factions { romans_julii, }
		}
		construction  6
		cost  2000
		settlement_min city
		upgrades
		{
		}
	}
	}
plugins
{
}
}
According to the above codes, specifically for gov2, gov6 and gov7, the building options will be present as long as the hidden_resources stated in the upgrade options match the logic.
For instance, in the region Insubramrog, hidden resource SW, B, n1, y2, n4, n8 is present, but hidden resource italy is absent, so 2 upgrade options gov2 and gov6 is present. Locations with hidden resource italy also has 2 upgrade options gov6 and gov7.

Code:
Upgrade options for gov1 building in EXPORT_DESCR_BUILDINGS.TXT:
		gov2 requires factions { romans_julii, } and not hidden_resource italy
;Insubramrog
		gov6 requires factions { romans_julii, } and hidden_resource SW and hidden_resource B and hidden_resource n1 and hidden_resource y2 and hidden_resource n4 and hidden_resource n8 
		gov7 requires factions { romans_julii, } and hidden_resource italy

Respective region in DESCR_REGIONS.TXT:
Insubramrog
       Mediolanum
       gauls
       Insubre
       221 232 41
       river, SW, B, y1, n2, n4, n8
       5
       2
	christianity 10 pagan 90 zoroastrian 0

Regrettably, the codes within the upgrade options as shown below do not work:
Code:
;gov1 building ...
		upgrades
		{
		gov2 requires factions { romans_julii, } and not building_present_min_level hinterland_loc1 a_italia ;The intention was to use buildings as a requirement and not hidden resource italy
		gov6 requires factions { romans_julii, } and building_present_min_level hinterland_loc1 a_italia
		}
The building option for gov1 will definitely be present, but the game will immediately CTD in the turn when gov1 is completed. That means, I never even get to see whether gov2 and gov6 are buildable options in the correct regions because the game just CTD once it reaches the start of the turn.