Forest Logo
search
package_2

network

By @neonifieddev

Roblox

Mirrored

Network

Wally package for easy Roblox networking with schema-shaped packing, batching, unreliable sends, and optional raw fallback.

Install

[dependencies]
Network = "neonifieddev/network@1.0.0"

Then require it from your shared remotes module:

local ReplicatedStorage = game:GetService("ReplicatedStorage")

local Network = require(ReplicatedStorage.Packages.Network)
local Types = Network.Types

return {
	EmptyRemote = Network:Create("EmptyRemote"),

	TestRemote = Network:Create("TestRemote", Network.Struct({
		health = Types.U16,
		Tags = { Types.S16 },
	}))
}

The schema argument is optional. Without it, the remote still batches calls, but sends regular Roblox values without buffer packing or schema validation.

Keyed tables become structs, { Type } becomes an array, nested keyed tables become nested structs, and Network.Map(keyType, valueType, maxPairs) handles dynamic dictionaries.

Types.S16 means a string up to 16 bytes. Use Types.I16 for a signed 16-bit integer.

Instances can be sent too, but they are not buffer-packed:

UsePart = Network:Create("UsePart", Network.Struct({
	part = Types.Instance("BasePart"),
	action = Types.S16,
}))

Roblox sends replicated Instance references through remotes. If a schema contains Types.Instance or Types.Any, Network falls back to normal Roblox serialization for that payload and validates what it can.

Companion Packages

Path-based state replication lives in the separate neonifieddev/subscription package. See Subscription/README.md.

Development

default.project.json is the package project used by Wally. Use dev.project.json for the Studio benchmark/examples.

Package Details

Install command (Click to copy)


Version

1.0.1

License

MIT

check_circle

Safe for commercial use

infoThe package archive does not include its license text; the license is declared in its manifest metadata.

Automated license review — not legal advice.