This post concerns scripters, however, it may be interesting or useful to understand from another perspective, even if you don’t script; or you’re at all familiar with RemoteFunctions, RemoteEvents, BindableFunctions or BindableEvents.
Let’s start with the definitions of the two words, request and demand:
What's a request?
- “an act of asking politely or formally for something.”
- “to ask as a favor or privilege”
- “the act or an instance of asking for something”
What's a demand?
- “something that someone insists upon having”
- “something necessary, indispensable, or unavoidable”
- “to have as a requirement”
How does this relate to Roblox?
You might be wondering; how does this relate to scripting, especially to Events and Functions?
Well, in any kind of web-based service, there is communication between the client and the server. In these communications, it’s generally agreed that these communications should be treated as requests. The problem is, and this doesn’t just apply on Roblox, many people treat them as demands.
It’s understandable, as when you use events within scripts, you treat them as demands, and when you use BindableEvents and BindableFunctions you treat them (as they should be treated) as demands. When people started using the RemoteEvent and RemoteFunction system, they brought over that same practice as previously.
Well, when you treat client to server requests as demands (the keyword there being ‘requests’), you create massive holes in your game’s security. RemoteEvent and RemoteFunction calls from client to server should always be treated as requests, not demands.
Here’s an example in dialog form:
what not to do
Client: Kill these players
Server: Kills Players
what to do
Client: Hey, would you mind killing these players for me?
Server: Why do you want to kill those players, are you able to kill those players and are you allowed to kill those players?
Client: sowwy im not actually allowed pls no kic-
Server: Kicks player
tl:dr treat remoteevents and remotefunction calls as requests and not demands, or you might get lots of exploity bois