From aaa681fdd4ce1c94131bba68211aa4894f6f72f8 Mon Sep 17 00:00:00 2001 From: Joel <34402846+Qwerty1Verified@users.noreply.github.com> Date: Mon, 6 Oct 2025 13:39:11 -0400 Subject: [PATCH 1/3] fix: append source id to prevent client callback collisions --- server/events.lua | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/server/events.lua b/server/events.lua index 00b0fa5..bd45ec6 100644 --- a/server/events.lua +++ b/server/events.lua @@ -124,14 +124,15 @@ end) -- Client Callback RegisterNetEvent('QBCore:Server:TriggerClientCallback', function(name, ...) - if QBCore.ClientCallbacks[name] then - QBCore.ClientCallbacks[name].promise:resolve(...) + local ClientCallback = QBCore.ClientCallbacks[name..source] + if ClientCallback then + ClientCallback.promise:resolve(...) - if QBCore.ClientCallbacks[name].callback then - QBCore.ClientCallbacks[name].callback(...) + if ClientCallback.callback then + ClientCallback.callback(...) end - QBCore.ClientCallbacks[name] = nil + QBCore.ClientCallbacks[name..source] = nil end end) From 3c9ce7cc4c74265d15de91d318bcc3ab6da05993 Mon Sep 17 00:00:00 2001 From: Joel <34402846+Qwerty1Verified@users.noreply.github.com> Date: Mon, 6 Oct 2025 13:41:12 -0400 Subject: [PATCH 2/3] fix: append source id when registering client callback in table to prevent collisions --- server/functions.lua | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/server/functions.lua b/server/functions.lua index c01aed2..284c65f 100644 --- a/server/functions.lua +++ b/server/functions.lua @@ -449,7 +449,7 @@ function QBCore.Functions.TriggerClientCallback(name, source, ...) table.remove(args, 1) end - QBCore.ClientCallbacks[name] = { + QBCore.ClientCallbacks[name..source] = { callback = cb, promise = promise.new() } @@ -457,8 +457,8 @@ function QBCore.Functions.TriggerClientCallback(name, source, ...) TriggerClientEvent('QBCore:Client:TriggerClientCallback', source, name, table.unpack(args)) if cb == nil then - Citizen.Await(QBCore.ClientCallbacks[name].promise) - return QBCore.ClientCallbacks[name].promise.value + Citizen.Await(QBCore.ClientCallbacks[name..source].promise) + return QBCore.ClientCallbacks[name..source].promise.value end end From 63d6cc968123cdc9b74a1fa60252b28693a54f47 Mon Sep 17 00:00:00 2001 From: Joel <34402846+Qwerty1Verified@users.noreply.github.com> Date: Mon, 6 Oct 2025 14:48:21 -0400 Subject: [PATCH 3/3] fix(client-callbacks): check source before attempting concatenation --- server/functions.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/server/functions.lua b/server/functions.lua index 284c65f..dd0bb06 100644 --- a/server/functions.lua +++ b/server/functions.lua @@ -441,6 +441,7 @@ end ---@param cb function ---@param ... any function QBCore.Functions.TriggerClientCallback(name, source, ...) + if not source then return end local cb = nil local args = { ... }