RenderVeiw not drawing correctly.

So I am using a Render Target to simulate a scope by replacing the lense of the sniper with the RT. Everything is working fine except the RT will not draw until I refresh the shared file of the weapon by making a small edit, such as a space, and saving the file. I have been trying to get it to work right for a bit now and nothing has worked. Do you guys have any idea?

Before and after: http://gyazo.com/89054f06c14ec2f21bdfab36dccd7d66

The code: This is in the path of autorun/client


local Ini = true
function RO_RT_RenderScene()
ply = LocalPlayer()
Wep = ply:GetActiveWeapon()
		if IsValid(Wep) then
			if Wep.RO_Sniper then
				old = render.GetRenderTarget()
						local CamData = {}
						CamData.angles = ply:GetAimVector():Angle()
						CamData.origin = ply:GetShootPos()
						CamData.x = 0
						CamData.y = 0
						CamData.w = 400
						CamData.h = 400
						CamData.fov = 4
						CamData.drawviewmodel = false
						CamData.drawhud = false
						render.SetRenderTarget( Wep.RenderTarget )
						render.SetViewPort( 0, 0, 400, 400)
						
								
								if not Ini then
									cam.Start2D()
										render.RenderView(CamData)
									cam.End2D()
								end
								
							
								
								
						
						render.SetViewPort(0, 0, ScrW(), ScrH())
						render.SetRenderTarget(old) 
						Ini = false
			end
		end
end
hook.Add("RenderScene","RO_RT_RenderScene",RO_RT_RenderScene)

Variables in the weapons shared file (Declared cliently):


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

The texture’s vmt code:


"UnlitGeneric"
{
	"$baseTexture" "models/v_models/ResidualGrub/mosin/lense"
	"$model" "1"
}

Thanks in advance.