My game has a lot of 3D platforming sections. When the player falls off the path into an abyss, I want him to respawn at the nearest checkpoint (checkpoints aren't visible). I don't want to check whether player.z has dropped below a certain height because I'll need to use the respawn function in some other instances. For example, when a flying character starts to fly off into the distance away from the path, he should also respawn at the nearest check point. So I decided to use invisible walls that trigger the respawn function on collision. I'm certain I'm not doing the collision event right because my invisible walls are showing absolutely no sign of collision at all.
Code:
//THIS IS ATTACHED TO INVISIBLE WALLS/FLOORS
action RespawnFallenMonSurface()
{
	my.emask |= (ENABLE_IMPACT | ENABLE_ENTITY | ENABLE_PUSH); 
	my.event = RespawnFallenMon;	
}

//YOU CAN SEE I'VE ENDED UP COMMENTING OUT MOST OF THE FUNCTION. JUST TRYING TO GET IT TO SHOW ANY SIGN THAT IT DETECTED A COLLISION
function RespawnFallenMon()
{
	if(event_type == EVENT_ENTITY)
	{
		beep();
	    printf("Touchdown!");
	}
//	beep();
//	printf("Touchdown!");
//	if(your.skill45 != 5555) //not a monster
//	{beep(); wait(-1); return;}
	
//	var test = 0;
//	wait(1); //avoid engine errors
//	if(test == 0)
//	printf("Touchdown!");
	
//	test = 1;
//	vec_set(vector(your.x,your.y,your.z), LastSolidGround);
}



Do I need to add the following line to my player action? It seems to make absolutely no difference at all.
Code:
my.emask |= (ENABLE_IMPACT | ENABLE_ENTITY | ENABLE_PUSH);


Also, if the invisible floor is already in contact with level structures such as terrain or pillars, will it affect its detection of collision with the player?