RT Scope Rendering Problem

I created an rt scope for the sniper I am working on. The scope works fine but this reflective film is appearing on my screen. It acts just like an rt screen but much more transparent.

Example: http://puu.sh/3mLsB.png

Another weird thing is that the scope wont render till I edit the code.

I am still pretty new to using RT.

Here are my variables


SWEP.mat = Material( "models/v_models/ResidualGrub/mosin/lense" )
	SWEP.RenderTarget = GetRenderTarget( "Mosin_scope", 1000, 1000, false)
	SWEP.mat:SetTexture( "$basetexture", SWEP.RenderTarget )

Here is where I draw the RT


function SWEP:ViewModelDrawn( ViewModel )

if ( CLIENT ) then
	local old = render.GetRenderTarget( )
	local ply = LocalPlayer()

			CamData = {}
			CamData.angles = ply:GetAimVector():Angle()
			CamData.origin = ply:GetShootPos()
			CamData.x = 0
			CamData.y = 0
			CamData.w = 1000
			CamData.h = 1000
			CamData.fov = 4
			CamData.drawviewmodel = false
			CamData.drawhud = false
			CamData.ortho = false
            CamData.dopostprocess = false
			render.SetRenderTarget( self.RenderTarget )
			
		
			cam.Start2D()
				render.RenderView(CamData)
			cam.End2D()
			
			
			render.SetRenderTarget( old )
	end
end

Thanks in advance.

So I fixed the film overlaying the screen by moving it into the RenderScene hook. But I am still having the problem of the RT cam not starting on its own. To turn it on I have to make a small edit, such as a space, and save the lua file. Would anyone know how to fix this?

New code:


function RO_RT_Scope_RenderScene()
ply = LocalPlayer()
Wep = ply:GetActiveWeapon()
old = render.GetRenderTarget()

	if IsValid(Wep) then
		if Wep.RO_Sniper then
			
			CamData = {}
			CamData.angles = EyeAngles()
			CamData.origin = ply:GetShootPos()
			CamData.x = 0
			CamData.y = 0
			CamData.w = 300
			CamData.h = 300
			CamData.fov = 4
			CamData.drawviewmodel = false
			CamData.drawhud = false
			render.SetRenderTarget( Wep.RenderTarget )
			
			
			cam.Start2D()
				render.RenderView(CamData)
			cam.End2D()
			 
			
			render.SetRenderTarget(old)
		end
	end
end
hook.Add("RenderScene", "RO_RT_Scope_RenderScene", RO_RT_Scope_RenderScene)

This is running in a lua file in the path autorun/client