XCOM 2
Nightsister Faction Weapons [WOTC]
My changes for Covert Infiltration
That is what i did. But mind you I wanted it to change into a boltcaster type weapon, that weapon category i added for my game. So for your game you may need to adjust a few things. Also i only did it for the bowcaster as of now

In Weapon Skin Replacer:
;Bowltcaster +CHANGE_TEMPLATE=(TEMPLATE="NiSisXcom_Bowcaster_CV", SET_DAMAGE=(Damage=4, Spread=1, PlusOne=25, Crit=2, Pierce=1, Shred=0, Tag="", DamageType="Heavy")) +CHANGE_TEMPLATE=(TEMPLATE="NiSisXcom_Bowcaster_MG", SET_DAMAGE=(Damage=5, Spread=1, PlusOne=50, Crit=3, Pierce=2, Shred=0, Tag="", DamageType="Heavy")) +CHANGE_TEMPLATE=(TEMPLATE="NiSisXcom_Bowcaster_BM", SET_DAMAGE=(Damage=6, Spread=1, PlusOne=75, Crit=3, Pierce=3, Shred=0, Tag="", DamageType="Heavy")) +CHANGE_TEMPLATE=(TEMPLATE="NiSisXcom_Bowcaster_CV", CRIT=5, CLIPSIZE=1, ENVIRONMENT_DAMAGE= 0, NUM_UPGRADE_SLOTS=1) +CHANGE_TEMPLATE=(TEMPLATE="NiSisXcom_Bowcaster_MG", CRIT=5, CLIPSIZE=1, ENVIRONMENT_DAMAGE= 0, NUM_UPGRADE_SLOTS=2) +CHANGE_TEMPLATE=(TEMPLATE="NiSisXcom_Bowcaster_BM", CRIT=5, CLIPSIZE=1, ENVIRONMENT_DAMAGE= 0, NUM_UPGRADE_SLOTS=2) +CHANGE_TEMPLATE=(TEMPLATE="NiSisXcom_Bowcaster_CV", RANGE_ACCURACY=(0, 27, 25, 23, 21, 18, 15, 12, 9, 6, 4, 3, 2, 1, 0, -1, -3, -4, -5)) +CHANGE_TEMPLATE=(TEMPLATE="NiSisXcom_Bowcaster_MG", RANGE_ACCURACY=(0, 28, 26, 24, 22, 19, 16, 14, 12, 9, 6, 4, 2, 1, 0, -1, -3, -4, -5)) +CHANGE_TEMPLATE=(TEMPLATE="NiSisXcom_Bowcaster_BM", RANGE_ACCURACY=(0, 29, 28, 27, 26, 24, 22, 19, 16, 13, 10, 7, 4, 2, 0, -1, -3, -4, -5)) +CHANGE_TEMPLATE=(TEMPLATE="NiSisXcom_Bowcaster_CV", SET_WEAPON_CAT=boltcaster) +CHANGE_TEMPLATE=(TEMPLATE="NiSisXcom_Bowcaster_MG", SET_WEAPON_CAT=boltcaster) +CHANGE_TEMPLATE=(TEMPLATE="NiSisXcom_Bowcaster_BM", SET_WEAPON_CAT=boltcaster) +GIVE_ABILITIES=(TEMPLATE="NiSisXcom_Bowcaster_CV", ABILITY=XAaA_RangeProfile_ShortExtended_LoreOnly) +GIVE_ABILITIES=(TEMPLATE="NiSisXcom_Bowcaster_MG", ABILITY=XAaA_RangeProfile_ShortExtended_LoreOnly) +GIVE_ABILITIES=(TEMPLATE="NiSisXcom_Bowcaster_BM", ABILITY=XAaA_RangeProfile_ShortExtended_LoreOnly) +GIVE_ABILITIES=(TEMPLATE="NiSisXcom_Bowcaster_CV", REMOVE_ABILITY=WOTC_APA_SkeletonizedStock) +GIVE_ABILITIES=(TEMPLATE="NiSisXcom_Bowcaster_CV", REMOVE_ABILITY=VektorArmorCritBonus) +GIVE_ABILITIES=(TEMPLATE="NiSisXcom_Bowcaster_MG", REMOVE_ABILITY=WOTC_APA_SkeletonizedStock) +GIVE_ABILITIES=(TEMPLATE="NiSisXcom_Bowcaster_MG", REMOVE_ABILITY=VektorArmorCritBonus) +GIVE_ABILITIES=(TEMPLATE="NiSisXcom_Bowcaster_BM", REMOVE_ABILITY=WOTC_APA_SkeletonizedStock) +GIVE_ABILITIES=(TEMPLATE="NiSisXcom_Bowcaster_Bm", REMOVE_ABILITY=VektorArmorCritBonus)

In XComInfiltration.ini
[CovertInfiltration.X2InfiltrationMod] ;Bowltcaster +InfilModifiers=(DataName="Crossbow_CV", InfilHoursAdded=-3, RiskReductionPercent=0) +InfilModifiers=(DataName="NiSisXcom_Bowcaster_CV", InfilHoursAdded=0, RiskReductionPercent=3) +InfilModifiers=(DataName="NiSisXcom_Bowcaster_MG", InfilHoursAdded=0, RiskReductionPercent=5) +InfilModifiers=(DataName="NiSisXcom_Bowcaster_BM", InfilHoursAdded=0, RiskReductionPercent=7)

In XComStrategyTuning.ini
Bowltcaster ; Make Single Build------------------------- +arrMakeItemBuildable=(ItemName="NiSisXcom_Bowcaster_MG") +arrMakeItemBuildable=(ItemName="NiSisXcom_Bowcaster_BM") ; Add Black Market resale values -------------- +arrTradingPostModifiers=(ItemName="NiSisXcom_Bowcaster_MG", NewValue=9) +arrTradingPostModifiers=(ItemName="NiSisXcom_Bowcaster_MG", NewValue=21)

in XComWeaponTuning.ini
[NiSisXcom_Bowcaster_MG X2WeaponTemplate] Requirements=(RequiredTechs[0]="GaussWeapons", RequiredEngineeringScore=15, bVisibleIfPersonnelGatesNotMet=true) Cost=(ResourceCosts[0]=(ItemTemplateName="Supplies", Quantity=23), ResourceCosts[1]=(ItemTemplateName="AlienAlloy", Quantity=5)) [NiSisXcom_Bowcaster_MG_Diff_3 X2WeaponTemplate] Cost=(ResourceCosts[0]=(ItemTemplateName="Supplies", Quantity=45), ResourceCosts[1]=(ItemTemplateName="AlienAlloy", Quantity=8)) [NiSisXcom_Bowcaster_BM X2WeaponTemplate] Requirements=(RequiredTechs[0]="PlasmaSniper", RequiredEngineeringScore=25, bVisibleIfPersonnelGatesNotMet=true) Cost=(ResourceCosts[0]=(ItemTemplateName="Supplies", Quantity=45), ResourceCosts[1]=(ItemTemplateName="AlienAlloy", Quantity=8), ResourceCosts[2]=(ItemTemplateName="EleriumDust", Quantity=4)) [NiSisXcom_Bowcaster_BM_Diff_3 X2WeaponTemplate] Cost=(ResourceCosts[0]=(ItemTemplateName="Supplies", Quantity=90), ResourceCosts[1]=(ItemTemplateName="AlienAlloy", Quantity=15), ResourceCosts[2]=(ItemTemplateName="EleriumDust", Quantity=8))