Combine sugar, butter, milk, and salt in a heavy 3 qt saucepan.
Bring this mixture to a full boil over high heat, making sure to stir constantly with a wooden spoon.
Lower the heat to medium. Continue stirring for 5 minutes. Remove the saucepan from the heat.
Add peanut butter to the mixture. Stir until the peanut butter has completely melted into the mixture.
Incorporate vanilla extract and marshmallow fluff into the mix. Beat the mixture until both the vanilla and fluff are well blended and the fluff has fully melted.
Quickly fold in the M&Ms (or other candy/chocolate chips if making substitutions).
Immediately spread the fudge mixture into a greased or parchment paper-lined 13x9 inch baking pan.
Allow the fudge to cool. This can be done at room temperature for 2-3 hours or, for quicker setting, in the fridge for 1-2 hours.
Notes
Be sure to wait until your mixture reaches a full rolling boil before you start your five-minute time.
To avoid a gritty texture, be sure to beat the marshmallow fluff until it is completely melted and smooth before blending in with other ingredients.
You can use any type of peanut butter that you desire to make this recipe, but I recommend using a natural variety with no salt or sugar added for the best results.