2.6.0latestRelease 2.6.0 : New animations, SpellCaster performancesOct 17, 2025 New features New bundled functions · rand_int(number, number) -> number : Returns a new number between the two parameters. Same as rand_number but returns, as the name subtly implies, an integer. · block_below(entity) -> location : Find the first passable block below an entity. New bundled animations · blocks.circle : Expects a duration, a radius and a types material array. Is equivalent as multiple play BLOCK at once, with a circle shape. This is a great optimisation for large blocks animations. · blocks.square : Same arguments as the "circle" animation. But in a square, for those who follow. Improvements · The SpellCaster trait will only be active if a player is in the same world as the NPC. Fixes · Fixed a risk of concurrency issue with animations. · Fixed a bug with the SpellCaster trait not following the spell-caster-trait tick-rate configuration. CPU consumption is as such reduced.2.5.2Patch 2.5.2Oct 7, 2025 Small patch and API features update. API Features · Added events to watch health events caused by spells: EntityDamagedBySpellEvent and EntityHealedBySpellEvent. · Added the UltimateSpellsSystem.areAllies(Entity, Entity) to check if two bukkit entities are allied (will use all providers). Fixes · Fixed a bug on the players scope. · Fixed a console warning with entities scope.2.5.1Patch 2.5.1Sep 22, 2025 Features · In the configuration, it is now possible to disable event-cancellation on ATTACK step for a bound spell. New functions · get_food(entity) -> number : get the food levelof a human entity. · set_food(entity, number) : set the food level of a human. Fixes · Fixed maths with vectors. · More documentation for animations.2.5.0Release 2.5.0 : animations and better repeatJun 28, 2025 It's been a while since I posted a release. Here's the changelog. New features · Added animations system. · It's a new type of play statement. Only 3 bundled animations for now, but as for every feature in the plugin the API is easy to use and allow for extensibility. · For now, the 3 animations are: "items explosion", "spiraling particles" and "circle particles". · New syntax for the repeat-statement: repeat [after <delay>] every <period> for <duration> (on top of the existing repeat [after ] times every). · Finally, the break and continue will now exist of the repeat statement: Changes · The configuration changed : the spell-caster trait tick-rate can be adjusted. Fixes · The continue statement was not working as expected. It has been fixed. · An entity will always be "allied" with itself. · Fixed an issue with the HIT callback.2.4.1Patch 2.4.1 : Citizens trait and array-fixMay 17, 2025 New feature · Added a SpellCaster Citizens trait. · Added corresponding command (/spellcaster <add|remove|list|cast>) and permission (uss.spellcaster). · All of this was previoulsy exposed in the example-plugin in the git repo. Fixes · Fixed a java bug which caused effects and particles arrays to not be read in Orb summon properties. Miscelleanous · Warning in console when a spell is compiled with unknown summon properties. · The complete properties keys can be found here.. · Can be toggled-off in configuration.2.4.0Release 2.4.0 : cooldown and armor-standsMay 14, 2025 New features · Cooldown : · It is now possible to add cooldowns on bind items. · The cooldown can also be send to the material (like an enderpearl for example). It is configurable. · The /uss bind command has been completly reworked for easier use. New properties · For armor-stand : small, marker, base_plate, visible, show_arms. New functions · set_name(entity, string) : change the nameplate of an entity. Miscellaneous · Configuration file structure has been changed. Check if after you upgrade. · Configurable default clock value for custom entities.2.3.0Release 2.3.0 : better triggers and statusMay 9, 2025 New features · Added a /uss status command, to get the plugin status. New functions · entity_has_effect(<entity>, <effect_type: string>, [min_level]) -> boolean : check if a specified entity has a potion-effect. · set_aggro(<entity>, <target>) : set the aggro of an Mob to another entity. Other new elements · New cost: "permission". The player must have a specific permission to cast the spell. · Added configuration to set if events should be cancelled on bind-spell cast / trigger-step. Fixes · Added the missing potion effects: oozing, weaving, infested, wind_charged and trial_omen. · Fixed issues related to event cancellation. · API: fixed issue with casing in providers.2.2.0Release 2.2.0 : DSL functions & alliesMay 1, 2025 New features · USS functions · Before, to have a custom function, you needed to use the Java API to register it. It's not mandatory anymore. All USS scripts put into the ./functions/ folder will be a callable function in your spells. Check the related documentation for more details about the parameters and output syntax. · Allies system. When playing with friends, you don't want your summoned monsters to attack them. · Created a provider (Java API) to register custom allies relationships. For example, if you have a homemade plugin to handle parties, you will be able to say if two entities are allied. · For now, the only "allies" test is using the vanilla Teams systems : entities in the same scoreboard team with disabled friendly-fire will be considered as allies. More allies-conditions will be added later. New properties · can_damage_caster used by projectiles. Control if a projectile can damage its own caster. · can_damage_allies : the same as before, but with the caster's allies. · can_aggro_allies : the same as before, but for standard summons, not projectiles. · In a future version, those properties names may change to clarify them. New function · are_allies(Entity, Entity) -> Boolean : check if two spell-entities are allies. Other changes · The players scope will now accept a bukkit entity if it has a player scorebard tag attached to it. Thus, NPC can now be included in this scope with spells. · (technical) The projectile damage was using NBTs. It's not the case anymore. Miscellaneous · API javadoc is now published here.2.1.2Release 2.1.2 : scopes & functionsApr 24, 2025 I don't post all release, so this post also includes the 2.1.1. Changes · The all-around expression now accepts the scope the be a string. As such, you can do branched-in scopes. · The scopes will also allow for scoreboard tags to act. It's mostyly useful with Citizens plugin. · Example: if you tag a Citizens NPC with monster, then the monsters scope will include it. · Thus, Citizens NPCs are not "players" anymore New functions · get_health(Entity) -> Number : Get the current health of an entity. · get_max_health(Entity) -> Number : Get the maximum health of an entity. · heal(Entity, number) -> Number : Heal the entity by a certain amount. Returns the new health of the entity. · loc_to_list(Location) -> Number[] : transforms a location to a list containing the X, Y and Z coordinates. · Allows for easy extractions like: %y = loc_to_list(position of %caster)[1] Fixes · The knockback function allows for proper list of number as input vector. API changes Exposed a way for external plugin to : · Create a SpellRuntime instance, · "compile" a USS statement or expression. · With this, an external plugin can evaluate any USS string. Miscellaneous · The "send" evaluation will be proceeded synchronously. Don't worry, the execution will still be asynchronous. · The example plugin contains a proper conditional SpellCaster trait. It will probably be integrated into the main plugin in a future date.2.1.0Release 2.1.0 : optimizationApr 19, 2025 Optimizations · Particle and block effects are executed in a secondary thread. · Custom SpellEntity logic (i.e. Orb) are also executed async. Fixes · Fixed Duration equality tests. API changes · Removed exposure of logging in. · Moved schedule public methods from UltimateSpellSystem proxy to an exposed Scheduler. · Full javadoc coverage for the API. More javadoc for the DSL.2.0.1Release 2.0.1 : better castApr 18, 2025 This release is a huge one. The main feature is the possibility to allow multiple spells to be bind to a single item, each one triggered by a different serie of actions. The cost of spells has been diversified. Feature details · Items will be able to store multiple "bind-data". · Each one links 3 elements: · A spell (ID), · A cost (can have arguments). Basic implementation are: item durability, item count, player health, player food-level, player experience. Can be "none" to have to cost. · A trigger, composed of a sequence of "trigger steps". Each step can be one of: "attack", "left click [block/air]", "right click [block/air]", "sneak". Bug fixes · The drop property of summons has been fixed. · The all <scope> around expression did not handle properly the exclude keyword. Check your spells. New features · Added a send nbt statement, to apply a temporary NBT tag to an entity. · Added a uss help command, for more information in-game. New functions · normalize(Vector) -> Vector : normalize a Vector. · direction_of(Entity) -> Vector : get the direction of an Entity. · knockback(Entity, Vector, [number]) -> Void : apply a force to an entity. If the third argument is set, the force will be normalized and multiplied by it. API changes · The ItemBinder interface has new methods for #bind, and the old signature as been deprecated. Legacies methods will be removed in a future version. · The SpellEntity interface needs to implement the #setVelocity method. Miscellaneous · The configuration file changed. Future version will handle a proper migration system. · Now using the Exlll/'s ConfigLib library for configuration management.1.5.1Release 1.5.1: orb fixMar 25, 2025 Short release to fix an old bug in the Orb application of effects.1.5.0Release 1.5.0 : more generic APIMar 25, 2025 API (breaking) changes · The API now requires an implementation of aSpellEntityinstead of aLivingEntity. This allow for a more generic approach. Fixes · Fix on startup due to spells loaded before the callbacks extension. Miscellaneous · Added a sample project to demonstrate the use of the API. · Added an example with Citizens21.4.0Release 1.4.0 : callbacksMar 23, 2025 New features · Added a new system: the callback. It provides access to the events for summoned entities. · Currently existing callbacks:(projectile) landed,(projectile) hit,die,expire. · Added arand(min, max)function to generate random numbers.1.3.0Release 1.3.0Mar 7, 2025 New features · The summon statement can now summon projectiles. You can now make arrows rain down the skies ! · Summoned arrows cannot be picked-up. · All projectiles may apply damage. · New entity properties for projectiles : projectile_damage, velocity and direction. Check the wiki for more infos. · New property for orbs: max_blocks_hit : destroys orbs after a specific amount of block collisions. Miscellaneous · Entity attributes will now have access to the whole "summoning context" instead of just the spell runtime. If you have custom attributes, you may want to change the third type. · Added an update-check to look for the latest version.1.2.0Release 1.2.0Mar 5, 2025 New features · Added list operators expressions : · :+ : list append (list + elem -> list). · :- : list remove (list + elem -> list). · :/ : list remove (at index) (list + int -> list). · :? : list contains test (list + elem -> boolean). · Added standard break and continue statements. · Bug-fix · Fixed null comparison with != operator. · Variables will mutate in a block (when defined in parent block). · Variables can properly be set to null. · Added type inducing (when first declared as null). · The define keyword may be implicit.1.1.0Release 1.1.0Feb 28, 2025 New features · The repeat statement now adds a variable _repeat_index to keep track of the current iteration number. · Changed the @Metadata system : arguments must be raw values. · Added a @param(<var_name>, <type>) metadata tag. It guarantees a specific variable will exist on runtime. This allows more complex recursive spellc calls (i.e. allow for "scripting"). Bug fixes · Some blocks did not apply their runtime inheritance. · Fixed the stop scope backtrack. Miscellaneous · Added a bStat reporting. · Cleaner way to add a function (no need to add the function name again).1.0.1Feb 23, 2025
Similar projects
Plugin →Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
25MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
Emotecraft
Create your own emotes in Minecraft.
7.5MSueta
Simple Tpa
A simple tpa plugin which sends requests
5.4MSueta
Common Network
Forge and Fabric Unified Networking Solution
3.9MSueta
Set Home
A lightweight plugin for players to set their homes.
3.8MSueta