Character=script.Parent Humanoid=Character:FindFirstChild("\072\117\109\097\110\111\105\100")Debris=game:GetService("\068\101\098\114\105\115")WindDirection=script:FindFirstChild("\087\105\110\100\068\105\114\101\099\116\105\111\110")Force=script:FindFirstChild("\070\111\114\099\101")Parts={}BaseColor=BrickColor.new("\082\111\121\097\108 \112\117\114\112\108\101")Color=BaseColor.Color Gravity=196.2 Duration=3 Classes={BasePart={BrickColor=BaseColor,Material=Enum.Material.Plastic,Reflectance=0;Transparency=.75};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;Enabled=false},Fire={Color=Color,SecondaryColor=Color,Enabled=false},Smoke={Color=Color,Enabled=false},Light={Color=Color,Enabled=false};ParticleEmitter={Color=ColorSequence.new(Color,Color);Enabled=false}}Fire=script:FindFirstChild("\070\105\114\101")Objects={}RemovedObjects={}FakeParts={}Hats={}Tools={}Particles={}function DestroyScript()Debris:AddItem(script,.5)end function TweenNumber(J,Y,U)return(Y-J)/U end function Decorate(J)local Y={Object=nil,Properties={}}for U,u in pairs(Classes)do if J:IsA(U)then if J:IsA("\067\104\097\114\097\099\116\101\114\077\101\115\104")then local Y=Instance.new("\083\112\101\099\105\097\108\077\101\115\104")Y.MeshType=Enum.MeshType.FileMesh Y.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"..J.MeshId for U,u in pairs(Character:GetChildren())do if u:IsA("\066\097\115\101\080\097\114\116")and J.BodyPart.Name==string.gsub(u.Name," ","")then Y.Parent=u table.insert(RemovedObjects,{Object=J,NewObject=Y,Parent=J.Parent})J.Parent=nil end end elseif J:IsA("\066\097\115\101\080\097\114\116")and J.Transparency>=1 then else Y.Object=J for U,u in pairs(u)do local e=nil local Z=false pcall(function()e=J[U]Z=true J[U]=u end)if Z then Y.Properties[U]=e end end end end end table.insert(Objects,Y)end function Redesign(J)for J,Y in pairs(J:GetChildren())do if Y~=script then Decorate(Y)Redesign(Y)end end end if not Humanoid or not WindDirection then DestroyScript()return end for J,Y in pairs(Character:GetChildren())do if Y:IsA("\072\097\116")or Y:IsA("\084\111\111\108")then local J=Y:Clone()Decorate(J)table.insert(Y:IsA("\072\097\116")and Hats or Tools,Y)for J,U in pairs(J:GetChildren())do if U:IsA("\066\097\115\101\080\097\114\116")then local J=U:Clone()J.Name=Y.Name table.insert(FakeParts,J)J.Parent=Character J.CFrame=U.CFrame end end end end Humanoid:UnequipTools()for J,Y in pairs({Hats;Tools})do for J,Y in pairs(Y)do Y.Parent=nil end end Redesign(Character)local J=Instance.new("\077\111\100\101\108")J.Name="\071\104\111\115\116\077\111\100\101\108"for Y,U in pairs(Character:GetChildren())do if U:IsA("\066\097\115\101\080\097\114\116")then if U.Name~="\072\117\109\097\110\111\105\100\082\111\111\116\080\097\114\116"then local Y=U:Clone()Y.Name="\080\097\114\116"Y.CanCollide=false for J,Y in pairs(Y:GetChildren())do if not Y:IsA("\068\097\116\097\077\111\100\101\108\077\101\115\104")then Y:Destroy()end end table.insert(FakeParts,Y)local u=U:GetMass()*Gravity^2 local e=Instance.new("\066\111\100\121\086\101\108\111\099\105\116\121")e.maxForce=Vector3.new(u,u,u)e.velocity=WindDirection.Value*Force.Value e.Parent=Y Y.Parent=J local Z=Fire:Clone()Z.Enabled=true table.insert(Particles,Z)Z.Parent=Y end U:Destroy()end end Spawn(function()local J=Classes.BasePart.Transparency local Y=1 local U=.75 local u=.033333333333333 local e=U/u for U=1,e,1 do local Z=J+TweenNumber(J,Y,e/(U+1))for J,Y in pairs(FakeParts)do if Y and Y.Parent then Y.Transparency=Z end end wait(u)end for J,Y in pairs(Particles)do Y.Enabled=false end end)Debris:AddItem(J,5)J.Parent=game:GetService("\087\111\114\107\115\112\097\099\101")
--Made by Luckymaxer

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

