3d2d icon only shows on one side.

I made a 2d icon show up above a player’s name in darkrp, works good but you can only see it from one side, if you move 180 degrees around him the icon disappears.

Heres the code:


hook.Add("RenderScreenspaceEffects", "DarkRPPlayerNamesElegant", function()
	local shouldDraw = hook.Call("HUDShouldDraw", GAMEMODE, "ElegantHUD_Player_Names")
	if shouldDraw == false then return end

	for k, v in pairs(player.GetAll()) do
		if (v:Nick() != LocalPlayer():Nick()) && (IsValid(v) && v:Alive()) then
			local you = LocalPlayer():GetShootPos()
			local lookat = v:GetShootPos()
			local distance = you:Distance(lookat)

			local dist = LocalPlayer():GetPos():Distance(v:GetPos())
		
			local alpha = math.max(0,(maxDist-dist)/maxDist*255)

			local offset = 90
			local ang = v:EyeAngles()
			local offsetHeight = Vector(0, 0, 80)

			surface.SetFont("elegantPlyThreeDeeName")
			local txt = v:Nick()
			local w, h = surface.GetTextSize(txt)

			local teamCol = team.GetColor(v:Team())

			cam.Start3D(EyePos(), EyeAngles())
				cam.Start3D2D(v:GetPos() + offsetHeight, Angle(0, ang.y - offset, 90), 0.1)
					if v:getDarkRPVar("HasGunlicense") then
						draw.SimpleText("a", "elegantGun", 0, -100, Color(255, 255, 255, alpha-55), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
					end

					if GAMEMODE.Config.showname then
						draw.SimpleTextOutlined(txt, "elegantPlyThreeDeeName", 0, -60, Color(teamCol.r, teamCol.g, teamCol.b, alpha-55), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER, 2, Color(0,0,0,alpha-55))
					end

					if GAMEMODE.Config.showjob then
						local teamname = v:getDarkRPVar("job") or team.GetName(v:Team())
						draw.SimpleTextOutlined(teamname, "elegantPlyThreeDeeNameSmall", 0, -15, Color(255,255,255, alpha-55), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER, 2, Color(0,0,0,alpha-55))
					end
					
					if v:IsSuperAdmin() then
						-- local teamname = v:getDarkRPVar("job") or team.GetName(v:Team())
						-- draw.SimpleTextOutlined(teamname, "elegantPlyThreeDeeNameSmall", 0, -15, Color(255,255,255, alpha-55), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER, 2, Color(0,0,0,alpha-55))
							surface.SetDrawColor( 255, 255, 255, 255 )
		                    surface.SetMaterial( Material( "icon16/star.png" ) )
		                    surface.DrawTexturedRect( -1, -120, 32, 32 )
					end