Skip to content
JasperLorelai edited this page Jul 16, 2026 · 19 revisions

Source Code

spell-class: ".targeted.OrbitSpell"
Value Supported
entity true
location true
entity_from_location false
  • delayed - Plays the effect at the orbit's location when the orbit ends.
  • special - Plays the effect at the orbit's location as it travels, every tick-interval.
  • projectile - Plays the effect at the orbit's position as it travels, every tick-interval. On this spell, this position only works for EffectLib effects, entity effects, and armorstand effects.

Description:

A targeted spell that creates an orbit rotating around the target.

Configuration:

Since 4.0 Beta 13 some of these options support dynamic values through numeric or string expressions.

Option Description Type Default Supports expressions
can-hit Target list. Before 4.0 Beta 14: Valid Target List
Since 4.0 Beta 14: Valid Target List
false
max-duration Max duration, in seconds, of the orbit. Double 20 true
tick-interval Defines how often, in ticks, to play the particle effect and check hitboxes. Integer 2 true
vert-expand-delay Defines how often, in ticks, to expand the orbit vertically. (requires vert-expand-radius) Integer 0 true
horiz-expand-delay Defines how often to expand the orbit horizontally. (requires horiz-expand-radius) Integer 0 true
y-offset Modifies the start height location. Float 0.6 true
hit-radius Defines how far from the center of the orbit to look for entities to hit. Float 1 true
vertical-hit-radius Defines how far vertically from the center of the orbit to look for entities to hit. Float 1 true
orbit-radius Defines how far from the center of the start location should the orbit be? Float 1 true
start-horiz-offset Offset in degrees for the start yaw of the orbit. Float 0 true
start-yaw-offset Since 4.0 Beta 14. Alias for start-horiz-offset. Float 0 true
start-pitch-offset Since 4.0 Beta 14. Offset in degrees for the start pitch of the orbit. Float 0 true
start-angle-offset Since 4.0 Beta 14. Offset in degrees for the starting angle of the orbit. Positive values follow in the direction of the orbit. Float 0 true
lock-start-yaw Since 4.0 Beta 14. If true, the starting yaw is locked to 0 before offsets. When false, the start yaw is derived from the starting location. Boolean false true
lock-start-pitch Since 4.0 Beta 14. If true, the starting pitch is locked to 0 before offsets. When false, the start pitch is derived from the starting location. Boolean true true
follow-pitch Since 4.0 Beta 14. If true, the orbit's pitch is changed to following pitch changes from the targeted entity. Boolean false true
follow-yaw Since 4.0 Beta 13. If true, the orbit is adjusted as the target changes yaw. Boolean false true
immune-ticks Since 4.0 Beta 14. If immune-ticks >= 0, entities hit by the orbit are immune from collisions for the amount of ticks specified by the option. Integer -1 true
constant-immune-ticks Since 4.0 Beta 14. If false, immune-ticks is resolved per hit entity, instead of once at the start of the orbit. Boolean true true
vert-expand-radius Defines how much to expand the orbit radius vertically. (requires vert-expand-delay) Float 0 true
horiz-expand-radius Defines how much to expand the orbit radius horizontally. (requires horiz-expand-delay) Float 0 true
seconds-per-revolution Defines how many seconds it takes the orbit to make a full circle.

Since 4.0 Beta 14 this may be 0 to create stationary orbits. It is also now rounded to the nearest tick-interval / 20 ticks. For example, with tick-interval: 1, 0.06 is rounded to 0.05; with tick-interval: 10, 5.7 is rounded to 5.5.
Float 3 true
stop-on-hit-entity Defines if the orbit should disappear when it hits an entity. Boolean false true
stop-on-hit-ground Defines if the orbit should disappear when it hits the ground (see block transparency). Boolean false true
counter-clockwise Defines if the orbit should rotate in a reverse way. Boolean false true
require-entity-target Defines if the orbit should rotate around an entity target. When false, a the orbit will target a block instead. Boolean true true
interactions Since 4.0 Beta 14. Interactions define what happens when this orbit collides with another. Projectile Interaction List false
spell Sub-spell to cast at the orbit location. String false
spell-on-hit-ground Sub-spell to cast at the orbit location when it hits the ground (determined by Block Transparency). String false
spell-on-hit-entity Sub-spell to cast at the entity target. String false