Debris = game:GetService("Debris")

WindDirection = script:FindFirstChild("WindDirection")
Force = script:FindFirstChild("Force")

Parts = {}

BaseColor = BrickColor.new("Royal purple")
Color = BaseColor.Color

Gravity = 196.20

Duration = 3

Classes = {
	BasePart = {
		BrickColor = BaseColor,
		Material = Enum.Material.Plastic,
		Reflectance = 0,
		Transparency = 0.75,
	},
	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,
		Enabled = false,
	},
	Fire = {
		Color = Color,
		SecondaryColor = Color,
		Enabled = false,
	},
	Smoke = {
		Color = Color,
		Enabled = false,
	},
	Light = {
		Color = Color,
		Enabled = false,
	},
	ParticleEmitter = {
		Color = ColorSequence.new(Color, Color),
		Enabled = false,
	},
}

Fire = script:FindFirstChild("Fire")

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

function DestroyScript()
	Debris:AddItem(script, 0.5)
end

function TweenNumber(Start, Goal, Time)
	return ((Goal - Start) / Time)
end

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
			elseif Object:IsA("BasePart") and Object.Transparency >= 1 then
			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
		if v ~= script then
			Decorate(v)
			Redesign(v)
		end
	end
end

if not Humanoid or not WindDirection then
	DestroyScript()
	return
end

for i, v in pairs(Character:GetChildren()) do
	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

Humanoid:UnequipTools()

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

Redesign(Character)

local GhostModel = Instance.new("Model")
GhostModel.Name = "GhostModel"

for i, v in pairs(Character:GetChildren()) do
	if v:IsA("BasePart") then
		if v.Name ~= "HumanoidRootPart" then
			local FakePart = v:Clone()
			FakePart.Name = "Part"
			FakePart.CanCollide = false
			for ii, vv in pairs(FakePart:GetChildren()) do
				if not vv:IsA("DataModelMesh") then
					vv:Destroy()
				end
			end
			table.insert(FakeParts, FakePart)
			local Mass = (v:GetMass() * Gravity ^ 2)
			local BodyVelocity = Instance.new("BodyVelocity")
			BodyVelocity.maxForce = Vector3.new(Mass, Mass, Mass)
			BodyVelocity.velocity = (WindDirection.Value * Force.Value)
			BodyVelocity.Parent = FakePart
			FakePart.Parent = GhostModel
			local FireParticle = Fire:Clone()
			FireParticle.Enabled = true
			table.insert(Particles, FireParticle)
			FireParticle.Parent = FakePart
		end
		v:Destroy()
	end
end

Spawn(function()
	local Start = Classes.BasePart.Transparency
	local End = 1
	local Time = 0.75
	local Rate = (1 / 30)
	local Frames = (Time / Rate)
	for i = 1, Frames do
		local Transparency = (Start + TweenNumber(Start, End, (Frames / (i + 1))))
		for ii, vv in pairs(FakeParts) do
			if vv and vv.Parent then
				vv.Transparency = Transparency
			end
		end
		wait(Rate)
	end
	for i, v in pairs(Particles) do
		v.Enabled = false
	end
end)

Debris:AddItem(GhostModel, 5)
GhostModel.Parent = game:GetService("Workspace")
