Random Outcome - Vanilla-Expanded/VanillaExpandedFramework GitHub Wiki
CompProperties_RandomOutcomeComp makes a weapon turn into other weapons when created. It is used by lasers in Vanilla Weapons Expanded - Laser so the salvaged laser weapon recipe produces random results
       public List<string> canProvideTags = new List<string>();It is a comp class, so you just add it in XML in the <comps> tag of the ThingDef. For example, for lasers:
<comps>
      <li Class="VEF.Things.CompProperties_RandomOutcomeComp">
        <canProvideTags>
          <li>SalvagedLaserGun</li>
        </canProvideTags>
      </li>
</comps>SalvagedLaserGun (in this case) needs to be on the weaponTags of the weapons you want to be produced.
We will probably make this a bit more generic in the future...