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
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 . 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