Examples:

Example 1:

Astral-Spheres:
    spell-class: ".MultiSpell"
    name: "Astral Spheres"
    cast-item: bone
    cooldown: 20
    cost:
        - mana 25
    str-cost: "25 Mana"
    permission-name: astral_spheres
    spells:
        - ORBIT_ASTRAL_SPHERES_1
        - ORBIT_ASTRAL_SPHERES_2
        - ORBIT_ASTRAL_SPHERES_3

ORBIT_ASTRAL_SPHERES_1: &astralSphere
    spell-class: ".targeted.OrbitSpell"
    helper-spell: true
    permission-name: astral_spheres
    target-self: true
    horiz-expand-delay: 2
    horiz-expand-radius: 0.025
    vert-expand-delay: 2
    vert-expand-radius: 0.01
    start-horiz-offset: 0
    hit-radius: 1.25
    vertical-hit-radius: 1.25
    seconds-per-revolution: 3
    orbit-radius: 2
    tick-interval: 1
    max-duration: 10
    y-offset: 0.25
    stop-on-hit-entity: true
    stop-on-hit-ground: true
    can-hit:
        - players
        - nonplayers
    spell: FORCEBOMB_ASTRAL_SPHERES
    spell-on-hit-entity: DMG_ASTRAL_SPHERES
    spell-on-hit-ground: EFF_ASTRAL_SPHERES_GROUND
    effects:
        eff1:
            position: special
            effect: effectlib
            effectlib:
                class: SphereEffect
                particle: REDSTONE
                color: FF00FF
                iterations: 1
                radius: 0.25
                particles: 15
                period: 0
                visibleRange: 100
        eff2:
            position: special
            effect: effectlib
            effectlib:
                class: SphereEffect
                particle: REDSTONE
                color: 9400D3
                iterations: 1
                radius: 0.5
                particles: 15
                period: 0
                visibleRange: 100

ORBIT_ASTRAL_SPHERES_2:
    <<: *astralSphere
    start-horiz-offset: 120

ORBIT_ASTRAL_SPHERES_3:
    <<: *astralSphere
    start-horiz-offset: 240

FORCEBOMB_ASTRAL_SPHERES:
    spell-class: ".targeted.ForcebombSpell"
    helper-spell: true
    permission-name: astral_spheres
    radius: 3
    pushback-force: -5
    additional-vertical-force: 2
    max-vertical-force: 2
    can-target: players,nonplayers

EFF_ASTRAL_SPHERES_GROUND:
    spell-class: ".targeted.DummySpell"
    helper-spell: true
    permission-name: astral_spheres
    effects:
        eff1:
            position: target
            effect: particles
            particle-name: explosion_large
            horiz-spread: 0.5
            vert-spread: 0.5
            count: 5
            speed: 0

DMG_ASTRAL_SPHERES:
    spell-class: ".targeted.PainSpell"
    helper-spell: true
    permission-name: astral_spheres
    damage: 3
    check-plugins: true
    ignore-armor: false
    can-target: players,nonplayers
    effects:
        eff1:
            position: target
            height-offset: 0.75
            effect: particles
            particle-name: explosion_large
            horiz-spread: 0.3
            vert-spread: 0.3
            count: 2
            speed: 0

Example 2:

GrandSaviorOrbit1:
    spell-class: ".targeted.OrbitSpell"
    target-self: true
    hit-radius: 1
    seconds-per-revolution: 5
    orbit-radius: 2
    tick-interval: 1
    max-duration: 10
    y-offset: 0.25
    stop-on-hit-entity: false
    stop-on-hit-ground: false
    start-horiz-offset: 0
    effects:
        eff1:
            position: projectile
            effect: armorstand
            armorstand:
                mainhand: golden_sword
                right-arm-angle: 1.4,-0.2,0
                visible: false
                gravity: false

Clone this wiki locally