OK. Here is one detail I noticed in your code: Your light action uses the distance to the camera as cue, not the distance to the player model. Since you use the 3rd person view this means that the camera is always located at a distance behind the player model and when you turn, the location of the camera will change which in turn will have an effect on the light intensity of the given light. One solution would be to use the distance from the light to the player model instead of the distance to the camera. This should help for starters.