Code:
function exploeffect() 
{
	wait(3);//<--- works now
	//wait(-3)//<--- works if you replace the wait(1) in the main loop with the old wait(random thingy)
	if(me)ent_remove(me);
	//ptr_remove(me);		//those make no difference
	//safe_remove(me);
}

void showall() 
{
	VECTOR t;
	while(key_space) 
	{
		you = ent_next(NULL);
		while(you!=NULL) 
		{
			vec_set(t,your.x);
			vec_to_screen(t,camera);
			draw_text(str_for_entfile(NULL,you),t.x,t.y,COLOR_RED);
		//	draw_text(you->type,t.x,t.y,COLOR_RED);
			you = ent_next(you);	
		}
		wait(1);
	}		
}

void main() 
{
	VECTOR temp;
	level_load("");
	wait(3);
	on_space = showall;
	VECTOR temp;
	while(1) 
	{
		vec_set(temp,vector(200+random(100),random(100)-50,random(100)-50));
		ent_create(CUBE_MDL,temp,exploeffect);
		//wait(-0.3+random(0.5));//<--- posible wait issue here
		wait(1);//<--- works with this wait here
	}
}



some sort of complicated wait problem ,because wait returns back to the calling functions i suppose


Compulsive compiler