The script can handle up to 20 candidates, although the source code can be amended quite easily to increase the maximum number of candidates. There is no in-built limit on the number of votes the script will handle.
The script will tally the current top preference on each vote and if any candidate has more than half of the current live votes (i.e. those votes which express a preference for one of the candidates who have not been eliminated) it will declare that person the winner. Otherwise, it will eliminate the candidate with the fewest votes, reallocate that candidate's votes and repeat the process. If there are a number of candidates tied in last place, it will eliminate one of them at random.
There is limited validity checking built into the script; you can only select one first preference for each vote, then one second preference, etc. However, it is possible to select one candidate numerous times as, for example, the second and fourth preference. In that instance, only the highest preference expressed for a candidate will be used. If no first preference is expressed, but a second preference is given, the second preference will be treated as the first preference and likewise for lower preferences.