So I got the brilliant idea to have silver arrows be a different weapon in the game, which of course means scripting time.

This is what I have so far...

Code:
CONST CR_SARROW = 18 //Set Counter for Silver Arrows to Script 12
CONST CR_MAX_CL = 21 //Set Max Counter Clone for Sub Screen use to Script 15

item script SilverArrow
{
	void run(int a, int damage) //D0 reserved for pick up message script
	{
		if (Game->Counter[CR_SARROW]<1){Quit();}
		else
		{
			if Link->Item(15)=true; //Bow check Short Bow
			{
				int step = 100
			}
			if Link->Item(68)=true; //Bow check Long Bow
				int step = 200
			}
			if Link->Item(50)=true;  //Bow check Fairy Bow
				int step = 400
			}
			lweapon shot = NextToLink(LW_ARROW,0);
			Game->PlaySound(1);
			shot->Dir = Link->Dir;
			shot->Step = step;
			shot->UseSprite(11);
			shot->Damage = damage;
			Game->Counter[CR_SARROW]--;
		 }
	}
}
Now for questions based on the above.

1) What is the base step speed of the Short Bow? I figure 100 is probably too high but I don't know for sure. Conversely, is there a way to pull this information from elsewhere without setting a variable or is this an okay way to do it?
2) How do I make the projectile pierce?
3) How do I make the projectile leave a spark trail? I'm researching this since I think I might have asked for something like this a while back but don't remember the answer I was given on that note.

Thanks in advance.