it's really easy to make a weapon with as many fire-modes as you want
Code:
if (UInputMan:KeyReleased(26) ) then--z
   if (mode==0) then
      mode = 1;
   end
   if (mode==1) then
      mode = 2;
   end
   if (mode==2) then
      mode = 3;
   end
   if (mode==3) then
      mode = 0;
   end
end
if (mode==0) then
   default action do whatever here;
end