HELP SCOREBOARD

I need that whenever I click on the player the panel is displayed, where I can teleport to it, ban and so on, help me please, here is my code


------------------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------ТАБ НАПИСАЛ Kydesn1k-------------------------------------------------------------------------
-------------------------------------------------------------Собстенновость l Relax l Новый Русский SCP-RP--------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------------------


-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
local Scoreboard = nil
local PlayerListTop = nil

surface.CreateFont("ScoreBoardFont", {
    font = "Cyrillic",
    size = 16,
    weight = 900,
    blursize = 0,
    scanlines = 0,
    antialias = true,
     extended = true,

})

surface.CreateFont("ScoreBoardTitleFont", {
    font = "Cyrillic",
    size = 25,
    weight = 900,
    blursize = 0,
    scanlines = 0,
    antialias = true,
     extended = true,

})
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
commands = {}



local function addCommand( name, func )



	commands[ name ] = func



end

addCommand( "Скопировать SteamID", function( pl ) SetClipboardText( pl:SteamID() ) end )



addCommand( "ТП к нему", function( pl ) RunConsoleCommand( "say", "!goto "..pl:Nick() ) end )



addCommand( "Тп к себе", function( pl ) RunConsoleCommand( "say", "!bring "..pl:Nick() ) end )



addCommand( "Вернуть", function( pl ) RunConsoleCommand( "say", "!return "..pl:Nick() ) end )



addCommand( "Фриз", function( pl ) RunConsoleCommand( "say", "!freeze "..pl:Nick() ) end ) 



addCommand( "Разфризить", function( pl ) RunConsoleCommand( "say", "!unfreeze "..pl:Nick() ) end )


UserGroupTitlesScoreboard = {}
UserGroupTitlesScoreboard["superadmin"] = "С"
UserGroupTitlesScoreboard["admin"] = "А"
UserGroupTitlesScoreboard["moderator"] = "М"
UserGroupTitlesScoreboard["user"] = ""
UserGroupTitlesScoreboard["admin_d"] = "А"
UserGroupTitlesScoreboard["superadmin_d"] = "СА"
UserGroupTitlesScoreboard["lpk"] = ""
UserGroupTitlesScoreboard["vip"] = ""



