C9 Server-Client Connector

Download the module here.

Easy-To-Use Server-Client Connector

C9 is a module system that allows streamlined Server-Client connection. No more folders with thousands of RemoteEvents/BindableEvents/RemoteFunctions/BindableFunction (eesh)

Setup:

  1. Import the module into your studio, it should look something like this:
    image
  2. Relocate contents, module in ReplicatedStorage, Script in ServerScriptService like this:
    image
    image
    (either of these can be within folders or nested in some way under these services)
  3. Use away!

In-Script Usage:

  1. Reference:
    local C9 = require(game.ReplicatedStorage.Library.C9):new()
  2. RemoteEvent equivelant:
    C9:CreateEvent("REMOTE_EVENT_NAME")
    example:
    local Event : RemoteEvent = C9:CreateEvent("BallEvent")
  3. Calling the event:
    C9:Event("REMOTE_EVENT_NAME", Target¹, Parameters)
    example:
    C9:EVENT("BallEvent", "All"²)

Remote functions are the same except :CreateFunction() and :Function

¹ - Target is only necessary from server to client
² - ā€œAllā€ target parameter fires it to all clients

2 Likes

What makes this different from other networking modules like Warp, Bytenet, and Bridgenet?

How is this streamlined connection? it’s just Like Event Based RPC made on top of Roblox remote events. Streamlined connection is what TCP provides to its above layers, the data goes out and in through a continuous data stream from which you can read to/from a specific amount of bytes.

Its neither like that…

I was using the term streamlined in the context of no overcomplications of the base system.

I find that a lot of existing systems have unnecessary methods of binding the server and clients, it’s just a personal opinion and I figured it might be helpful for someone

I’d say ā€˜unnecessary’ is an overstatement. Most popular networking libraries only need to be required to ā€˜bind’ the server & the client. The rest are simple functions like .Event or .Function & .CreateBridge. Each of these libraries also offer a compact amount of optimization in some way or form, I am unsure if this does because I haven’t reviewed the source & there’s no information about it on the post.

This mostly just seems like a wrapper for the native remote events/functions. This is all coming from a constructive standpoint so don’t take it the wrong way.

I’m sure this will be useful to someone

1 Like