diff --git a/src/Index/Client/ClientProcess/init.luau b/src/Index/Client/ClientProcess/init.luau index 438632f..6a3d7b4 100644 --- a/src/Index/Client/ClientProcess/init.luau +++ b/src/Index/Client/ClientProcess/init.luau @@ -231,17 +231,16 @@ function ClientProcess.start() end end) local function onClientNetworkReceive(Identifier: buffer | string, data: buffer, ref: { any }?) - if not Identifier or not data then return end + if not Identifier or typeof(Identifier) ~= "buffer" or not data or typeof(data) ~= "buffer" then return end Identifier = Buffer.convert(Identifier :: buffer) + local idx: string = registeredIdentifier[Identifier] + if not idx then return end local read = Buffer.read(data, ref) if not read then return end - for idx: string in registeredIdentifier do - if idx ~= Identifier then continue end - local callback = clientCallback[idx] or nil - if not callback then continue end - for _, fn: any in callback do - Spawn(fn, table.unpack(read)) - end + local callback = clientCallback[idx] + if not callback then return end + for _, fn: any in callback do + Spawn(fn, table.unpack(read)) end end ReliableEvent.OnClientEvent:Connect(onClientNetworkReceive) diff --git a/src/Index/Server/ServerProcess/init.luau b/src/Index/Server/ServerProcess/init.luau index fb616f9..5f99361 100644 --- a/src/Index/Server/ServerProcess/init.luau +++ b/src/Index/Server/ServerProcess/init.luau @@ -304,17 +304,16 @@ function ServerProcess.start() end end) local function onServerNetworkReceive(player: Player, Identifier: buffer | string, data: buffer, ref: { any }?) - if not Identifier or not data then return end + if not Identifier or typeof(Identifier) ~= "buffer" or not data or typeof(data) ~= "buffer" then return end Identifier = Buffer.convert(Identifier :: buffer) + local idx: string = registeredIdentifier[Identifier] + if not idx then return end local read = Buffer.read(data, ref) if not read then return end - for idx: string in registeredIdentifier do - if idx ~= Identifier then continue end - local callback = serverCallback[idx] or nil - if not callback then continue end - for _, fn: any in callback do - Spawn(fn, player, table.unpack(read)) - end + local callback = serverCallback[idx] + if not callback then return end + for _, fn: any in callback do + Spawn(fn, player, table.unpack(read)) end end ReliableEvent.OnServerEvent:Connect(onServerNetworkReceive) diff --git a/src/Index/Util/Buffer/Dedicated.luau b/src/Index/Util/Buffer/Dedicated.luau index 800f286..9291121 100644 --- a/src/Index/Util/Buffer/Dedicated.luau +++ b/src/Index/Util/Buffer/Dedicated.luau @@ -36,7 +36,7 @@ function DedicatedBuffer.alloc(self: any, byte: number) local b: buffer = self.buffer while self.next + byte >= size do - size = math.floor(size * 1.2) + size = math.floor(size * 1.25) -- +25% increase end local newBuffer: buffer = create(size) copy(newBuffer, 0, b) diff --git a/src/Index/Util/RateLimit.luau b/src/Index/Util/RateLimit.luau index efa70b4..e2d29c8 100644 --- a/src/Index/Util/RateLimit.luau +++ b/src/Index/Util/RateLimit.luau @@ -15,7 +15,7 @@ function RateLimit.create(Identifier: string, entrance: number?, interval: numbe Event:SetAttribute(Identifier.."_int", interval) else while (not Event:GetAttribute(Identifier.."_ent")) or (not Event:GetAttribute(Identifier.."_int")) do - task.wait(0.25) + task.wait(0.1) end entrance = tonumber(Event:GetAttribute(Identifier.."_ent")) interval = tonumber(Event:GetAttribute(Identifier.."_int")) diff --git a/src/Index/Util/Serdes.luau b/src/Index/Util/Serdes.luau index 95583c7..1029139 100644 --- a/src/Index/Util/Serdes.luau +++ b/src/Index/Util/Serdes.luau @@ -24,7 +24,7 @@ function SerDes.increment(Identifier: string, timeout: number?): number error(`Serdes: {Identifier} is taking too long to retrieve, seems like it's not replicated on server.`, 2) end) task.spawn(function() - while coroutine.status(cancel) ~= "dead" and task.wait(0.25) do -- let it loop for yields! + while coroutine.status(cancel) ~= "dead" and task.wait(0.04) do -- let it loop for yields! 1/24 if Event:GetAttribute(Identifier) then task.cancel(cancel) task.spawn(yieldThread, Event:GetAttribute(Identifier)) diff --git a/src/Index/init.luau b/src/Index/init.luau index 7091756..13fa54e 100644 --- a/src/Index/init.luau +++ b/src/Index/init.luau @@ -77,4 +77,4 @@ function Index.buffer() return Buffer.new() end -return table.freeze(Index) :: typeof(Index) \ No newline at end of file +return table.freeze(Index) :: typeof(Index)