[ARCHIVED] Warp - very fast & powerful networking library

Running into some errors…


This type error in ServerProcess also:
ezgif-2-863f597e40

change it to
for Identifier: string in registeredIdentifier do

and the buffer doesnt support instances

Really good module in terms of optimization but i have a one problem that I have encountered with the type of the Signal. When making Warp.Signal(), it returns a type “signal” but in the types module, the signal type is called “Signal” and doesnt not match.

republished v1.0.13 contains new fixes (+ support more types to buffer serialization…)
and v1.0.13 now also available on wally package.

Supported data type for buffer using v1.0.13:

  • CFrame
  • Vector3
  • Vector2
  • Color3 (fromRGB)
  • BrickColor
  • Integer
  • Float
  • String
  • Boolean
  • Nil
  • Sequential & Non-Sequential Table
  • Standard Instance (with Attributes)
  • Enum
  • EnumItem

I’m not sure how this is happening, but it seems like different remotes are being picked up by the wrong connections, even though they have entirely different identifiers (the Identifier string is the same as the variable name, ex. “AntiExploitNet”).
ezgif-1-52072d78fb
ezgif-1-70e20b9cce
Issue:

how do u produce this issue?

have 2 different remotes with 2 different identifiers (ex. warp.Client(“Lol”), warp.Server(“Lol”) and warp.Client(“xd”), warp.Server(“xd”)) and just fire one from the client and the wrong server connection will pick it up. I assume this also happens when you fire a remote from the server and the wrong client connection picks it up.

wym wrong connection picks up by? could u explain it more? maybe u can create a new template test to produce the issue?

Create two LocalScripts and two ServerScripts. In one pair, cache a RemoteEvent using the same identifier; in the other pair, cache a RemoteEvent with a different identifier.

Design two buttons:

  1. One button fires an event to print a specified message on the server.
  2. The other button fires an event to kick the player with a specified reason.

When the first button is pressed (to print the message), instead of printing, the server should kick the player using the message that was meant to be printed as the kick reason.

Is there some fix to this, it still seems to be present

oh i get what u mean here, the only solution is you have to create another event (separate them) since it fire all listener callbacks…

image

example alternative:

Sample Code
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Warp = require(ReplicatedStorage:WaitForChild("Warp"))

local Events = Warp.fromServerArray({
	"Event1",
	"Event2",
})

Events.Event1:Connect(function(player, message: string)
	print("Script1:Event1", player, message)
end)
Events.Event2:Connect(function(player, message: string)
	print("Script1:Event2", player, message)
end)
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Warp = require(ReplicatedStorage:WaitForChild("Warp"))

local Events = Warp.fromClientArray({
	"Event1",
	"Event2",
})

while true do
	print("client sent!")
	Events.Event1:Fire(true, "hello!")
	Events.Event2:Fire(true, "hey!")
	task.wait(2)
end

image

Just take a look at this:
WarpDebug.rbxl (145.0 KB)

its now should be resolved, you can try it first here
WarpDebug.rbxl (145.2 KB)

also republished to github. for wally i cant republish since already published v1.0.13 before. (so just modify ClientProcess & ServerProcess for the fixes)

1 Like

Also could you add support for Enum.EasingStyle/Enum.EasingDirection? I’m running into issues, because this does not work:

local function tweenToArray(tween: TweenInfo): TweenArray
	local array: TweenArray = {
		Time = tween.Time,
		EasingStyleName = tween.EasingStyle.Name,
		EasingDirectionName = tween.EasingDirection.Name,
		RepeatCount = tween.RepeatCount,
		Reverses = tween.Reverses,
		DelayTime = tween.DelayTime
	}

	return array
end
local function arrayToTween(array: TweenArray): TweenInfo
	return TweenInfo.new(
		array.Time,
		Enum.EasingStyle[array.EasingStyleName],
		Enum.EasingDirection[array.EasingDirectionName],
		array.RepeatCount,
		array.Reverses,
		array.DelayTime
	)
end
local tweenInfoArray = tweenToArray(tweenInfo)
TweenNet:Fires(true, instance, tweenInfoArray, propertyTable, waitAsync)
TweenNet:Connect(function(instance: Instance, tweenInfoArray: TweenArray, propertyTable: {[string]: any}, waitAsync: boolean?)
		local tweenInfo = arrayToTween(tweenInfoArray)

Added more type support to v1.0.13

@ToriumSlurs you can try it. also tween arent supported yet so u have to find another solution for this.

1 Like

Will update warp on wally? (chars)

wally doesnt allow to overwrite existing version that are published, so i cant update to wally with same version.

So do i just disable the tween replication for now? Because it broke after switching over from v1.0.12 to v1.0.13. (It would be really helpful if you added tweeninfo support for the networking lib so i wouldnt have to turn the tweeninfo into an array and then convert it back)

sorry, you can’t send tweeninfo, roblox just won’t let you.