I would recommend that you have a LocalScript in every player that makes it so that every 5 or so seconds, a small part is made where their feet are, and then 25 seconds later, the part is destroyed.
Example:
04 | local Player = game:service 'Players' .localPlayer; |
08 | local Character = Player.Character; |
12 | and Character.Parent = workspace |
13 | and Character:findFirstChild 'Right Leg' |
14 | and Character:findFirstChild 'Left Leg' |
15 | and Character:findFirstChild 'Humanoid' |
16 | and Character.Humanoid.Health> 0 |
17 | and Character:findFirstChild 'Torso' ; |
19 | Character.Torso.Velocity.X, |
21 | Character.Torso.Velocity.Z |
25 | local Trail = Instance.new( 'Part' ,workspace); |
26 | Trail.Name = 'Trail: ' ..Player.Name; |
28 | Trail.CanCollide = false ; |
30 | Trail.BrickColor = ChatColor.Get(Player.Name); |
31 | Trail.TopSurface,Trail.BottomSurface = 0 , 0 ; |
32 | Trail.Size = Vector 3. new(TrailSize,TrailSize/ 2 ,TrailSize); |
36 | Character [ 'Right Leg' ] .CFrame.p, |
37 | Character [ 'Left Leg' ] .CFrame.p, |
40 | Character.Torso.CFrame.p |
44 | -Character [ 'Right Leg' ] .CFrame.Y/ 2 , |
48 | game:service 'Debris' :addItem(Trail, 25 ); |
***** Interesting ChatColor class found on NoliCAIKS' code snippet container. It gets the Player's chat color, which is determined by their name.