so something like this ?
function firstspawn (ply)
local test = ply:GetPData( "first time", true )
name = ply:Nick()
if test then
derma stuff goes here
--when they finish have this action ply:SetPData( "first time", false ) or if they fail do ply:Kick( name.." was kicked for not knowing how to play Dark rp" )
end
hook.Add( "PlayerInitialSpawn", "firstspawnpanel", firstspawn )
that should get you started
ps: this is the rough way to do it.