Preheat and prep the squash. Heat oven to 400°F (200°C).
Carefully slice the spaghetti squash lengthwise and scoop out the seeds. Rub the cut sides with butter and a pinch of salt and pepper. Place cut-side down on a parchment-lined sheet pan.
Roast until tender. Bake 35–45 minutes, depending on size, until the flesh shreds easily with a fork.
Let it cool slightly, then use a fork to pull strands into a large bowl. Keep the shells if you’d like to use them as “boats.”
Crisp the bacon. While the squash roasts, cook chopped bacon in a large skillet over medium heat until crispy, about 7–9 minutes. Transfer bacon to a paper towel–lined plate.
Reserve 1–2 tablespoons bacon fat in the skillet.
Make the ranch cream sauce. In the same skillet, add minced garlic and red pepper flakes to the bacon fat. Cook 30 seconds until fragrant. Lower heat to medium-low, then stir in heavy cream and cream cheese.
Whisk until smooth. Add ranch seasoning and half of the Parmesan. Simmer 2–3 minutes to thicken slightly.
Taste and adjust salt and pepper.
Combine with squash. Add the spaghetti squash strands and most of the bacon to the skillet. Toss to coat. Fold in half of the mozzarella and a handful of green onions.
Bake for the finish. Transfer to a greased baking dish (or pack back into the squash shells).
Top with remaining mozzarella and Parmesan. Bake at 400°F for 10–12 minutes until bubbly, then broil 1–2 minutes to lightly brown the top.
Garnish and serve. Sprinkle with remaining bacon, extra green onions, and parsley. Serve hot.