Character=script.Parent Humanoid=Character:FindFirstChild("\072\117\109\097\110\111\105\100")BaseColor=BrickColor.new("\066\114\105\103\104\116 \121\101\108\108\111\119")Color=BaseColor.Color Duration=15 Classes={BasePart={BrickColor=BaseColor,Material=Enum.Material.Plastic;Reflectance=.5;Anchored=true},FileMesh={TextureId=""},DataModelMesh={VertexColor=Vector3.new(Color.r,Color.g,Color.b)},CharacterMesh={BaseTextureId=0;OverlayTextureId=0},Shirt={ShirtTemplate=""};Pants={PantsTemplate=""};FaceInstance={Texture=""};Sparkles={SparkleColor=Color};Fire={Color=Color,SecondaryColor=Color},Smoke={Color=Color}}Objects={}RemovedObjects={}FakeParts={}Hats={}Tools={}function Decorate(T)local E={Object=nil;Properties={}}for i,C in pairs(Classes)do if T:IsA(i)then if T:IsA("\067\104\097\114\097\099\116\101\114\077\101\115\104")then local E=Instance.new("\083\112\101\099\105\097\108\077\101\115\104")E.MeshType=Enum.MeshType.FileMesh E.MeshId="\104\116\116\112\058\047\047\119\119\119\046\114\111\098\108\111\120\046\099\111\109\047\097\115\115\101\116\047\063\105\100\061"..T.MeshId for i,C in pairs(Character:GetChildren())do if C:IsA("\066\097\115\101\080\097\114\116")and T.BodyPart.Name==string.gsub(C.Name," ","")then E.Parent=C table.insert(RemovedObjects,{Object=T;NewObject=E;Parent=T.Parent})T.Parent=nil end end else E.Object=T for i,C in pairs(C)do local W=nil local r=false pcall(function()W=T[i]r=true T[i]=C end)if r then E.Properties[i]=W end end end end end table.insert(Objects,E)end function Redesign(T)for T,E in pairs(T:GetChildren())do Decorate(E)Redesign(E)end end for T,E in pairs(Character:GetChildren())do if E:IsA("\072\097\116")or E:IsA("\084\111\111\108")then local T=E:Clone()Decorate(T)table.insert(E:IsA("\072\097\116")and Hats or Tools,E)for T,i in pairs(T:GetChildren())do if i:IsA("\066\097\115\101\080\097\114\116")then local T=i:Clone()T.Name=E.Name table.insert(FakeParts,T)T.Parent=Character T.CFrame=i.CFrame end end end end if Humanoid and Humanoid.Parent then Humanoid:UnequipTools()end for T,E in pairs({Hats,Tools})do for T,E in pairs(E)do E.Parent=nil end end Redesign(Character)wait(Duration)for T,E in pairs(Objects)do for T,i in pairs(E.Properties)do E.Object[T]=i end end for T,E in pairs(RemovedObjects)do if E.NewObject and E.NewObject.Parent then E.NewObject:Destroy()end E.Object.Parent=E.Parent end for T,E in pairs(FakeParts)do if E and E.Parent then E:Destroy()end end for T,E in pairs(Hats)do E.Parent=Character end for T,E in pairs(Tools)do if Humanoid and Humanoid.Parent then Humanoid:EquipTool(E)else E.Parent=Character end end script:Destroy()


Character = script.Parent
Humanoid = Character:FindFirstChild("Humanoid")

BaseColor = BrickColor.new("Bright yellow")
Color = BaseColor.Color

Duration = 15

Classes = {
	BasePart = {
		BrickColor = BaseColor,
		Material = Enum.Material.Plastic,
		Reflectance = 0.5,
		Anchored = true,
	},
	FileMesh = {
		TextureId = "",
	},
	DataModelMesh = {
		VertexColor = Vector3.new(Color.r, Color.g, Color.b),
	},
	CharacterMesh = {
		BaseTextureId = 0,
		OverlayTextureId = 0,
	},
	Shirt = {
		ShirtTemplate = "",
	},
	Pants = {
		PantsTemplate = "",
	},
	FaceInstance = {
		Texture = "",
	},
	Sparkles = {
		SparkleColor = Color,
	},
	Fire = {
		Color = Color,
		SecondaryColor = Color,
	},
	Smoke = {
		Color = Color,
	}
}

Objects = {}
RemovedObjects = {}
FakeParts = {}
Hats = {}
Tools = {}

function Decorate(Object)
	local ObjectData = {
		Object = nil,
		Properties = {},
	}
	for i, v in pairs(Classes) do
		if Object:IsA(i) then
			if Object:IsA("CharacterMesh") then
				local Mesh = Instance.new("SpecialMesh")
				Mesh.MeshType = Enum.MeshType.FileMesh
				Mesh.MeshId = ("http://www.roblox.com/asset/?id=" .. Object.MeshId)
				for ii, vv in pairs(Character:GetChildren()) do
					if vv:IsA("BasePart") and Object.BodyPart.Name == string.gsub(vv.Name, " ", "") then
						Mesh.Parent = vv
						table.insert(RemovedObjects, {Object = Object, NewObject = Mesh, Parent = Object.Parent})
						Object.Parent = nil
					end
				end
			else
				ObjectData.Object = Object
				for ii, vv in pairs(v) do
					local PropertyValue = nil
					local PropertyValueSet = false
					pcall(function()
						PropertyValue = Object[ii]
						PropertyValueSet = true
						Object[ii] = vv
					end)
					if PropertyValueSet then
						ObjectData.Properties[ii] = PropertyValue
					end
				end
			end
		end
	end
	table.insert(Objects, ObjectData)
end

function Redesign(Parent)
	for i, v in pairs(Parent:GetChildren()) do
		Decorate(v)
		Redesign(v)
	end
end

for i, v in pairs(Character:GetChildren()) do --Create fake hats and tools, and goldify them
	if v:IsA("Hat") or v:IsA("Tool") then
		local FakeObject = v:Clone()
		Decorate(FakeObject)
		table.insert(((v:IsA("Hat") and Hats) or Tools), v)
		for ii, vv in pairs(FakeObject:GetChildren()) do
			if vv:IsA("BasePart") then
				local FakePart = vv:Clone()
				FakePart.Name = v.Name
				table.insert(FakeParts, FakePart)
				FakePart.Parent = Character
				FakePart.CFrame = vv.CFrame
			end
		end
	end
end

if Humanoid and Humanoid.Parent then
	Humanoid:UnequipTools()
end

for i, v in pairs({Hats, Tools}) do
	for ii, vv in pairs(v) do
		vv.Parent = nil
	end
end

Redesign(Character) --Goldify the player

wait(Duration)

for i, v in pairs(Objects) do --Ungoldify the player
	for ii, vv in pairs(v.Properties) do
		v.Object[ii] = vv
	end
end
for i, v in pairs(RemovedObjects) do
	if v.NewObject and v.NewObject.Parent then
		v.NewObject:Destroy()
	end
	v.Object.Parent = v.Parent
end
for i, v in pairs(FakeParts) do
	if v and v.Parent then
		v:Destroy()
	end
end
for i, v in pairs(Hats) do
	v.Parent = Character
end
for i, v in pairs(Tools) do
	if Humanoid and Humanoid.Parent then
		Humanoid:EquipTool(v)
	else
		v.Parent = Character
	end
end

script:Destroy()
