Please provide more information. If you have a custom setup that gives players a gui, you have to share this script or a part of it.
GUIs automatically get cloned to the player gui upon death if ResetOnDeath is not enabled and that GUI is parented to StarterGui, and GUIs are not destroyed upon death when enabled. So there is another factor involved here.
Most of the script is just making certain elements visible. I have tried using ResetOnDeath.
ChatBar.Visible = true
This is where chat bar is defined:
local ChatBar = script.Parent:WaitForChild(“ChatBar”)
You would have to detect when the player dies and run the script again.
local Players = game:GetService("Players") --get players service
local Player = Players.LocalPlayer --get the local player(client)
local PlayerGui = Player:WaitForChild("PlayerGui") --get their gui container
Player.CharacterAdded:Connect(function() --listen for the character added event
local ScreenGui = PlayerGui:WaitForChild("Name of Your Gui")
-- code to make guis visible
This essentially does the job, just fill in the gaps.