Skip to main content

NetWire

NetWire is a networking library that enables functionality similar to Sleitnick's Comm library, except it doesn't require the usage of intermediate instances.

Basic usage:

-- SERVER
local NetWire = require(Packages.NetWire)
local myWire = NetWire("MyNetWire")

myWire.MyEvent = NetWire.createEvent()

myWire.MyEvent:Connect(function(plr: Player, msg: string)
    print(plr, "said:", msg)
end)
-- CLIENT
local NetWire = require(Packages.NetWire)
local myWire = NetWire("MyNetWire")

myWire.MyEvent:FireAll("Hello, world!")

Properties

Client

This item only works when running on the client. Client
NetWire.Client: ClientNetWire

Server

This item only works when running on the server. Server
NetWire.Server: ServerNetWire

Functions

createEvent

This item only works when running on the server. Server
NetWire.createEvent(
inboundMiddleware{ServerMiddleware}?,
outboundMiddleware{ServerMiddleware}?
) → ServerRemoteEvent

Returns an EventMarker that is used to mark where a remoteSignal should be created. Calls ServerNetWire:RegisterEvent() when set to the index of a ServerNetWire. See ServerNetWire:RegisterEvent for more information.

local MyWire = NetWire.Server("MyWire")
MyWire.MyEvent = NetWire.createEvent()

MyWire.MyEvent:Connect(function(plr: Player, msg: string)
    print(plr, "said:", msg)
end)

createUnreliableEvent

This item only works when running on the server. Server
NetWire.createUnreliableEvent(
inboundMiddleware{ServerMiddleware}?,
outboundMiddleware{ServerMiddleware}?
) → ServerRemoteEvent

Returns an EventMarker that is used to mark where a remoteSignal should be created. Calls ServerNetWire:RegisterEvent() when set to the index of a ServerNetWire. See ServerNetWire:RegisterEvent for more information.

local MyWire = NetWire.Server("MyWire")
MyWire.MyEvent = NetWire.createUnreliableEvent()

MyWire.MyEvent:FireAll("Hello, world!")

createProperty

This item only works when running on the server. Server
NetWire.createProperty(
initialValueany?,
inboundMiddleware{ServerMiddleware}?,
outboundMiddleware{ServerMiddleware}?
) → ServerRemoteProperty

Returns an PropertyMarker that is used to mark where a remoteProperty should be created. Calls ServerNetWire:RegisterProperty() when set to the index of a ServerNetWire. See ServerNetWire:RegisterProperty for more information.

local MyWire = NetWire.Server("MyWire")

MyWire.MyProperty = NetWire.createProperty(0)

