This is the code the Ghast uses to shoot a fireball I have pulled the code from the Vanilla Ghast and Fireball to show you what it does compared to the Arrow I think what you are trying to compare are two different things, the arrow first of all has drop off which compared to a fireball does not drop off and keeps its velocity constant.
Now if you set it to 0 and it'll be accurate and increasing the velocity makes it deal more damage and is a factor in the trajectory of the arrow. shoot() method parameters (x,y,z,velocity,inaccuracy)Ībstractarrow.shoot(d0, d1 + d3 * (double)0.2F, d2, 1.6F, (float)(14 - ().getId() * 4)) Īs you see in the last parameter its adjusting the inaccuracy of the shoot from a hardcoded number subtracted by the current world difficulty * 4.