I created a player class that uses a knife as one of its weapon. The knife is a component of the player class. When the knife overlaps another player it destroys that player. However when one player is the server and the other is a client, the server is able to destroy any player like it’s suppose to but the client destroys itself when it hit another player. I tried messing with multicasting, but it still didn’t work. I used a print string node to see what the player is detecting, the server detects the other players but the clients only detect themselves.
Here’s the code from the player class that handles the knife collision:
Are you sure is nice / required workflow, to detect collision on client and send a server command to do action based on it? I Assume action happens on server and on client simultaneously, if that’s true, collision happens on server and on client as well, which means its good practice to completely ignore/only spawn visuals for client collision detection and execute all important logic on server, to prevent cheating and ping based dsync.
Bump because this is still an issue. Client detects collision at a different point than server. Test for yourself. Just put a huge collision box in your level. Walk into it and you’ll see that the client detects collision way before server does. Its as if the server thinks the collision box is much smaller than the client-side one.