Blueprint class instances, that are not spawned in the world but still fully functional?

Only Actors are attached to the world, so if you make object class blueprint those can exist outside of the world.

But i think best option for you is to use strictures to hold event data. Think about it, there practicly only 3 elements that are needed to describe the event you put examples of: event type, causing player and target player. So all you need to do is create enum with EventType and structure with EventType and 2 player (PlayerController?) pointers, i don’t know other types of event you have in a head so you can add more varables if needed. Tehn you store strucutre varables in array.

Structures are better for the job, not because they are deattached from the world, but because you don’t need to create UObjects which are a lot heavier, instead structure would only hold 3 varables beside eachother and thats it. Recently i made video describing how structures work and how they are stored in memory in C++ (bleuprints store them the same way):