How to ignore other clients?
Hello! I want to ask something. Im currently building an anticheat system. if other players looks like cheating, i want to ignore that player. anyway... how can i 'ignore' that client and stop recieving any message(health info, realtime transform, realtime view,playername,etc)? is "Destroy(cheatingClient.gameObject)" enough to stop recieving any message from that player? i didn't want to use "Realtime.Destroy(cheatingClient.gameObject)", cuz hackers can use that for banning other players
Thanks
7 Replies
Hi @Vincent TOSD. I'm kapa.ai, your friendly support bot. I will try to answer your question by searching through the knowledge base. :wave:
----------------------
I apologize, but the knowledge sources provided do not contain specific information about implementing an anti-cheat system or ignoring specific clients in NormalVR. The documentation focuses more on general concepts like ownership, server authority, and basic multiplayer functionality.
However, I can provide some general guidance based on the available information:
1. Simply destroying the GameObject of a suspected cheating player locally using
Destroy(cheatingClient.gameObject)
would not be sufficient to stop receiving network messages from that client. This would only remove the visual representation of the player from your local scene.
2. Using Realtime.Destroy()
is not recommended in this case, as you correctly pointed out, it could potentially be abused by hackers to ban other players.
3. NormalVR uses a datastore to track all state in a room, and the server enforces ownership rules. This suggests that a proper solution would likely involve server-side validation and authority rather than client-side ignoring of messages.
4. The documentation mentions that Normcore Private includes the ability to run authoritative game servers (Authoritative Servers (https://normcore.io/documentation/normcore-private/authoritative-servers)). This might be a more appropriate approach for implementing anti-cheat measures, as it would allow you to validate player actions on the server.
For a proper implementation of an anti-cheat system or client ignoring functionality, you would likely need to consult with the NormalVR team directly or look for more specific documentation that is not provided in the given knowledge sources. The current information doesn't cover the specific use case you're asking about.
----------------------
Note: you can ask me a follow up question by @ mentioning me again :speech_balloon:
----------------------<@734293603735699456> Kapa.ai is still learning and improving, please let me know how I did by reacting below.
I didnt use normcore private anyway....
Best use a player ID platform like unity auth or epic online services to ban player IDs and prevent them from joining in the first place
and wait a couple weeks to ban them so they don't know when they've been caught, makes it harder to figure out a way to skirt the system
but it takes too long, the cheater can still playing and finally dissapear after i banned manually. i want the player ignore the cheatingclients and automatically reports to me. so the cheater can't deal any damage (bcs other clients ignore the cheater, the cheater looks like a spectator lol), and theres a time for me to ban the cheater.
if you ban someone for going speed 200 they'll know straight away and set the speed to 199
best not to give them any information
you can also put them in a different matchmaker pool so they only play with other cheaters
hmm, its a good solution too.
anyway, thanks for your response
im will think it again later