AMAZING!! Thanks so much. ISOP actually does work in twitch so here's my updated code. It works really nicely. The only thing I would like to implement is a way to keep people from entering the raffle more than one time. Is there a way to limit the entrants or to get rid of duplicates?

Code:
on *:TEXT:*:#: {
  if ($1 == !raffle) {
    if (%open == 1) {
      write raffle.txt $nick
      msg #cartooncyborg /me $nick entered the raffle!
    }
    elseif (!%open) { msg #cartooncyborg /me There is not an active raffle. }
  }
  elseif ($1 == !people) {
    if (%open) {
      msg #cartooncyborg /me There are currently $lines(raffle.txt) users in the raffle!
    }
  }
  if ($1 == !startraffle) {
    if ($nick isop #) || ($nick == cartooncyborg) {
      start_raffle
    }
  }
  if ($1 == !stopraffle) {
    if ($nick isop #) || ($nick == cartooncyborg) {
      end_raffle
    }
  }
}
alias start_raffle {
  if (!%open) {
    write -c raffle.txt
    set %open 1
    msg #cartooncyborg The raffle is open! You have 5 minutes to submit a level by typing !raffle. Type !people to see who's already entered the raffle!
    .timerraffle1 1 120 msg #cartooncyborg 3 minutes left for the raffle to close. Type !raffle if you have a level suggestion!
    .timerraffle2 1 290 msg #cartooncyborg 1 minute left to enter the raffle! Hurry!
    .timerraffle3 1 350 end_raffle
  }
  elseif (%open) { msg #cartooncyborg /me There is an active raffle already. }
}
alias end_raffle { 
  if (%open) {
    .timerraffle* off
    var %user = $read(raffle.txt,n)
    write -c raffle.txt
    unset %open 
    msg #cartooncyborg /me And the winner is... %user $+ !!! Well Done!
  }
  elseif (!%open) { msg #cartooncyborg /me There is not an active raffle. }
}