Yeah, you are constantly creating timers, and you are waiting for an event inside the update loop!
You probably want to do this:
function MyScript:Update()
if player:GetPosition().y < -5 and self.enabled == true then
self.enabled = false
if self.gTimerReborn == nil then
self.gTimerReborn = CreateTimer(2000)
self:ListenEvent(EVENT_TIMERTICK, self.gTimerReborn)
end
--self:Kill(player)
--self:Start()
end
end
function MyScript:ProcessEvent(event)
if event.id == EVENT_TIMERTICK and event.source == self.gTimerReborn then
player:SetPosition(initialLocation)
self.gTimerReborn:Stop()
self.gTimerReborn = nil
end
end