Error on TriggerClientEvent in SetTimeout

Hello, I have a problem with the TriggerClientEvent in a settimeout.

Script:

RegisterServerEvent("test")
AddEventHandler("test", function()
	TriggerClientEvent("notify", source, "Test")
	SetTimeout(3500, function()
		TriggerClientEvent("notify", source, "Test finish") // Here
	end)
end)

Error:

InvokeNative: execution failed: Argument at index 1 was null.
Error resuming coroutine: Execution of native 000000002f7a49e6 in script host failed.
stack traceback:
        [C]: in upvalue '_in'
        citizen:/scripting/lua/natives_server.lua:256: in function 'TriggerClientEventInternal'
        (...tail calls...)
        server.lua:47: in function <server.lua:46>

KonScyence

I have a feeling that source is no longer available when you leave the scope of the AddEventHandler (entering the closure).

Try this:

local lastSource

RegisterServerEvent("test")
AddEventHandler("test", function()
    lastSource = source;
	TriggerClientEvent("notify", lastSource , "Test")
	SetTimeout(3500, function()
		TriggerClientEvent("notify", lastSource , "Test finish") // Here
	end)
end)
2 Likes

where do I add this?