There is a gear icon next to my script in the add component menu and I would like to know why.
It’s because your script has class name called “GameManager” which by default Unity will pick the Gear icon for it rather than C# icon.
This is baked into Unity, but it’s a fake problem. It arises only when you put your user-written code into the global namespace. Don’t do it!
The real answer is that all user-written script code should be in its own namespace – that’s what the feature is there to do. It would help if the Unity templates adopted that convention.