Skip to content
JasperLorelai edited this page May 19, 2024 · 17 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 ticsk, 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. 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. 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. 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