After destroying the script's parent from the StarterGUI, you can reset and the same GUI it is supposed to destroy will pop back up on the screen. It should only appear once and never show again, correct?
wait(1)
local RHCcontrol = script.Parent.Parent.RHCcontrol
script.Parent.Background.Button.Accept.MouseButton1Click:connect(function()
if RHCcontrol.Frame.Visible == false then
RHCcontrol.Frame.Visible = true
wait(.1)
script.Parent:Destroy()
end
end)

2 comments
How can I use ResetPlayerGuiOnSpawn?
Well its a boolean so its as simple as, game.StarterGui.ResetPlayerGuiOnSpawn = false