So sorry for being a pain, but i still seem to be unable to get it to work.
I have tried with the :
alias idlemsg {
and
on*:start: {
commands and have even altered the order of messages but it still does not work, i have tried it on 3 seperate scripts, restarting all upon loading and nothing happens.
this is as i have it now:
on *:start: {
  .timeridlemsg 0 3600 SendIdle
}
alias SendIdle {
  if ($idle > 300) { amsg 3I am currently joining the ranks of being an Idle Chat User I have been idle for12 $duration($idle,3) 3! 7 Say my name if you need me. :) }
  elseif ($idle > 1200) { amsg 3I have joined the ranks of being an Idle Chat User I have been idle for12 $duration($idle,3) 3! 7 Say my name if you need me. :) }
  elseif ($idle > 2400) { amsg 3I am still an Idle Chat User I have been idle for12 $duration($idle,3) 3! 7 Give up saying my name!  5Please leave me a message! :) }
  elseif ($idle > 3600) { amsg 3I'm an Idle Chat User I have been idle for12 $duration($idle,3) 3! 7 Give up saying my name!  5Please leave me a message! :) }
}
i did try it with the 4 messages reversed as you posted but it didn't work then either.
