Warp - very fast & powerful networking library

github is on high volume on processing support tickets.

Warp | 1.0.4


  • Add .fromServerArray (to create new server events with arrays, without need to create each by each)
  • Add .fromClientArray (to create new client events with arrays, without need to create each by each)
  • Fix Duplicate possible on creating Warp Event (Internal)
-- Server
local Events = Warp.fromServerArray({
["Test"] = {
maxEntrance = 50,
interval = 1
}, -- with rateLimit
"Test2", -- without rateLimit
["Test3"] = {
maxEntrance = 10,
}, -- with rateLimit
})

Events.Test:Connect(function(...) end)
Events.Test2:Connect(function(...) end)
Events.Test3:Connect(function(...) end)

-- Client

local Events = Warp.fromClientArray({ "Test", "Test2", "Test3" })

Events.Test:Connect(function(...) end)
Events.Test2:Connect(function(...) end)
Events.Test3:Connect(function(...) end)

Get .RBXM from github
With Wally
Get Module (Roblox Creator)
Download .RBXM file - v1.0.4

is the warp event with arrays have better performance then the regular warp event. Since iit wont be creating events for each screenshot, it would be alot faster.

its the same (performance), it just make you easier and faster to creating events.

When will the wally package version release for this?

Good news! my github account just unlocked recently so now i can publish new version to github & wally!

Edit: new update version updated to wally & github, also repo & documentation is back!

Edit 2: Sorry for missing v1.0.3, accidently skipped v1.0.3.

Edit 3: updated docs for version 1.0.4

Upcoming update in 1.0.5:

  • Cached incoming packets data for undefined events (aka event is not created yet on client), Once the client-side defined the event, that cached packets will processed as pre-process, This internal-feature for preventing potential packet-loss.

ok, Also what else is coming out in 1.0.5 ?

also tbh the update is really helpful since i can just send gameid stuff and game id mof info and chat stuff and more on one single event with arrays. Also are you working on bindable support for the warps next update?

Warp | 1.0.5


  • New: Cache Incoming packet for undefined event (created but not connected/binded) (Internal Feature)
  • New: Signal

Full Changelogs - v1.0.5
Get .RBXM from github
With Wally
Get Module (Roblox Creator)


finally, i can rest now.

I see you added signal arrays what does that do? it looks to be similar to bindable event

wow it is thanks for adding it, my bot game will finally not lag every time it updates the mod info
and it also fixed the chat thing issue

do i have to repeat it again?

This text will be blurred

How do networking libraries like these work? How is sending blank remotes with networking libraries faster than sending them with normal RemoteEvents?

got an error when trying to fire the player thing and a message: ReplicatedStorage.Warp.Index.Server.ServerProcess:90: table index is nil - Server - ServerProcess:90

heres code:

local thing = script.Parent
local warp = require(game.ReplicatedStorage.Warp)
local send = warp.Server('orangesend')
thing.MouseButton1Click:Connect(function(player)
	send:Fire(true,player,'orange')
end)

firing from the server script.

making a thing where u can color the keyboard to your liking.

just trying to make my game as clean so i dont get confused.

:skull: you firing from server and ur doing .MouseButton1Click with player parameter which is not exist.

1 Like

gotta love the builders man

This text will be blurred

what’s the easiest way to migrate regular remotes/events to this? or is the best way just to go through every script that has a remote and change the lines

u can keep the remote event instances and open find & replace all menu then write :FireServer( and on replace box :Fire(true, then replace all, this will replace all method for FireServer on every scripts (specially for client like localscript), for server you can do :FireClient( to :Fire(true, and :FireAllClients( to :Fires(true, .

and for batching remote events to warp you can do:

-- ex:
-- local Remote1 = ReplicatedStorage:WaitForChild('"RemoteEvent")
local Remote1 = Warp.Server("Remote1")
local Remote2 = Warp.Server("Remote1
2")
local Remote3 = Warp.Server("Remote3", {
maxEntrance: 10,
interval: 0.75,
})
-- or
local Events = Warp.fromServerArray({

"Remote1",
"Remote2",
["Remote3"] = {
maxEntrance: 10,
interval: 0.75,
},-- if you like to set a rate limit for this event (remote3)

}) -- for multiple events (shorten, easiest & faster)

-- usage
Remote1:Fires(true, "hello") -- use reliable event
Remote2:Fires(false, "sup") -- use unreliable event

Events.Remote1:Fires(true, "hello") -- use reliable event
Events.Remote2:Fires(false, "sup") -- use unreliable event

do i even looks rude? just because the emoji?

I’ve personally forked this and made this change but I suggest moving the reliable boolean to the .new method of server/client. its redundant specifying if a remote should be reliable or not on each fire. i think the value of network modules come from less boiler plate code.