You can call that (event_type == EVENT_IMPACT) only after collusion, look at the manual. For making pickable coins, you better do something like this:
Code:
action coin()
{
set(my,PASSABLE); // no collusions with player
while(vec_dist(my.x,player.x) > 40) // while player is far than 40 quants
{
my.pan += 5 * time_step; // rotate coin
wait(1); // increase this if you'll have problems with FPS
}
// if player is closer than 40 quants (while loop isn't true)
coins += 1;
wait(1);
ent_remove(my);
}