Mechanic: Projectile

The Projectile skill fires a meta-“projectile” that can be decorated using particle and sound effects.
It's great for creating complex, aesthetically pleasing skills, such as shadow bolts, balls of ice, or even meteors.
It has a lot of options(more than any other skill) and can be a bit of a nightmare to jump into without knowing what you're doing.

Attributes

Attribute Aliases Description Default Value
onTick oT Meta-Skill executed every [interval] ticks at the projectile's origin location. None
onHit oH Meta-Skill executed when the projectile hits something. Targets hit are inherited by the meta-skill. None
onEnd oE Meta-Skill executed when the projectile ends. None
Type t The “type” of projectile. Default projectiles are launched from the mob's location towards the target. METEOR type projectiles fall from the sky above the target. NORMAL
Interval i How often (in ticks) the projectile updates its position 4
HorizontalRadius hRadius, hR The horizontal radius entities will be hit in around the projectile. 1.25
VerticalRadius vRadius, vR The vertical radius entities will be hit in around the projectile. Horizontal Radius
Duration d The max duration (in ticks) the projectile will persist. 100
MaxRange mr The maximum range (in blocks) the projectile will travel. 40
Velocity v The velocity of the projectile 5
StartYOffset syo Start Y Offset - Lets you offset where on the casting mob the projectile shoots from. +1
StartFOffset sfo Start Forward Offset - How far in front of the mob the projectile starts +1
StartSideOffset sso Start Side Offset - How far to the side of the mob the projectile starts 0
TargetYOffset tyo Target Y Offset - Lets you offset where on the target the projectile shoots at. +1
HorizontalOffset hO Horizontal Offset will rotate the projectile's horizontal starting velocity around a 360-degree axis. 0
VerticalOffset vO Vertical Offset will rotate the projectile's vertical starting velocity around a 360-degree axis. 0
HitPlayers hp true
HitNonPlayers hnp false
StopAtEntity sE Whether the projectile will stop upon hitting a targetable entity. true
StopAtBlock sB Whether the projectile will stop upon hitting an opaque block. true
HugSurface hs Whether or not the projectile should move along the ground. false
HeightFromSurface hfs For NORMAL projectiles, how high above the surface the projectile should glide if HugSurface is set to TRUE. For METEOR projectiles, how high above the surface the projectile starts above the target. 0.5
PowerAffectsRange par Whether a mob's power level affects the projectile's range. true
PowerAffectsVelocity pav Whether a mob's power level affects the projectile's velocity. true
gravity g Determines the gravity of the projectile; use fractions (0.1-0.2) for low gravity 0


Special Notes

For the onStart Skill: onStart skills work in a special way - any buff or “special effect” mechanics fired by onStart that have a duration (such as ParticleTornado) will attach to the projectile for their duration, which allows for some interesting effects.

For the onTick Skill: using the @origin targeter will cause any skills or effects to target the projectile's location. This is the intended way to configure how the projectile looks.

For the onHit Skill: Any targets the projectile hits are passed to the skill inherently. Any targeters you put in the onHit skill will override these and cause your skill to likely not work as you intend.

For the onEnd Skill: Special effects for the projectile's end also use @origin. Also, If you want entities near the end-point of the projectile to be hit in a certain way (such as a final large fireball explosion) you can use the @PlayersNearOrigin{r=[radius]} targeter.

Types:
There are two types of projectiles, the normal variant and also the Meteor variant.
Meteor projectiles are created above the target, rather than at the mob that is firing the projectile.
Because of this, meteor projectiles cannot use certain attributes (which ones are pending further testing).

Projectile Bullets

Projectile mechanics can now specify a bullet type that will represent the projectile. No longer are projectiles just limited to particles!

These work with the projectile, missile, and orbital mechanics.

Bullet types available are:

  • ARROW - projectile{bulletType=ARROW;…}
  • BLOCK - projectile{bulletType=BLOCK;material=STONE;…}
  • ITEM - projectile{bulletType=ITEM;material=STONE;…}
  • MOB - projectile{bulletType=MOB;mob=SkeletonKing;…}

Yes, that's right, you can even shoot projectiles made up of other Mythic mobs! Mobs shot with the projectile skill cannot be interacted with, but will still use all their skills…

You can also use the new bulletSpin=# option to give your bullets some spin.

Examples

This example shoots a fast-moving ball of ice that damages and slows the first entity it hits:
Mob File

  Mob:
    Type: SKELETON
    Skills:
    - skill{s=IceBolt} @target ~onTimer:100

Skills File

  IceBolt:
    Skills:
    - projectile{onTick=IceBolt-Tick;onHit=IceBolt-Hit;v=8;i=1;hR=1;vR=1}
  IceBolt-Tick:
    Skills:
    - effect:particles{p=snowballpoof;amount=20;speed=0;hS=0.2;vS=0.2} @origin
  IceBolt-Hit:
    Skills:
    - damage{a=10}
    - potion{type=SLOW;duration=100;lvl=2}