i scrapped the code already but essentially what i did to start was nab the alchemist that gives potions to the shop... out of coreimprovements.xml and changed it so....
<ImprovementType InternalName="ArmsDealerBuilding">
<DisplayName>Arms Dealer</DisplayName>
<Description>Random Text.</Description>
<RequiresCity>1</RequiresCity>
<BarredTerrain>River</BarredTerrain>
<BarredTerrain>SwampTerrain</BarredTerrain>
<PreferredTerrain>City</PreferredTerrain>
<PreferredTerrain>Category:Land</PreferredTerrain>
<PreferredTerrain>Forest</PreferredTerrain>
<Prereq>
<Type>AbilityBonusOption</Type>
<Attribute>ArmsDealers</Attribute>
<Target>Player</Target>
</Prereq>
<LaborToBuild>10</LaborToBuild>
<GameModifier>
<Provides>Random Text.</Provides>
</GameModifier>
<UnlocksShopItem>RandomItem01</UnlocksShopItem>
<UnlocksShopItem>RandomItem02</UnlocksShopItem>
<AIData AIPersonality="AI_General">
<AIPriority>10</AIPriority>
<AITag>Merchant</AITag>
</AIData>
<ArtDef>Art_BlackMarket</ArtDef>
</ImprovementType>
Then for coreabilities i just used the enchanter base since it gives unique building in the scrying pool...
<AbilityBonus InternalName="ArmsDealerAbility">
<AbilityBonusType>Player</AbilityBonusType>
<AbilityBonusOption InternalName="ArmsDealers">
<DisplayName>Arms Dealers</DisplayName>
<Description>Random Text.</Description>
<Icon>Combat_Dot.png</Icon>
<GameModifier>
<Provides>Random Text.</Provides>
</GameModifier>
<Cost>1</Cost>
<HideWhenUpgraded>0</HideWhenUpgraded>
<Type>Army</Type>
<AIData AIPersonality="AI_General">
<AIPriority>5</AIPriority>
</AIData>
</AbilityBonusOption>
</AbilityBonus>
the Arms Dealer shows up in the custom faction choice screen, but when starting a new game the building isnt in the build list. So im either missing something somewhere or just being a noob.... im assuming im just completely missing an entry in some other file