From 256167216e53cc5ef9574ead5681d5341a20335b Mon Sep 17 00:00:00 2001 From: Oreomial <106767901+Oreomial@users.noreply.github.com> Date: Sat, 5 Sep 2026 20:26:53 +0000 Subject: [PATCH] correct channel and payload in Server.Invoke Server.Invoke sent {reqId, args} on channel 0, but channel 0 on the client is reserved for resolving pending client-initiated invokes. The client never has a pending invoke matching a server-generated reqId, so the payload was silently dropped and the registered Client.Connect listener never ran - Server.Invoke always timed out. Channel 1 is the "execute registered listener and reply" channel. The client's remote == 1 handler expects {remoteId, reqId, args}, so this also adds the missing remoteId so the client can find the correct listener in eventListeners. --- src/Server/init.luau | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Server/init.luau b/src/Server/init.luau index 6e8fb15..1e15366 100644 --- a/src/Server/init.luau +++ b/src/Server/init.luau @@ -181,8 +181,8 @@ Server.Invoke = function(remoteName: string, player: Player, timeout: number?, . queueEvent[player] = {} :: any end table.insert(queueEvent[player], { - 0, - { reqId :: any, { ... } :: any } :: any, + 1, + { Identifier.get_id(remoteName), reqId, { ... } } :: any, }) return coroutine.yield() end