Where to store enemy related variables after enemy died?

I feel like there are hundreds of topics like this but somehow im unable to find an answer. Sorry if im dumb.

Goal:
Enemy is spawned->Enemy is killed->Save information that enemy is killed which gives exp to enemy, which gives him levels which gives him more dmg, speed etc->Apply modifiers to new spawned enemy->Enemy is spawned.

I cant store those exp, lvl variables in enemy BP as enemy die so idea is:
Variables stored in “somewhere” BP
cast to “somewhere” variables before destroy actor
and cast to “somewhere” on event begin play to get this enemy lvl information back.

If im thinking right way then my problem is to find “somewhere” BP. I tried enemy controller, other actor, game instance.

All I found here is that it doesnt matter where u store variables in single player game. Yet somehow I cant find single place which will save those info and let me cast itxd. Thanks for help.

you can use “Event Destroyed” so when your enemy destroy new enemy spawn Stronger.
for this, you must
1.set your variable “Instance Editable” and Expose on Spawn".
2.destroy your enemy.
3.on “Event Destroyed” spawn your enemy again with new data.

Thank you both for good answers, probelm solved. I will use game instance for more flexibility.

If it is single player, game instance is fine.

Although save game is better. Imagine scenario:

Enemy gains experience.
Player kills enemy
Player quits

Player restarts game
Enemy experience is lost.

So save game is better.