Bring a large pot of water to a boil. When it is boiling, salt the water and cook the pasta to al dente, drain.
Meanwhile, in a saucepan, melt the butter over medium heat.
Add the flour to the melted butter, and cook for 3-4 minutes, stirring until the roux thickens and starts to brown.
Slowly add the milk to the roux, stirring constantly.
Add the salt, pepper, garlic powder, onion powder, and cayenne pepper, stirring to combine.
Add about ¼ cup of the cheese to the milk, stirring to melt the cheese. Continue to add the cheese in small amounts, stirring between additions, until all the cheese is added.
Stir in the hot sauce.
Fold in the cooked and drained pasta.
Serve immediately.