[ARCHIVED] Warp - very fast & powerful networking library


Is it just me or why is the Documentation blank?

@Eternity_Devs fix your Documentation

1 Like

Hey @NOTEKAMI & @gunsgamertv , the documentation site was deprecated but its now fixed.

2 Likes

Hey, I got a small question about the Invoke methods.


If I Invoke the Server how would I receive it on the Server?

As I would usually do RemoteFunction.OnServerInvoke = function()

-- Server
local Event = Warp.Server("Test")
Event:Connect(function(player, argument: string)
    return argument == "Ping!" and "Pong!" else "What?" -- just add a return statement here.
end)
-- Client
local Event = Warp.Client("Test")
while true do
   print(Event:Invoke(2, "Ping!")
   task.wait(0.5)
end
1 Like

I got a question too, is it a good idea to use Invoke() as an alternative to Fire()?
So I can easily switch it from RemoteEvent to RemoteFunction by changing one argument

Purpose:
Client → Server

Example:
Remote:Invoke(0, Data) – RemoteEvent
Remote:Invoke(1, Data) – RemoteFunction

im not recommending using too much on Invokes.

What if I have a Module script which gets required by both Server and Client, and in the Modulescript, I have a remote set, how would I use it as I only got the option to choose between Warp.Client and Warp.Server

u can use RunService, RunService:IsServer() & RunService:IsClient()

1 Like

Hey, I got a small problem with using Warp.Client(“”) in a local script.
I have around 10 RemoteEvents set with Warp.Client, and it delays script execution by almost 5 seconds, I might use a bit to much RemoteEvents, but is there any way I can improve this part of my script, without reducing the amount of Remotes?

The :Destroy() method throws this error in this version
Probably since self._buffer:remove() is already called after being added to ServerProcess

Happens on both server and client

1 Like

yea i kinda have the same issue, my script gets a little slowed down slow whener i use this.

Always declare on the server first.
I prefer to keep 2 Scripts on the server now.
1 the main game loop and stuff and the other Warp.
I declare all the “remotes” there to cache and avoid yielding clients whatsoever.

local cache = {
	-- Inventory
    ItemsInventory = Warp.Server("ItemsInventory"),
	Settings = Warp.Server("Settings"),

	-- Quests
	GetQuests = Warp.Server("GetQuests"),
	Quests = Warp.Server("Quests"),
}
1 Like

v1.0.13

  • Fully integrate with buffer to reliable & unreliable
  • Faster yielding on SerDes & RateLimit
  • Expanded Buffer Util & Added Serialization
  • Removed Logger feature
  • Removed Middleware feature

Warp.rbxm (16.5 KB)

1 Like

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: