I can't see all the code but...
1. don't use proc_kill just ent_remove(me); break;
2. debris = my hasn't to be in a loop
3. check if in cometa function is cometa = me;

I'm not sure that I'm getting your point but...
Code:
 
entity* player; entity* cometa; entity* debris;

function player_event
{
if(event_type == event_entity)
{
if(you == landpad){Crash_detect.string="LANDPAD";}
if(you == debris){Crash_detect.string="ASTEROID"; you.pan += 180;}
if(you == cometa){Crash_detect.string="COMET"; ent_remove(you);}
}
if(event_type == null)
{
Crash_detect.visible = off;
}
}

action player
{
player = me;
my.enable_entity = on;
my.event = player_event;
}

action cometa_action
{
cometa = me;
my.enable_entity = on;
my.pan= random(360);
my.tilt= random(360);
c_setminmax(me);
while(me)
{
c_move(me,vector(1,0,0),nullvector,GLIDE | ACTIVATE_TRIGGER | IGNORE_SPRITES | IGNORE_PASSENTS | use_box);
wait(1);
}
}

action debris_action
{
debris = me;
my.enable_entity = on;
my.pan= random(360);
my.tilt= random(360);
c_setminmax(me);
while(me)
{
c_move(me,vector(1,0,0),nullvector,GLIDE | ACTIVATE_TRIGGER | IGNORE_SPRITES | IGNORE_PASSENTS | use_box);
wait(1);
}
}




Never say never.