Spray 9x9 pan lightly with cooking spray. Line with 2 pieces of parchment paper crossed over each other, leaving a 1 inch overhang. Spray parchment lightly with nonstick cooking spray.
Combine butter, marshmallows, sugar, milk, and salt in medium sized saucepan. Cook over medium-high heat until marshmallows have melted and mixture is smooth, 6-7 minutes, stirring frequently. Stir in vanilla. Remove from heat; stir in chocolate until melted and completely mixed with marshmallow mixture.
Pour mixture into prepared pan. Let cool 30 minutes at room temperature, then refrigerate until set, at least 1 hour and up to 3 days.
Grasp the parchment paper on each side, and lift the whole piece of fudge onto a cutting board. Use a sharp knife to cut the fudge into approximately 60 1-inch squares. Place desired toppings into small bowls. With gloved hands (to prevent fudge from sticking to your hands), roll into balls. Roll in toppings.
Refrigerate until firm, at least 1 hour. Store in refrigerator in an airtight container with layers of waxed or parchment paper between each layer.
Wear disposable food-safe gloves to roll the balls.
To flavor the fudge to complement the coatings, replace the vanilla with ½ teaspoon pure peppermint extract, ¼ teaspoon pure almond extract, or 1 tablespoon raspberry liqueur, such as Framboise. You can also try adding 2 teaspoons espresso powder when you melt the marshmallows (with the sugar).