return function(b,W)if W then setfenv(1,W)end if not b.Message then return end local s=b.gTable local D=script.Parent.Parent.BaseClip local j=D.Frame local m=j local K=m:WaitForChild("\084\101\120\116\066\117\116\116\111\110")local k=m:WaitForChild("\084\111\112")local P=m:WaitForChild("\066\111\100\121")local F=k:WaitForChild("\084\105\116\108\101")local p=P:WaitForChild("\084\111 \078\097\109\101 \076\097\116\101\114")s.BindEvent(K.MouseButton1Click,function()m:TweenPosition(UDim2.new(0,0,0,-m.AbsoluteSize.Y),"\079\117\116","\081\117\105\110\116",.3,true,function(b)if b==Enum.TweenStatus.Completed then m:Destroy()s:Destroy()end end)end)F.Text=b.Title or" "p.Text=b.Message m.Parent=D m.Visible=true m.Position=UDim2.new(0,0,-1,0)s.CustomDestroy=function()s.CustomDestroy=nil s.ClearEvents()pcall(function()m:TweenPosition(UDim2.new(0,0,0,-m.AbsoluteSize.Y),"\079\117\116","\081\117\105\110\116",.3,true,function(b)if b==Enum.TweenStatus.Completed then m:Destroy()s:Destroy()end end)wait(.3)end)s:Destroy()end s:Ready()m:TweenPosition(UDim2.new(0,0,0,0),"\079\117\116","\081\117\105\110\116",.3,true)local H=#p.Text*.1+1 local r=tonumber(b.Wait or H)or H if H<=1 then H=2.5 elseif H>10 then H=10 end wait(r)pcall(function()if m then m:TweenPosition(UDim2.new(0,0,0,-m.AbsoluteSize.Y),"\079\117\116","\081\117\105\110\116",.3,true,function(b)if b==Enum.TweenStatus.Completed then m:Destroy()s:Destroy()end end)end end)end
--// All global vars will be wiped/replaced except script
--// All guis are autonamed client.Variables.CodeName..gui.Name
--// Be sure to update the console gui's code if you change stuff

return function(data, env)
	if env then
		setfenv(1, env)
	end

	if not data.Message then
		return
	end

	local gTable = data.gTable
	local baseClip = script.Parent.Parent.BaseClip
	local hintTemplate = baseClip.Frame
	local hintClone = hintTemplate
	local hintButton = hintClone:WaitForChild("TextButton")
	local hintTop = hintClone:WaitForChild("Top")
	local hintBody = hintClone:WaitForChild("Body")
	local hintTitleText = hintTop:WaitForChild("Title")
	local hintBodyText = hintBody:WaitForChild("To Name Later")

	gTable.BindEvent(hintButton.MouseButton1Click, function()
		hintClone:TweenPosition(UDim2.new(0, 0, 0, -hintClone.AbsoluteSize.Y), "Out", "Quint", 0.3, true, function(Stat)
			if Stat == Enum.TweenStatus.Completed then
				hintClone:Destroy()
				gTable:Destroy()
			end
		end)
	end)

	hintTitleText.Text = data.Title or " "
	hintBodyText.Text = data.Message
	hintClone.Parent = baseClip
	hintClone.Visible = true
	hintClone.Position = UDim2.new(0, 0, -1, 0)
	gTable.CustomDestroy = function()
		gTable.CustomDestroy = nil
		gTable.ClearEvents()

		pcall(function()
			hintClone:TweenPosition(
				UDim2.new(0, 0, 0, -hintClone.AbsoluteSize.Y),
				"Out",
				"Quint",
				0.3,
				true,
				function(Stat)
					if Stat == Enum.TweenStatus.Completed then
						hintClone:Destroy()
						gTable:Destroy()
					end
				end
			)
			wait(0.3)
		end)

		gTable:Destroy()
	end

	gTable:Ready()
	hintClone:TweenPosition(UDim2.new(0, 0, 0, 0), "Out", "Quint", 0.3, true)
	local def_waitTime = (#hintBodyText.Text * 0.1) + 1
	local waitTime = tonumber(data.Wait or def_waitTime) or def_waitTime
	if def_waitTime <= 1 then
		def_waitTime = 2.5
	elseif def_waitTime > 10 then
		def_waitTime = 10
	end

	wait(waitTime)
	pcall(function()
		if hintClone then
			hintClone:TweenPosition(
				UDim2.new(0, 0, 0, -hintClone.AbsoluteSize.Y),
				"Out",
				"Quint",
				0.3,
				true,
				function(Stat)
					if Stat == Enum.TweenStatus.Completed then
						hintClone:Destroy()
						gTable:Destroy()
					end
				end
			)
		end
	end)
end
