My first scoreboard , attempt to index local 'ply' .

Hello. Please help me. This is my first script on lua,and i have a trouble with him.

Lua interpreter has writing error on 46 line.

[lua]AddCSLuaFile( “sky_board.lua” );

local Menu = {}
local Frame

function Menu.Open(ply)
surface.CreateFont (“coolvetica”, 32, 400, true, false, “ScoreBoardHost”)
Frame = vgui.Create(‘DPanel’)
Frame:SetSize(600, 500)
Frame:Center()
Frame:MakePopup()
Frame:Clear(true)
Frame.Paint = function()
surface.SetDrawColor( 0, 0, 0, 0 )
end
local x, y = Frame:GetPos()
local Host = vgui.Create(‘DPanel’,Frame)
Host:SetSize(555, 60)
Host:SetPos(x+25,y+25)
Host:MakePopup()
Host.Paint = function()
draw.RoundedBox ( 10, 0, 0, 555, 60, Color( 14, 150, 240, 200 ))
end

local DLabel = vgui.Create('DLabel',Host)
	DLabel:SetPos(25,15)
	DLabel:SetFont("ScoreBoardHost")
	DLabel:SetText(GetHostName())
	DLabel:SizeToContents()
	DLabel:SetColor(Color(255,40,40,255))
	
local function Update(ply)	
	local DermaListView = vgui.Create("DListView")
		DermaListView:SetParent(Frame)
		DermaListView:SetPos(25, 100)
		DermaListView:SetSize(555, 385)
		DermaListView:SetMultiSelect(false)
		DermaListView:AddColumn("Name")
		DermaListView:AddColumn("Props")
		DermaListView:AddColumn("Kills")
		DermaListView:AddColumn("Deaths")
		DermaListView:AddColumn("Ping")
		if ply:IsAdmin() then
			DermaListView.OnRowSelected = function( panel , line )
					local MenuButtonOptions = DermaMenu()
						MenuButtonOptions:AddOption("Kick", function() Msg(panel:GetLine(line):GetValue(6)) end )
						MenuButtonOptions:AddOption("Ban 1h", function() Msg(panel:GetLine(line):GetValue(6)) end )
						MenuButtonOptions:AddOption("Perm ban", function() Msg(panel:GetLine(line):GetValue(6)) end )
						MenuButtonOptions:Open() 
			end
		end
		DermaListView.Paint = function()
			draw.RoundedBox ( 10, 0, 0, DermaListView:GetWide(), DermaListView:GetTall(), Color( 50, 50, 50, 150 ))
		end
		for k,v in pairs(player.GetAll()) do
			DermaListView:AddLine(v:Nick(),v:GetCount( "props" ) + v:GetCount( "ragdolls" ) + v:GetCount( "effects" ),v:Frags(),v:Deaths(),v:Ping(),v:SteamID()) 
		end	
	end
Update(ply)

end
function Menu.Close()
if Frame and Frame:IsValid() then
Frame:Remove()
gui.EnableScreenClicker(false)
end
end

timer.Simple(1.5, function(ply)

function GAMEMODE.ScoreboardShow()
	Menu.Open(ply)
	gui.EnableScreenClicker(true)
	gui.SetMousePos( ScrW()/2, ScrH()/2 )
end

function GAMEMODE.ScoreboardHide()
	Menu.Close()
end

end)[/lua]

Use [lua] tags please, and try replacing the ply with LocalPlayer()