I've seen some talk regarding the new way to use AddComponent. I know it was probably considered a cheap hack the way I used to use it. What I don't seem to be able to find is: how am I now to refer to scripts abstractly? What I had before was basically Skill newSkill = (Skill)hero.gameObject.AddComponent (nameOfSkill) as Skill; What I was doing was passing in the name of the component as nameOfSkill. Each skill was in its own script. I'm not sure if there's any way to do this without hardcoding each skill name.