3. You can make a X mark at the enemy spawn point, because it's annoying enemy spawn on you or witch spawn outside the screen.
4. Set different value or change your sword property because it's not worth it to by more expensive sword since wooden one it's the most cheap one and it's also good, so I just spamming buying wooden one because other sword just break fast. You can make your sword have different damage or whatever, at least give player a reason to buy
It's really laggy, so here's some advices:
1 You said you gonna tell player sword has duration, which is necessary because I know this after I tried first time and checked your code.
2 If you still want the blood in the game, code it like this:
When it created:
If it's not in the screen view, destroy this actor.
When it go out the screen view, destroy it.
Because if you just destory it after 10sec, in the late game it still can has plenty of blood that causing lag. You also can just delete the blood or just let it exist for 1 sec is good enough