Fire event between class blueprints

Point 3) is definitely your problem them. When you create a variable, that is all it is. It is a variable of type MainGame that can be any MainGame in your game so you need to specify which instance of MainGame it points to.

You have different ways to do it. The simplest way is the following:

Now, this wouldn’t exactly work in your case ,since the spawned objects don’t exist in the scene, and you have different options depending where you spawn them. Iterators or expose on spawn pins are some options.