@Prog_Plus_plus:
Yeah you're right about the 50, however changing the order of the instructions does help too

Oh and good explanation about the % Operator.
@topic:
here is an update, tested version:
Code:
action arrowBox
{
var counter=0; // counter has initial value of zero
while(1) // continue firing indefinitly
{
counter += 1;
if(counter == 50) //play with this number(amt of time b/t firing an arrow
{
you = ent_create(arrowMDL,my.x,arrowFly); //create new arrow
}
counter %= 50;
wait(1);
}
}