You are looking for vec_to_screen:
vec_set(temp,vector(player.x,player.y,player.z+player.max_z+30));
if(vec_to_screen(temp,camera)) {
set(player_life_pan,VISIBLE);
player_life_pan.pos_x = temp.x;
player_life_pan.pos_y = temp.y;
}
else { reset(player_life_pan,VISIBLE); }
Then the digits element should have position values close to zero:
digits(-30, 0, 5, "Arial#50b", 1, player_life);