Warp - very fast & powerful networking library

Any workarounds that could be used?

should be resolved now
WarpDebug.rbxl (88.4 KB)
just a little error at the start

patchlog (.rbxm is also get updated)

Thank you!!!

I’m still experiencing minor issues after the update. For instance, the remote doesn’t respond on the first attempt but works correctly on the second. I’m guessing its related to the instance.


You don’t seem to be doing any sort of buffer serialization on any invokes as “requestsData” is what contains the raw un-serialized data, which is also being directly passed into FireClient.
Could this be fixed or added please as one of my main reasons for using this module is the easy buffer serialization?

Hi @Eternity_Devs I’m currently experiencing an issue with the module at first i was getting the same issue blaise was having where they wanted to send an instance to the client but the module

so, I installed the version of the module you sent but now I can’t fire multiple instances in a dictionary over to the client it would just completely get rid of the key to the instance anyways heres all the code i used for this In order

Visuals:InRange(HumanoidRootPart.Position, 80, {"Shadow", {
		Object = Character,
		Animation = M1.Animation,
		Transparency = 0.45, Duration = 0.8,
		animProperties = {[1] = .1, [2] = 1, [3] = 1},
	}})
local Warp = require(Modules.Warp)
local visuals = Warp.Server("visuals")

local Visualsmodule = {}
function Visualsmodule:InRange(OriginPoint, Range, ...) 
	--warn(...); warn(Range); 

	--warn(OriginPoint)
	visuals:FireIn(false, Range, OriginPoint, {...})
end
local visuals = Warp.Client("visuals")

visuals:Connect(function(Args: any, ...: any) 
	if not Args or typeof(Args) ~= "table" then return end

	warn(Args)
	local Type = Args[1]
	local suc, err = pcall(function(...) 
		if Visuals[Type] then
			table.remove(Args, 1); --task.spawn(Visuals[Type], Args)
			Visuals[Type](Args)
		end
	end)
end)

could u try to use warp module from this?
WarpDebug.rbxl (88.4 KB)

id rlly appreciate if this was looked at :sob: :crossed_fingers:

I’m already using this version of the module it just doesn’t work for some reason.

@Eternity_Devs just found out the module sends a random instance each time so sometimes it would send the animation and sometimes it would send the character

image

i get this error when using the new buffer update to send buffers: Buffer out of range. my buffer size is 456456 since i swapped to buffer when i started working on the livestreaming thing again. any chance you can increase the buffer size or have a option to select a buffer size

could u give me a sample?

im not planned for that and not interested with remote invokes.

@Eternity_Devs what can i do to fix this? i used the module you sent it just doesnt work

Pre-release | v1.0.14

ok heres a part of my server script with comments:

local function sendstuff(screenshotSize, colorbuffer)
	if not sent then
		rgbscreen:Fires(true,screenshotSize.x,screenshotSize.y,colorbuffer) -- true is unreliable for some reason
		sent = true
	else
		rgbscreen:Fires(true,screenshotSize.x,screenshotSize.y,colorbuffer)
	end
end

coroutine.wrap(function() -- displays a 144p picture
	while task.wait(1 / framerate) do
		local screenshotSize, rgbVal = getcolor(url)
		if screenshotSize and rgbVal then
			local offset = 0
			for _, rgbs in ipairs(rgbVal) do
				for i = 1, #rgbs, 3 do
					local r, g, b = rgbs[i], rgbs[i + 1], rgbs[i + 2]
					if r and g and b then
						buffer.writei8(colorbuffer, offset, r)
						buffer.writei8(colorbuffer, offset + 1, g)
						buffer.writei8(colorbuffer, offset + 2, b)
						offset = offset + 3
					end
				end
			end
			sendstuff(screenshotSize, colorbuffer) -- out puts "123" in separate lines
		end
	end
end)()

heres a piece of my localscript:

local function updatePixels(updatedRGBValues)
	if pixelscreated then
		local bufferLength = buffer.len(updatedRGBValues)

		for index = 0, bufferLength - 3, 3 do
			local r, g, b = buffer.readi8(updatedRGBValues, index), buffer.readi8(updatedRGBValues, index + 1), buffer.readi8(updatedRGBValues, index + 2)
			local pixelIndex = (index // 3) + 1

			if pixels[pixelIndex] then
				local pixel = pixels[pixelIndex]
				if pixel.BackgroundColor3.r ~= r or pixel.BackgroundColor3.g ~= g or pixel.BackgroundColor3.b ~= b then
			pixel.BackgroundColor3 = Color3.fromRGB(r, g, b) -- colors 144p worth of frames
				end
			end
		end
	end
end


rgbsize:Connect(function(x, y, updatedRGBValues)
	if x and y  and updatedvals then
		ResX, ResY = tonumber(x), tonumber(y)
		if ResX ~= lastresX or ResY ~= lastresy then
			pixelsize = UDim2.new(1 / ResX, 0, 1 / ResY, 0)
			pixels = {}
			PIxelData = {}
			for i = 1, ResX * ResY do
				createpixeldat(i)
			end
			coroutine.wrap(function()
				pixels = createpixel:InvokeServer(PIxelData)
				task.wait(5.5)
				pixelscreated = true
			end)()
			txt.Text = "res: " .. (ResX .. "x" .. ResY) .. 'p'
			lastresX, lastresy = ResX, ResY
		end
	end
	if pixelsCreated and #pixelData > 0 then
		updatePixels(updatedRGBValues)
		countfps(0.3)
	end
end)

ill decrease the size of the buffer until it works on the module and gives a picture. It uses I8 integer to read the numbers from 1 to 255.

maybe u can send me the .rbxl file on private message instead, if you dont mind.

ok
1234567890
1234567890-12345678
but it does require a python script to run so unfortunately i can only screen record the issue

warp dont support to serialize a buffer type, so you dont need to write a buffer since it already dynamic serialize into a buffer. (only >= 1.0.13)

oh ok but i did try out warp before making the move to buffers without the render using buffers and when it would update pixels it would completely freeze the game ever 3ish seconds then updates, so i swapped to buffers to solve my high bandwidth and freeze issue but then didnt work.

it could likely be my script doing it since i didnt have a issue when using a another feature that used 1.0.13 to change color