diff --git a/src/p_user.c b/src/p_user.c
index 6a87f8ca301083f70f007e8dd5859aca88618dad..19ddde83332fd8518037a35a384f2492b1aefa21 100644
--- a/src/p_user.c
+++ b/src/p_user.c
@@ -774,6 +774,14 @@ void P_NightserizePlayer(player_t *player, INT32 nighttime)
 			player->texttimer = (UINT8)(110 - timeinmap);
 	}
 
+	// force NiGHTS to face forward or backward
+	if (player->mo->target)
+		player->mo->angle = R_PointToAngle2(player->mo->target->x, player->mo->target->y, player->mo->x, player->mo->y) // player->angle_pos, won't be set on first instance
+							+ ((player->mo->target->flags2 & MF2_AMBUSH) ? // if axis is invert, take the opposite right angle
+								(player->flyangle > 90 && player->flyangle < 270 ? ANGLE_90 : -ANGLE_90)
+								: (player->flyangle > 90 && player->flyangle < 270 ? -ANGLE_90 : ANGLE_90)
+								);
+
 	player->powers[pw_carry] = CR_NIGHTSMODE;
 }