Preheat the oven to 350F, and line a muffin pan with 12 cupcake liners.
In the bowl of a stand mixer, combine the flour, baking powder, baking soda, salt, and sugar. Add in the butter, and beat on low until it's incorporated and has a sandy texture.
In a small bowl, whisk together the oil, eggs, sour cream, and vanilla, and add them to the dry ingredients. Mix until combined.
Finally, pour in the milk, and beat on medium-low until smooth and creamy.
Divide the batter evenly between 3 bowls, and color one green, one orange, and one purple.
Split the batter evenly among the prepared liners, alternating colors as you layer. Using a toothpick, swirl the colors gently to create a marble effect.
Bake for 15-17 minutes, until a toothpick inserted in the center comes out with just a few crumbs. Let cool completely before frosting.
To make the frosting, beat the butter until creamy in the bowl of a stand mixer fitted with the whisk attachment,
Add in the powdered sugar, one cup at a time, followed by the cocoa and cream. Add more or less as needed to get the right consistency
Stir in the salt and vanilla, and add food coloring as desired.
Decorate the cupcakes with a 1M tip, top with sprinkles, and top with a plastic spider.