I've been chipping away at an idea of mine for like maybe a week now, and it's in it's final, painful stages. Basically if you've ever played one of the Mario Galaxy games, you may be familiar with how the Starman powerup creates little rainbow afterimages that disappear right afterwards.

speedBoost.Touched:connect(function(tbl) --Phantom Rainbow Trail
	if tbl and tbl.Parent and tbl.Parent:FindFirstChild("Humanoid")and trailOn then
		trailOn = false
		local smooth = Enum.SurfaceType.SmoothNoOutlines
		local plrParts = {tbl.Parent["Right Arm"], tbl.Parent["Left Arm"], tbl.Parent["Right Leg"], tbl.Parent["Left Leg"], tbl.Parent.Torso, tbl.Parent.Head} --Puts the Player's Parts into a table for easy (I hope) manipulation
		while true do
			wait(1/60)
			for i,v in ipairs(plrParts)do
				print(i,v:GetFullName()) -- Early Debug
				local phantom = v:Clone()
				phantom.Name = (tostring(tbl.Parent)..tostring(v.Name)) 
				phantom:BreakJoints()
				phantom.Anchored = true
				phantom.CanCollide = false
				phantom.Parent = workspace
				phantom.TopSurface = smooth
				phantom.BottomSurface = smooth
				phantom.FrontSurface = smooth
				phantom.LeftSurface = smooth
				phantom.RightSurface = smooth
				phantom.BackSurface = smooth
				phantom.CFrame = CFrame.new(v.Position - 5 * v.CFrame.lookVector) -- My main issue at the moment
				for i,child in pairs(phantom:GetChildren()) do
					if child:IsA("Weld") or child:IsA("Motor6D")then -- Clears away mainly the HeadWelds that :BreakJoints() ignores
					child:Destroy()
					end
				end
			end
		end
	end
end)

On the touch of the PowerUp, earlier in the script Music and the effect are added. In this section I started off by putting all of the player's parts into a table then using an iterative loop to apply the properties across all of the cloned parts. My main issue is with this block which is meant to position the parts a bit behind the player

phantom.CFrame = CFrame.new(v.Position - 5 * v.CFrame.lookVector) 

But this causes this to happen https://gyazo.com/4ba02031f38a7f6a4dfbe1f479321df8

If someone could help me sort that out and also let me know if cloning the parts saved to a table is actually a way to do this, because a lovely side effect of this is this: https://gyazo.com/41d9d6cbfadc2c526688597639d7c4b3 If I recall, Roblox can't handle removing all of these parts due to their name.

I've been peeking at the source code for the Gold Eagle Sword http://www.roblox.com/Gold-Eagle-Sword-item?id=264990158 to try to get an idea after the fact of another way my afterimage could be done, but it has to do with creating model instances and correct CFraming, both of which I haven't mastered yet.

Any and all help will be appreciated, Thanks! ~MBacon15

2 comments

0

Make the parts of the afterimages unable to CanCollide, and then group them in Models into a table. And then either spawn a function to make the parts disappear, or just stick the Model in Debris.

0

Any tips on where to start. My main issue is with the plrParts table being a part of the character. So cloning the parts brings all of the children and CFraming them seems to CFrame the character as well.