code not running on client

for the better part of about a month i’ve been stuck trying to fix a bug in the code for a multiplayer fps game im making for my game dev class. thankfully i’ve been able to narrow it down to just the engine not running the code on the client, but here’s the thing, for some reason it works the first time the code is ran, but each time after it doesnt run on the client until i pick up a different blueprint with the same parent blueprint

attached is all of the code relating to the issue

pickup code in the WeaponBase blueprint


pickup code in PlayerBase blueprint

You claim “it doesnt run on the client” yet I see you’re executing all your code on the server via server RPCs?

At some places you send additional server RPCs even though that piece of code should already run on the server.. why is that?

:warning: never use tick and delay too much performence eater and delay are not controllable use timer and promote the timer handle so you can clear it when not needed to avoid memory leaks . in the actor using on overlap , make sure always relevant true , replicates true and if movement , replicates movement true. switch has autorithy should be before branch of actor has tag and you should collapse all of the logic in a server event and can loot weapon have to be replicated. add overlapped weapon can be mulitcast. also i use delay only inplayer controller to wait player starts load just like engine breathes :wink: . good luck and if you have issue let me know else if it helped glad to help you

also you should make a server event SR_RemoveWeaponPickup to destroy pickup and also add do once if actor has tag == Player or better than actor has tag : does object implement interface INT Player Base true : your logic or logic that i said

The On Begin Overlap (Collision Sphere) logic is only ever executed by the server proxy.

Switch Has Authority (Authority) == SERVER/Host

100% of the code shown is running strictly on the server.