NEVER trust the client.. trust 50% of them?

Okay. So yeah I know creative title but this has actually got me wondering, so basically I’m creating this system of anchored lasers that are controlled by custom physics and I have the server handling the physics but also the clients aswell (the server tells the client to make them), and right now i’m sorta having a problem syncing their movement but it got me thinking what if i completely removed the server portion well not completely but what if I told the clients to create the laser and do physics on them and then when an interaction would happen on the client I’d tell the server and the server would proccess the interaction from every client and if 50% or more of them agree that the interaction was valid then display that change on every clients simulation…?

I feel like a con of this could be if 50% of players are exploiters…?

1 Like

This would be possible but would be hard to implement.
Thought of this but abandonned because yeah what if?
Also what if there’s all the clients returning different values? Which would happen constantly because of ping?

maybe, let the client handle the visuals and the server can just handle the position/location of lasers

that way if the client somehow messes with the lasers, it only be affected to them not for everyone else

you dont trust the client at all. The only purpose of the client is to recieve inputs like when the client presses a button or presses E. all of the logic should be done on the server. Furthermore, dont trust the client also means you secure your remote events. Giving them “50% trust” would essentially be the same as doing only 50% to prevent remote event abuse. You trust the client 0%.

Although the client can be used to handle some physics to improve preformance, at least ensure that you put checks on the server of some kind.