Link: extremely simple networking

:incoming_envelope: Link

Extremely simple (~50 lines) networking library that allows you to put all your remotes inside a single ModuleScript in a quick and possible way.


Motivation

People who like having all their remotes in a single ModuleScript in order to have only one source of truth usually run into a problem:

local Remotes = {
    SendMessage = Instance.new("RemoteEvent"),
}

return Remotes

That code simply does not work at all.

Reason is, since it is meant to be accessed by both the client and the server, both environments create their own version of the RemoteEvent. If, on the client-side, SendMessage points to a RemoteEvent that is different from the server-side one, they simply aren’t linked together at all, thus not working.

Now, if we replace Instance.new("RemoteEvent") with Link.event(), the RemoteEvent, this time created with Link, will be the same between the client and the server, thus making the code work as expected (explained in the documentation).


Other Libraries

Why did you choose to create your own instead of using other similar libraries available, like EasyNetwork or Rbx-Net? Basically, at least the ones I know about, are too complex for the simple project I had in mind or are written in a way that doesn’t match it.

Custom signals, multiple ways of firing them, too much abstraction, and maybe more, were all things I didn’t really need and added extra overhead to my lil simple project.


Installation

Studio: Link - Roblox
Wally: Wally


Documentation

Yes, documentation for 2 functions (:

3 Likes

If I correctly understand how this works, then it will be a big help as I do tend to cram all of my remotes into a single ModuleScript.

You set up a Docusaurus site for two functions…

2 Likes

It just makes sure the server-side remote is the same as the client-side one.

I used Moonwave to make the API, so it didn’t take too long.

This should help me a lot, thank you!

1 Like