ORE (One Remote Event)

It will error if the client tries to call FireClient

Since this function is used to communicate from the server to the client, it will only work when used in
a Script

Source: RemoteEvent | Documentation - Roblox Creator Hub

This is a bad idea , it’s a lot more network efficient to use multiple remotes - using an identifier key is just wasted/useless data - and quite a lot of it.

There’s absolutely no reason to do this vs creating the individual remotes

7 Likes

It’s not wasted useless data, and instead of having 17 remotes in replicatedstorage you have 0

It is. It’s a lot of unnecessary bandwidth just for replicating an identifier string - remotes already have an identifier that gets sent. This becomes even a larger issue if you replicate any data frequently.

So it’s better to have multiple remotes , using 1 makes no sense and is not much more intuitive or easy to do than just creating multiple

13 Likes

I also think I’m going to release a preview build once I get a couple more features in

To be honest. I would not buy this.

Maybe someone would, but I don’t know, I never recommend using Single-Remote Architecture, it just seems – unnatural. There could be overthrottling if using it for more things at the same time.

Plus I don’t really know. Could you answer questions:

  • Why should we buy it if we can do it ourselves?
4 Likes

Actually I did tests at one point, and it can use quite a bit less data if you queue up a bunch of remote calls and send them at the end of the frame using a single remote call. Although to see this improvement, identifier keys will need to either be numbers, or all encoded into a binary string. My game creates identifier keys automatically by connecting custom client objects in the same order as server objects; This means the game can connect potentially thousands of private replication signals without creating and replicating any extra RemoteEvents.

I wouldn’t recommend OP’s module for this though.

10 Likes

Lol what? I gave you my suggestion, if you don’t want worse bandwidth overhead for your projects then don’t send identifier strings into one remote. The fact that you see criticism you dislike when I’m just helping as negativity is a bit absurd.

4 Likes

Why would they need to be numbers, right now for the key’s I use strings.

I’m not sure why I would pay 1000 robux to use one remote event. I personally feel that it would be a lot easier to just make different ones, and I am pretty sure it would make your game perform better to use more than one.

1 Like

As I’ve stated , strings are quite a fair bit of data to be sending just for identifiers when you don’t need them.

It’s not just going to have the current features, I need more suggestions for features.

1 Like

You can just modify your module’s implementation to use a dictionary of remotes rather than just 1 remote. Index the remotes by the name of the key. That way you keep the module of the API the same but you don’t waste bandwidth unnecessarily.

I recommend listening to what veteran developers have to say in the future – they’re suggesting it to help you out, not just to criticize.

7 Likes

Thank you, you’re right that I should’ve listened.

We can measure how much data a remote needs to send in bytes. Basically each character in a string is one byte, so “ExampleRemoteKey” would send at least 16 bytes because it has 16 characters. When numbers are used, it needs to replicate a double which is 8 bytes long.

It’s a little more complicated than this though. Roblox also needs to send the value’s type as well as string lengths. There are cases where a string can use less data than a number, and there are cases where a number can use less data than a string. Here are some rough results using studio’s ‘Performance’ tab today:

Blank remote call: ~9 bytes

string (len 0): 2 bytes
string (len 1): 4 bytes
string (len 2): 8 bytes
string (len 3): 9 bytes
string (len 4): 10 bytes
string (len 5): 11 bytes
string (len 6): 12 bytes
string (len 8): 14 bytes
string (len 16): 22 bytes
string (len 32): 36 bytes

boolean: 2 bytes
number: 9 bytes

table (empty): 2 bytes
table (array with 4 numbers): 38 bytes

EnumItem: 4 bytes
Vector3: 13 bytes
CFrame (axis aligned): 14 bytes
CFrame (random rotation): 20 bytes
49 Likes

Is this still using RemoteEvents? I feel kinda unecessary to buy a module which does the same functions as another, you could create your own remote event system and implement my suggestion, and maybe add other’s suggestions, because… Really, i wouldn’t like to buy a module which is doing the same thing as an implemented in-studio feature for free.

OREModule.rbxm (2.2 KB)

Sorry for bumping, I was wondering and the community might be wondering too.
Where do you get this data, is there a page in which I can see exactly how data is transferred, how big it is, etc?

There’s a section for network usage. Just spam your remote events with something at a constant rate and take an average.

6 Likes

Sorry, I’ve looked at that post a billion times and never seen that, thank you!