You don't need to do that. When a player is drawing his trail, it's impossible to hit that, so you can just leave out the collision for that trail.
I did code first a program that makes a trail a bit further away in the direction of StartX#,StartZ#. But the effect you get isn't very great. It will cause "holes" in the trails instead of one big trail.
I changed to boxes, because it's easier to get collision from. (you can change the X-value of the "make object box" command to make the trail thinner):
sync on : sync rate 100
`create player
make object cube 1,3
set object collision to boxes 1
`create matrix for comp purposes
make matrix 1,1000,1000,50,50
position matrix 1,-500,-1.5,-500
Trails = 0
Created = 0
set global collision on
do
`Moving the player
if upkey() = 1
`this checks if the player has turned before moving
`if it has, we have to create a new trail.
if Created = 0
Created = 1
`Create new trail
inc Trails
make object box 10 + Trails, 1, 100, 100
set object collision to boxes 10 + Trails
`Store new variables of start position
StartX# = object position x(1)
StartZ# = object position z(1)
endif
`and ofcourse, move the object when upkey is pressed
move object 1, 1
endif
`turn left
if leftkey() = 1 and liftofflft=0
angle#=object angle Y(1)
inc angle#,270
yrotate object 1,wrapvalue(angle#)
Created = 0 : `this var is used for checking if player rotated
liftofflft=1
endif
if leftkey()=0 then liftofflft=0
if rightkey() = 1 and liftoffrght=0
angle#=object angle Y(1)
inc angle#,90
yrotate object 1,wrapvalue(angle#)
Created = 0 : `this var is used for checking if player rotated
liftoffrght=1
endif
if rightkey()=0 then liftoffrght=0
`*** calculate the data of the current trail ***
if Trails > 0
`Get the mid position of the start point
px# = (object position x(1) + StartX#)/2
pz# = (object position z(1) + StartZ#)/2
`Get the length of the plain
length# = sqrt( (object position x(1)-StartX#)^2 + (object position z(1)-StartZ#)^2)
`update the object
position object 10 + Trails, px#, object position y(1), pz#
scale object 10 + Trails, 100, object size y(1), length#
`This is for the trail to be angled right.
point object 10 + Trails, StartX#, object position y(1), StartZ#
endif
`position the camera
position camera 100,100,100
point camera 0,0,0
`Get collision with all Trails except the current one
for trail = 1 to Trails-1
if object collision(10 + trail, 1) > 0 then text 5,5,"You lose"
next trail
`Display the number of trails on screen
text 5,25,str$(Trails)
sync
loop