You don’t seem to understand HUDPaint. HUDPaint is run on every frame. With the code you posted, it will check the NWBool “horror022” every frame, and if it is true, it will randomly pick one of the images every frame, and then draw the picked image every frame. All you have to do to make it go away is NOT draw it. So, if “horror022” became false, it would stop drawing the image every frame, and it would disappear.
Based on your description on when it should appear, it sounds like using LocalPlayer():Alive() instead of that NWBool would be better, since you won’t have to manually set it to true or false. I would also suggest you listen to the advice about not calling ‘Material’ every frame, as it wastes performance with no benefit.