print(MyWire.MyProperty:Get()) -- 0
Show raw api
{
    "functions": [
        {
            "name": "getClient",
            "desc": "Returns a ClientNetWire from the cache, if it exists.",
            "params": [
                {
                    "name": "wireName",
                    "desc": "",
                    "lua_type": "string"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "ClientNetWire?"
                }
            ],
            "function_type": "static",
            "realm": [
                "Client"
            ],
            "private": true,
            "source": {
                "line": 195,
                "path": "lib/netwire/src/ClientWire.luau"
            }
        },
        {
            "name": "createEvent",
            "desc": "Returns an EventMarker that is used to mark where a remoteSignal should be created.\nCalls ServerNetWire:RegisterEvent() when set to the index of a ServerNetWire.\nSee ServerNetWire:RegisterEvent for more information.\n\n```lua\nlocal MyWire = NetWire.Server(\"MyWire\")\nMyWire.MyEvent = NetWire.createEvent()\n\nMyWire.MyEvent:Connect(function(plr: Player, msg: string)\n    print(plr, \"said:\", msg)\nend)\n```",
            "params": [
                {
                    "name": "inboundMiddleware",
                    "desc": "",
                    "lua_type": "{ServerMiddleware}?"
                },
                {
                    "name": "outboundMiddleware",
                    "desc": "",
                    "lua_type": "{ServerMiddleware}?"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "ServerRemoteEvent\r\n"
                }
            ],
            "function_type": "static",
            "realm": [
                "Server"
            ],
            "source": {
                "line": 497,
                "path": "lib/netwire/src/ServerWire.luau"
            }
        },
        {
            "name": "createUnreliableEvent",
            "desc": "Returns an EventMarker that is used to mark where a remoteSignal should be created.\nCalls ServerNetWire:RegisterEvent() when set to the index of a ServerNetWire.\nSee ServerNetWire:RegisterEvent for more information.\n\n```lua\nlocal MyWire = NetWire.Server(\"MyWire\")\nMyWire.MyEvent = NetWire.createUnreliableEvent()\n\nMyWire.MyEvent:FireAll(\"Hello, world!\")\n```",
            "params": [
                {
                    "name": "inboundMiddleware",
                    "desc": "",
                    "lua_type": "{ServerMiddleware}?"
                },
                {
                    "name": "outboundMiddleware",
                    "desc": "",
                    "lua_type": "{ServerMiddleware}?"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "ServerRemoteEvent\r\n"
                }
            ],
            "function_type": "static",
            "realm": [
                "Server"
            ],
            "source": {
                "line": 520,
                "path": "lib/netwire/src/ServerWire.luau"
            }
        },
        {
            "name": "createProperty",
            "desc": "Returns an PropertyMarker that is used to mark where a remoteProperty should be created.\nCalls ServerNetWire:RegisterProperty() when set to the index of a ServerNetWire.\nSee ServerNetWire:RegisterProperty for more information.\n\n```lua\nlocal MyWire = NetWire.Server(\"MyWire\")\n\nMyWire.MyProperty = NetWire.createProperty(0)\n\nprint(MyWire.MyProperty:Get()) -- 0\n```",
            "params": [
                {
                    "name": "initialValue",
                    "desc": "",
                    "lua_type": "any?"
                },
                {
                    "name": "inboundMiddleware",
                    "desc": "",
                    "lua_type": "{ServerMiddleware}?"
                },
                {
                    "name": "outboundMiddleware",
                    "desc": "",
                    "lua_type": "{ServerMiddleware}?"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "ServerRemoteProperty\r\n"
                }
            ],
            "function_type": "static",
            "realm": [
                "Server"
            ],
            "source": {
                "line": 540,
                "path": "lib/netwire/src/ServerWire.luau"
            }
        },
        {
            "name": "getServer",
            "desc": "Returns a ServerNetWire from the cache, if it exists.",
            "params": [
                {
                    "name": "wireName",
                    "desc": "",
                    "lua_type": "string"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "ServerNetWire?"
                }
            ],
            "function_type": "static",
            "realm": [
                "Server"
            ],
            "private": true,
            "source": {
                "line": 553,
                "path": "lib/netwire/src/ServerWire.luau"
            }
        }
    ],
    "properties": [
        {
            "name": "Client",
            "desc": "",
            "lua_type": "ClientNetWire",
            "realm": [
                "Client"
            ],
            "source": {
                "line": 95,
                "path": "lib/netwire/src/ClientWire.luau"
            }
        },
        {
            "name": "Server",
            "desc": "",
            "lua_type": "ServerNetWire",
            "realm": [
                "Server"
            ],
            "source": {
                "line": 478,
                "path": "lib/netwire/src/ServerWire.luau"
            }
        }
    ],
    "types": [],
    "name": "NetWire",
    "desc": "NetWire is a networking library that enables functionality similar to Sleitnick's [Comm](https://sleitnick.github.io/RbxUtil/api/Comm/) library,\nexcept it doesn't require the usage of intermediate instances.\n\nBasic usage:\n```lua\n-- SERVER\nlocal NetWire = require(Packages.NetWire)\nlocal myWire = NetWire(\"MyNetWire\")\n\nmyWire.MyEvent = NetWire.createEvent()\n\nmyWire.MyEvent:Connect(function(plr: Player, msg: string)\n    print(plr, \"said:\", msg)\nend)\n```\n```lua\n-- CLIENT\nlocal NetWire = require(Packages.NetWire)\nlocal myWire = NetWire(\"MyNetWire\")\n\nmyWire.MyEvent:FireAll(\"Hello, world!\")\n```",
    "source": {
        "line": 29,
        "path": "lib/netwire/src/init.luau"
    }
}