The Basics of adjusting your game to the removal of Experimental Mode with FilteringEnabled

Yes, I already said that it should be well avoided.

Decent tutorial. It, of course, does not cover all of what is needed to know about FilteringEnabled/non-experimental mode, but it hits the primitives just as it should. Nicely done

Some things that haven’t been mentioned (or have been, but I just never noticed):

  • Environment trust. Remember that you can’t trust the client. The client should be handling things only they can see and asking the server for permission to run global effects (i.e. client asks to change to x team, server checks if they are allowed to be on it and changes their team if they pass permissions).
  • Be wary of where you put your variables. It makes all the difference where you put just one variable. You don’t want to have a remote where the client requests to damage someone and supplies, say, damage values - an exploiter could pass a higher-than-expected damage count.
  • Determine which remote you require. Remote events act like spawn() or separate threads in the sense that they don’t yield the script. Remote functions are for when you wish to have callback functions and want the script to yield until the function returns a result. Always check over your code and make sure you have that return in there.
  • Organization is your friend. You ideally want to keep all remotes in folders within ReplicatedStorage unless there is a reason you need it elsewhere.

:+1:

3 Likes

yep, I should change the title to tips.

2 Likes

Another inportant feature I would add on: don’t trust the client with anything important such as data stats or important values.

1 Like

I think you should add something from what Echo has said. It is very important when it comes to Remotes.

2 Likes

Filtering Enabled, is the best and only way to program games. I completely agree with the ideas expressed in this post!

1 Like

I’m going to share this with newer devs! Thanks for the info

1 Like

I would probably refrain from doing so until it is updated, since FilteringEnabled is no longer a thing they need to take into account anymore (there’s no experimental mode anymore, everything is effectively FilteringEnabled), so it might unnecessarily confuse them as it is right now.

2 Likes

Thanks Build. You’re the man.

1 Like

Thank you for this Thomas! Will share this with a few friends struggling as I was.

2 Likes

Alright, I made some slight updates, the post is still relatively old, but I do hope to upload a video soon, sorry for the inactivity on this post.

1 Like

Lots of my friends sadly are too “lazy” or too “ignorant” to learn Remote Events and resort to using putting a server script and using script.parent.parent.parent.parent.etc… So I pretty much use your post to teach them remote events. The non-ignorant ones learned with some help from me but the ignorant ones are still using the bad method.

1 Like

ok but what if its just a building showcase etc…

1 Like

Then you don’t need to change anything, it’s only a script thing.

1 Like