Rendering Players Invisible w/ RenderView

I’m trying to make an orthographic projection for a map feature, but I don’t want other players to show up on it. Here’s the jist of the GUI element I’m working with:


panel.Paint = function(self, w, h)
	for _, ply in pairs(player.GetAll()) do
		// if ply is valid and has a character loaded and shit
			ply:SetRenderMode(RENDERMODE_TRANSALPHA);
			ply:SetColor(Color(0, 0, 0, 0));
		end
	end

	local posX, posY = self:LocalToScreen(0, 0);
	cam.Start2D();
		renderView.origin = LocalPlayer():GetPos() + Vector(0, 0, 2000);
		renderView.x = posX;
		renderView.y = posY;
		render.RenderView(renderView);
	cam.End2D();

	for _, ply in pairs(player.GetAll()) do
		// if ply is valid and has a character loaded and shit
			ply:SetRenderMode(RENDERMODE_NORMAL);
			ply:SetColor(Color(255, 255, 255, 255));
		end
	end
end

I’ve tried putting those loops setting player rendering everywhere in there, but can’t get it to have any effect. If I leave out the second loop that sets the players’ rendering back to normal, it works, but everyone obviously stays invisible. Are there any better methods to accomplishing this?

I tested some myself, and using ply:SetNoDraw(true/false) works for me

Worked perfectly, thanks man.