components/nightvision.cs

A small Scene Component that toggles a night-vision-like camera effect each update. On the server/host it adds tonemapping and vignette components and sets exposure and vignette color; on proxy it destroys tonemapping and color-adjustment components.

Native Interop
using Sandbox;

public class NightVision : Component
{
    protected override void OnUpdate()
    {
        if (!IsProxy)
        {
            var ta = Scene.Camera.GetOrAddComponent<Tonemapping>();
            ta.ExposureCompensation = 2.5f;
            
            var v = Scene.Camera.GetOrAddComponent<Vignette>();
            v.Roundness = 0; v.Color = new Color(1, 0, 0, 1); return;
        }
        
        Scene.Camera.GetOrAddComponent<Tonemapping>().Destroy();
        Scene.Camera.GetOrAddComponent<ColorAdjustments>().Destroy();
    }
}