I would use table fields instead of global variables:
-- create start timer
self.gracetimer = CreateTimer(3000)
ListenEvent(EVENT_TIMERTICK,self.gracetimer,OnGraceTimer)
--create gui
local font = LoadFont("Fonts/arial.ttf")
self.scoretile = CreateTile(world, font, "Score: 0", 32, TEXT_LEFT)
Other than that, what is the problem with this code?