Should I be using remotes?

Not really a concrete issue with a concrete solution, but generally speaking, should I be using RemoteEvents for communicating between server and client? There seem to be many modules that use their own form of server-client communication (I’ve seen one called Signal, Replica also comes to mind). Long story short:

  1. Is there anything these modules do that I CANNOT do with remotes? To my knowledge, the answer is no, but please do confirm/correct this.
  2. Is there any actual performance difference between these modules and using remotes or is the benefit of these modules purely for workflow and sanity?
  3. Overall, would you say it is worth transitioning towards using something like Replica for your average game needs (think inventory systems, GUI displays and so on).
1 Like

remotes are faster, modules like replica just use them

I see, so all benefits are purely convenience.

1 Like

I’ve used replica before, but it was because I was making an extremely complicated game, that was in 2d guis, and so I had to make my own replication system, and replica was useful there because it had frameworks for it. But for basic needs, stick to normal events.

Any module that does server-to-client or client-to-server replication uses RemoteEvents/RemoteFunctions under the hood. They are the only way to send and receive data to and from clients.

The question is if you want a framework to handle events for you, or if you would rather implement your own signal handlers. Most of the time, you shouldn’t need third-party vendors for simple replication or event handling.

…what else are you supposed to use?? telekinetic powers???

2 Likes

No, that’s crazy. You’re supposed to print out a paper with binary data on it, give it to a pigeon, and fly it over to the roblox data center.

I guess I should probably make this post not spam so jokes aside, you should read up on client ↔ server communication and the documentation on remote events. You can’t send data between server and client without using remote events or certain APIs that use things like remote events.

https://create.roblox.com/docs/scripting/events/remote#client-server

https://create.roblox.com/docs/projects/client-server

3 Likes

all of these modules are just Roblox stuff wrapped up in some usually easier to use functions, a lot of them talk about being faster, more performant, blah blah blah, but it’s bs

There are some insane performance benefits you can get with the optimizations (some of) these modules put into place for you. Its just that they are scenario specific and everything comes with overhead.

Good question.

Frameworks like Replica are built on top of remotes. They handle replication, syncing, and structured data for you, so you write less repetitive code and reduce the chance of mistakes. They don’t replace remotes. They just wrap them in a more convenient workflow for bigger or more complex games. However when starting a program, using RemoteEvents and RemoteFunctions is usually better. They give full control, let you design exactly how the system works, and avoid adding unnecessary abstraction before you know what the program needs. Frameworks are better later, once the system is bigger and more complex. Modules like Replica don’t unlock new powers, they just improve workflow.

Key point: use frameworks for bigger or more complex games.

That would be the textbook explanation. Myself, I don’t use modules like Replica, but I do use modules all the time. Probably not as deeply as others. But when you get into deep scripting with very complex games, I start to use modules heavily.

Take a look at the race template. This is very complex and it’s pretty much all module based.
It’s unlikely the Racing Template started fully module based. The template has been refined over time, adding modular systems and improvements as it evolved.

2 Likes

I’ll make a local script that makes the player character perform specific actions and move around in a specific way, then I’ll take advantage of their character automatic replication to the server to pick up those movements and convert them to data/instructions to follow on the server-side.

1 Like

lol, kind of like how bees communicate the location of food.

You could totally make a Turing complete interpreter using nothing but client dance patterns.

1 Like

I was unaware that all of the modules are really just streamlining the use of remote events as opposed to replacing them :sweat_smile:. Thanks for the replies guys.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.