hook.Add( "ScoreboardShow", "SCP-SCOREBOARD", function(ply)




---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
local function SteamToProfile(ply) -- Thanks decodaman
    return 'http://steamcommunity.com/profiles/' .. (ply:SteamID64() or "BOT")
end
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
local function blur(p,w,h)
    local px, py = p:GetPos()

    local blurTex = Material( "pp/blurscreen" )
    blurTex:SetFloat( "$blur", 3 )
    blurTex:Recompute()
    render.UpdateScreenEffectTexture()

    surface.SetMaterial( blurTex )
    surface.SetDrawColor( 255, 255, 255, 255 )

    surface.DrawTexturedRect( -px, -py, ScrW(), ScrH() )

    surface.SetDrawColor( 0,0,0,60 )
    surface.DrawRect( 0, 0, w, h )

    surface.SetDrawColor( 120,120,120,120 )
    surface.DrawOutlinedRect( 0, 0, w, h )
end
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
        if !IsValid(Scoreboard) then
local x,y = ScrW(), ScrH()
        	Scoreboard = vgui.Create("DFrame")
        	Scoreboard:SetSize(600,800)
        	Scoreboard:SetPos(x / 2 - 250,y - 600)

        	Scoreboard:SetTitle("")

            local S = Scoreboard:GetSize()
        	Scoreboard:SetDraggable( false )
        	Scoreboard:ShowCloseButton( false )
            Scoreboard:MoveTo(x / 2 - 250,y / 2 - 400,0.8, 0, 1)
        	Scoreboard.Paint = function(self, w, h)
                        blur(self,w,h)
    
        		

        		surface.SetDrawColor(team.GetColor(LocalPlayer():Team()))
        		surface.DrawOutlinedRect(0,0,w,h)


        		/*surface.SetDrawColor(255,255,255)
                surface.SetMaterial( Material( "logo/scp.png" ) )
                surface.DrawTexturedRect(0,0, 36 / 1.5 ,36 / 1.5)*/


                draw.SimpleTextOutlined(GetHostName(),"ScoreBoardTitleFont",S / 2  / 2 - 10,25,Color(255,255,255),TEXT_ALIGN_LEFT,TEXT_ALIGN_CENTER,1,Color(0,0,0,180))

                draw.SimpleTextOutlined("Имя","ScoreBoardFont", 50,50,Color(255,255,255),TEXT_ALIGN_LEFT,TEXT_ALIGN_CENTER,1,Color(0,0,0,180))

                draw.SimpleTextOutlined("Пинг","ScoreBoardFont",S - 50,50,Color(255,255,255),TEXT_ALIGN_LEFT,TEXT_ALIGN_CENTER,1,Color(0,0,0,180))

                draw.SimpleTextOutlined("Профессия","ScoreBoardFont",S / 2 - 34 ,50,Color(255,255,255),TEXT_ALIGN_LEFT,TEXT_ALIGN_CENTER,1,Color(0,0,0,180))

                draw.SimpleTextOutlined("Уровень","ScoreBoardFont",S / 2 + 145 ,50,Color(255,255,255),TEXT_ALIGN_LEFT,TEXT_ALIGN_CENTER,1,Color(0,0,0,180))

                --draw.SimpleTextOutlined("Создал TAB - Kydesn1k","ScoreBoardFont", 15,S / 2 + 480,Color(255,255,255),TEXT_ALIGN_LEFT,TEXT_ALIGN_CENTER,1,Color(0,0,0,180))

        	end

      
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
            local ListPanel = vgui.Create("DPanel", Scoreboard)
            ListPanel:SetSize(580,700)
            ListPanel:SetPos(10,60)
            ListPanel.Paint = function(self,w,h)
                draw.RoundedBox(2,0,0,w,h,Color(255,255,255,0))


                surface.SetDrawColor(team.GetColor(LocalPlayer():Team()))
                surface.DrawOutlinedRect(0,0,w,h)
            end
 


        	local PlayerScrollPanel = vgui.Create("DScrollPanel", ListPanel)
        	 PlayerScrollPanel:SetSize(ListPanel:GetWide(),ListPanel:GetTall())
        	 PlayerScrollPanel:SetPos(2,2)

        	  PlayerListTop = vgui.Create("DListLayout", PlayerScrollPanel)
        	  PlayerListTop:SetSize(PlayerScrollPanel:GetWide()-4,PlayerScrollPanel:GetTall()-4)
        	  PlayerListTop:SetPos(0,0)
        end
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
        if IsValid(Scoreboard) then
        	PlayerListTop:Clear()
            local PLAYERS = player.GetAll()
            table.sort( PLAYERS, function( a, b ) return team.GetName( a:Team() ) < team.GetName( b:Team() ) end )
        	for k,v in pairs(PLAYERS) do

                 if IsValid(v) and v:Team() != TEAM_CONNECTING and v:Team() != TEAM_UNASSIGNED then
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
        		local PlayerPanel = vgui.Create("DPanel", PlayerListTop)
        		PlayerPanel:SetSize(PlayerListTop:GetWide(), 30 )
        		PlayerPanel:SetPos(0,0)
        		PlayerPanel:Clear()
                local P = PlayerPanel:GetSize()
        		PlayerPanel.Paint = function(self,w,h)
        			draw.RoundedBox(0,0,0,PlayerPanel:GetWide(), PlayerPanel:GetTall(),team.GetColor(v:Team()))
                    surface.SetDrawColor(team.GetColor(LocalPlayer():Team()))

                    surface.SetDrawColor(Color(255,255,255))
                    surface.DrawLine(P, 29, 0,29)

                    draw.SimpleTextOutlined(v:Nick(),"ScoreBoardFont",35,13,Color(255,255,255),TEXT_ALIGN_LEFT,TEXT_ALIGN_CENTER,1,Color(0,0,0,180))

                    draw.SimpleTextOutlined(v:getDarkRPVar("job"),"ScoreBoardFont",290,13,Color(255,255,255),TEXT_ALIGN_CENTER,TEXT_ALIGN_CENTER,1,Color(0,0,0,180))

                    draw.SimpleTextOutlined(v:Ping(),"ScoreBoardFont",P - 22,13,Color(255,255,255),TEXT_ALIGN_CENTER,TEXT_ALIGN_CENTER,1,Color(0,0,0,180))

                    draw.SimpleTextOutlined(v:getDarkRPVar("level"),"ScoreBoardFont",P - 115,13,Color(255,255,255),TEXT_ALIGN_CENTER,TEXT_ALIGN_CENTER,1,Color(0,0,0,180))

                    draw.SimpleTextOutlined(UserGroupTitlesScoreboard[v:GetUserGroup()] and UserGroupTitlesScoreboard[v:GetUserGroup()] or "","ScoreBoardFont",P - 65,13,Color(255,255,255),TEXT_ALIGN_CENTER,TEXT_ALIGN_CENTER,1,Color(0,0,0,180))

        		end

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
                
                local AvatarButton = vgui.Create("DButton", PlayerPanel)
                AvatarButton:SetSize(28,28)
                AvatarButton:Dock(LEFT)
                AvatarButton:DockMargin(3,3,0,3)
                AvatarButton:SetContentAlignment( 5 )
                AvatarButton.DoClick = function() 
                    gui.OpenURL(SteamToProfile(LocalPlayer()))
                end

                local Avatar = vgui.Create("AvatarImage", AvatarButton)
                Avatar:SetSize(28,28)
                Avatar:SetMouseInputEnabled( false )
                Avatar:SetPlayer(v, 28)
            end

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
            local Group = vgui.Create("DImageButton", Scoreboard)

            Group:SetImage("icon16/group.png")
            Group:SetPos(12,768)
            Group:SetSize(18,18)
            Group.DoClick = function()
            	gui.OpenURL("http://steamcommunity.com/groups/rellaxrp")
      
         end

            local Pravila = vgui.Create("DImageButton", Scoreboard)

            Pravila:SetImage("icon16/page.png")
            Pravila:SetPos(42,768)
            Pravila:SetSize(18,18)
            Pravila.DoClick = function()
                gui.OpenURL("http://steamcommunity.com/groups/rellaxrp/discussions/0/135508489637640575/")
      
         end

           local Donat = vgui.Create("DImageButton", Scoreboard)

            Donat:SetImage("icon16/basket_add.png")
            Donat:SetPos(72,768)
            Donat:SetSize(18,18)
            Donat.DoClick = function()
                gui.OpenURL("http://steamcommunity.com/groups/rellaxrp/discussions/0/135508489637640575/")
      
         end

 

         local Content = vgui.Create("DImageButton", Scoreboard)
            Content:SetImage("icon16/link.png")
            Content:SetPos(102,768)
            Content:SetSize(18,18)
            Content.DoClick = function()
                gui.OpenURL("http://steamcommunity.com/sharedfiles/filedetails/?id=954322953")
      
         end

  end       
              
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------





-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
            local Online = vgui.Create("DPanel", Scoreboard)
            Online:SetSize(160,28)
            Online:SetPos(220,768)
            Online.Paint = function(self,w,h)
                draw.RoundedBox(2,0,0,w,h,Color(0,0,0,0))

                surface.SetDrawColor(team.GetColor(LocalPlayer():Team()))
                surface.DrawOutlinedRect(0,0,w,h)

                draw.SimpleTextOutlined("Игроков онлайн "..#player.GetAll().."/"..game.MaxPlayers(),"ScoreBoardFont",7,14,Color(255,255,255),TEXT_ALIGN_LEFT,TEXT_ALIGN_CENTER,1,Color(0,0,0,180))
            end
    end
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

        if IsValid(Scoreboard) then
        	Scoreboard:Show()
        	Scoreboard:MakePopup()
        	Scoreboard:SetKeyboardInputEnabled( false )
        end
 
end)

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

hook.Add("ScoreboardHide","SCP-SCOREBOARD", function()
           if IsValid(Scoreboard) then
            Scoreboard:Remove()      
           end
    
       end)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------



Next time please translate everything to english. All you need is

DermaMenu. Btw, after the last update to

gui.OpenURL, try to use

Player:ShowProfile for players profile buttons.