Ce qu'un serveur doit vérifier, à chaque appel
La liste est courte et elle ne souffre pas d'exception. Elle tient en quelques lignes par remote et évite la quasi-totalité des tricheries courantes.
- Le type de chaque argument, avec typeof — un client peut envoyer une table là où tu attends un nombre.
- Les bornes : une quantité négative, un identifiant inexistant, une chaîne de 10 000 caractères.
- L'existence et l'appartenance de la cible : l'objet existe-t-il, et ce joueur a-t-il le droit d'y toucher ?
- La distance, dès que l'action est physique : on n'achète pas une machine à cent mètres.
- La fréquence : une table des derniers appels par joueur, et un refus silencieux au-delà.
Ce qui ne protège pas
Cacher un remote dans un dossier obscur, vérifier côté client avant d'envoyer, ou obfusquer un script local : rien de tout cela n'arrête quoi que ce soit. Le client est entièrement sous le contrôle du joueur.
À l'inverse, le serveur n'a aucune raison de faire confiance et beaucoup de raisons de refuser en silence : un tricheur qui reçoit un message d'erreur apprend comment contourner la règle.
Questions fréquentes
Faut-il chiffrer les échanges client-serveur ?
Non. Roblox s'en charge. Ce qui manque n'est jamais le chiffrement, c'est la validation côté serveur.