Skip to content

jamailun/UltimateSpellSystem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ultimate Spells System

Paper plugin, for dynamic spells, using a custom DSL.

Author

Made with love by jamailun.

Basics

All files in /plugins/UltimateSpellSystem/spells/. will be considered as spell.

A spell follow a very basic syntax. For example :

# I'm a comment
send to %caster message "You just casted a spell !";

define %enemies_around = sizeof(all monsters within 10 around %caster)
if(%enemies_around > 2) {
    summon IRON_GOLEM at %caster as %my_golem for 40 seconds with: {{
        name: "&eMichel",
        health: 25 + 5 * %enemies_around
    }};

    # Callback when te golem dies
    callback %my_golem die: {
      send to %caster message "&cYour golem is dead :(";
      send to %caster effect resistance 2 for 12 secs;
    }

    # Triggers when it expires (after the duration)
    # This is an animation that make fake items appear for a duration.
    callback %my_golem expire: {
        play ANIMATION at %skeleton with: {{
            id: "explode.items",
            duration: 3.5s,
            count: 5,
            types: [[ "iron_ingot", "poppy" ]]
        }};
    }
}

See the full specifications for more details, or the wiki. I've also put a handful of examples.

API

You can code your own plugin to interact with USS.

  • Provide custom attributes for summoned entities.
  • Listen to specific events.
  • Cast spell on players or entities (or whatever you'd like really).

Check the wiki or the documentation (roughly the same content).

Questions ?

  • Create an issue on Github.
  • Ask your question on Discord.

Packages

 
 
 

Languages