I am new to game making but do have about 3 years of programming experience, typically with Python and SQL, so I know a fair amount about programming but certain things get me messed up with trying to build a game. The biggest issue I am having right now is trying to make persistent power ups that carry throughout levels/scenes. Right now my approach has been to make a Singleton that has a dictionary that holds values for the melee damage and ranged damage of an attack and then use call that within my player script to decide to play an instance of the regular attack or the upgraded attack. The issue is each time I finish a level it goes back to the non upgraded weapons. I think my issue is I don't understand how to declare these variables in a way that they won't get rewritten each frame. So in my singleton I have my dictionary declared as an empty dictionary then overwritten with the new values but when printing it out it still prints out as both empty then filled with the new values. Any idea what I am doing wrong here? I will gladly upload my scripts if that'll help, I have been stuck on this bug for several days now.