Material Support - Freefolk-Rimworld-Modding/FF-Simple-Ammunition-Remastered-2.0 GitHub Wiki
This example doesn't need patching if done within the mod, we just use the MayRequire attribute and if we're using the fixedIngredientFilter it needs to be specified in there too.
<ingredients>
<li>
<filter>
<thingDefs>
<li>Steel</li>
<li MayRequire="Argon.VMEu">VMEu_Lead</li>
<li MayRequire="Argon.LVMEu">VMEu_Lead</li>
<li MayRequire="Mlie.CuprosAlloys">CAL_Lead</li>
<li MayRequire="test.TMaterials.Metals.1.0">carnap_lead</li>
<li MayRequire="LadyCookie.AestheticMaterials">Lead</li>
</thingDefs>
</filter>
<count>20</count>
</li>
</ingredients>
<fixedIngredientFilter>
<thingDefs>
<li>Steel</li>
<li MayRequire="Argon.VMEu">VMEu_Lead</li>
<li MayRequire="Argon.LVMEu">VMEu_Lead</li>
<li MayRequire="Mlie.CuprosAlloys">CAL_Lead</li>
<li MayRequire="test.TMaterials.Metals.1.0">carnap_lead</li>
<li MayRequire="LadyCookie.AestheticMaterials">Lead</li>
</thingDefs>
</fixedIngredientFilter>
If adding from an outside mod.
<Operation Class="PatchOperationAdd">
<xpath>Defs/ThingDef[defName="Some_Ammo_Def_Recipe"]/ingredients/li/filter/thingDefs[li="Steel"]</xpath>
<value>
<li MayRequire="Argon.VMEu">VMEu_Lead</li>
<li MayRequire="Argon.LVMEu">VMEu_Lead</li>
<li MayRequire="Mlie.CuprosAlloys">CAL_Lead</li>
<li MayRequire="test.TMaterials.Metals.1.0">carnap_lead</li>
<li MayRequire="LadyCookie.AestheticMaterials">Lead</li>
</value>
</Operation>
<Operation Class="PatchOperationAdd">
<xpath>Defs/ThingDef[defName="Some_Ammo_Def_Recipe"]/fixedIngredientFilter</xpath>
<value>
<li MayRequire="Argon.VMEu">VMEu_Lead</li>
<li MayRequire="Argon.LVMEu">VMEu_Lead</li>
<li MayRequire="Mlie.CuprosAlloys">CAL_Lead</li>
<li MayRequire="test.TMaterials.Metals.1.0">carnap_lead</li>
<li MayRequire="LadyCookie.AestheticMaterials">Lead</li>
</value>
</Operation>
This reduces required Steel by 10 and adds Lead in its place. MayRequire is used here since all versions of lead are being patched in together, if they were patched in individually we wouldn't need to use it.
<Operation Class="PatchOperationReplace">
<xpath>Defs/ThingDef[defName="Some_Ammo_Def_Recipe"]/ingredients/li[filter/thingDefs/li="Steel"]/count</xpath>
<value>
<count>10</count>
</value>
</Operation>
<Operation Class="PatchOperationAdd">
<xpath>Defs/ThingDef[defName="Some_Ammo_Def_Recipe"]/ingredients</xpath>
<value>
<li>
<filter>
<thingDefs>
<li MayRequire="Argon.VMEu">VMEu_Lead</li>
<li MayRequire="Argon.LVMEu">VMEu_Lead</li>
<li MayRequire="Mlie.CuprosAlloys">CAL_Lead</li>
<li MayRequire="test.TMaterials.Metals.1.0">carnap_lead</li>
<li MayRequire="LadyCookie.AestheticMaterials">Lead</li>
</thingDefs>
</filter>
<count>10</count>
</li>
</value>
</Operation>
<Operation Class="PatchOperationAdd">
<xpath>Defs/ThingDef[defName="Some_Ammo_Def_Recipe"]/fixedIngredientFilter</xpath>
<value>
<li MayRequire="Argon.VMEu">VMEu_Lead</li>
<li MayRequire="Argon.LVMEu">VMEu_Lead</li>
<li MayRequire="Mlie.CuprosAlloys">CAL_Lead</li>
<li MayRequire="test.TMaterials.Metals.1.0">carnap_lead</li>
<li MayRequire="LadyCookie.AestheticMaterials">Lead</li>
</value>
</Operation>
Todo