Skip to content

Releases: SkriptLang/Skript

Patch Release 2.8.6

01 Jun 19:45
0355df1
Compare
Choose a tag to compare

Skript 2.8.6

Skript 2.8.6 is here. This release delivers more bug fixes with improved 1.20.5+ support. Additionally, a few quality-of-life features have made their way in. You can report any issues through our issue tracker.

Happy Skripting!

Changelog

Additions

  • #6652 Added missing item drop event values (dropped item and itemstack)
  • #6654 Improved the subcommand help colours in the /skript command.
  • #6655 Added support for modifying the exploded blocks in an explode event.

Bug Fixes

  • #6624 Fixed unexpected math parsing issues that could occur when using variables.
  • #6642 Fixed an error that could occur from Skript attempting to normalize zero vectors.
  • #6644 Fixed an issue with damaging and repairing items in slots.
  • #6646 Fixed an issue where obtaining the max durability of a custom item did not work.
  • #6679 Fixed an issue where beta releases were considered stable by the update checker.
  • #6683 Fixed an issue where syntaxes could modify the stored values of literals.
  • #6716 Fixed numerous particle issues that occurred when using Minecraft 1.20.5+.
  • #6724 Fixed an issue where forcing an entity to at a vector failed.
  • #6742 Fixed an issue with obtaining an entity's target that could occur when no blocks were within 100 meters.
  • #6746 Fixed an issue where dropped items could not be spawned properly.
  • #6747 Fixed an issue where obtaining the location of an inventory holder did not work.
  • #6752 Fixed an issue where spawning specific fish types (other than tropical fish) did not work.

API Updates / For Addon Developers

  • #6624 Expressions can now declare multiple potential return types. This allows for providing more context regarding the return type of an expression (for example, Entity and Block compared to their shared supertype Object).
  • #6684 Our code standards for the project have been updated. Please review the linked PR for an overview of the changes.
  • #6700 The manner in which failed JUnit tests are displayed has been improved.

Click here to view the full list of commits made since 2.8.5

Notices

Java 11

From Skript 2.9.0 onwards, we will be requiring a minimum Java version of 11 to run.

Help Us Test

We have an official Discord community for beta testing Skript's new features and releases.

Thank You

Special thanks to the contributors whose work was included in this version:

As always, if you encounter any issues or have some minor suggestions, please report them at https://github.com/SkriptLang/Skript/issues.
If you have any bigger ideas or input for the future of Skript, you can share those too at https://github.com/SkriptLang/Skript/discussions.

Beta Release 2.9.0-beta1

09 May 11:38
389dbf9
Compare
Choose a tag to compare
Pre-release

Skript 2.9.0 Beta 1

Skript 2.9.0 Beta 1 is here, ready for testing! This beta contains many new features, major changes, and bug fixes to improve the Skript experience, but we need to be sure they all work properly!

Below, you can familiarize yourself with the changes. As always, report any issues to our issues page! You can also use the #2-9-0-beta1 channel in the SkriptLang Testing Guild to talk about this beta.

⚠ BETA Release Warning

This is a BETA release, which means it is not yet meant for production servers. It may contain bugs or unexpected behaviors in its current state.
We recommend you extensively test this release on a local server before taking the risk of using it on a production server (if you truly wish to).
We do have many tests in place to ensure the integrity of Skript remains stable to some degree.

Happy Skripting!

Major Changes

  • Skript can now listen to events cancelled by other plugins! Your current scripts will behave the same as they always have, but there's now the option to listen to cancelled, uncancelled, or both kinds at once:
on break of stone:
    # Normal behavior, only listens to uncancelled break events.

on uncancelled break of stone:
    # Same as `on break of stone`, only uncancelled.
    
on cancelled break of stone:
    # Will only listen to cancelled events. For example, 
    # when Worldguard prevents a block break in a protected region.

on any break of stone:
    # Will listen to both cancelled and uncancelled events.
    # Finally, `event is cancelled` will be useful!
    
on all break of stone:
    # Same as `on any break of stone`.
  • Added a config option to allow case-insensitive commands, so your accidental capslock won't mess you up as much!
# default: only /test
# insensitive: /test, /TEST, /tEsT...
command /test:
    trigger:
        broadcast "test!"
  • Adds multi-line comments. Comments are opened and closed with three hashtags ### alone on a line.
    This is code
    ###
    |
    This is a comment
    |
    ###
    This is code (again)
    • Triple-hashtags in the middle of a line (e.g. hello ### there) will not start or end a comment.
  • Support for string 'concatenation'!
    • Text can be appended to other text (e.g. set {text} to "hello" + "there") with the addition operator.
    • The concat(...) function joins any text or objects together into a single text.

⚠ Breaking Changes

  • Timespans will now show the weeks and years instead of stopping at days:
broadcast "%{_timespan}%"
- "378 days and 20 minutes"
+ "1 year and 1 week and 6 days and 20 minutes"
  • The names of function parameters can no longer include the following characters: (){}\",.

Changelog

Additions

  • #4661 Adds syntax to get the second, minutes, hours, etc of a timespan.
  • #6105 Adds support for is connected pattern in the is online condition.
  • #6272 Adds Russian translation.
  • #6334 Adds support for character codepoints.
  • #6422 Adds a new use for the 'actual' target block option.
  • #6549 Adds a suppressible warning type for deprecated syntaxes.
  • #6558 Adds ### multi-line comment support.
  • #6576 Adds support string 'concatenation'.
  • #6639 Adds fire-resistant item property support.

Bug Fixes

  • #5422 Fixes bugs with the whitelist condition.
  • #6573 Fixes is connected pattern to support only Paper server.

Removals

  • #5606 Removes the warnings in the default variable test.
  • #6505 Removes Player name/UUID in variables warning.
  • #6673 Removes old deprecated vector arithmetic syntax in favour of regular arithmetic.

Changes

  • #4661 Adds timespan details expression & improvements.
  • #5676 Changes uuid in variable names default setting.
  • #6160 Adds the option of 'breakable' to the existing unbreakable syntaxes.
  • #6207 Adds ability to listen to cancelled events.
  • #6275 Ignore cleanup lang in git blame.
  • #6306 Adds a more flexible static parse method.
  • #6307 Throw an exception when attempting to register an abstract class.
  • #6349 Creates SectionExitHandler interface.
  • #6361 Make function parameter name rules stricter.
  • #6389 Allows element-wise comparision when checking if two "and" lists are equal.
  • #6393 Adds "invincible" as a synonym of "invulnerable" in related syntaxes.
  • #6456 Adds syntax for bells and bell events.
  • #6506 Adds pathfinding condition.
  • #6550 Enhances pattern keywords for faster parsing speed.
  • #6577 Adds a config option to allow case-insensitive Skript commands
  • #6627 Allows usage messages to contain expressions.

API Changes

  • #6291 Adds parse result structure for testing scripts.
  • #6531 Adds ClassInfoReference system.
  • #6551 Allows simple root-level structures.
  • #6556 Allows look-behind for headless effect sections during init.
  • #6568 Adds function contracts, allowing functions to modify their return type/plurality based on their arguments.

Click here to view the full list of commits made since 2.8.5

Notices

Thank You

Special thanks to the contributors whose work was included in this version:

As always, if you encounter any issues or have some minor suggestions, please report them at https://github.com/SkriptLang/Skript/issues.
If you have any bigger ideas or input for the future of Skript, you can share those too at https://github.com/SkriptLang/Skript/discussions.

Patch Release 2.8.5

01 May 20:56
b0052d2
Compare
Choose a tag to compare

Skript 2.8.5

Skript 2.8.5 is here with some more bug fixes and quality-of-life additions. There is also early support for 1.20.5/1.20.6 (Skript will run and some basic 1.20.5/1.20.6 features will work). Further support will come in the next releases. You can report any issues on our issue tracker.

Happy Skripting!

Changelog

Additions

  • #6134 Added mushroom cow alias for mooshroom.
  • #6163 Added tests for vector syntaxes.
  • #6525 Added support for specifying charged creeper rather than powered creeper.
  • #6526 Improved the documentation of the elements expression.
  • #6528 Improved the documentation of the leash effect.
  • #6628 The Skript artifact name now includes the plugin version (e.g. Skript-2.8.5.jar).
  • #6632 Added basic support for the new Armadillo and Bogged entities.

Bug Fixes

  • #6302 Removed the outdated Location to Chunk converter.
  • #6523 Fixed an issue that could occur when attempting to spawn non-spawnable entities.
  • #6561 Fix the move event's example.
  • #6566 Removed redundant [the] in the hotbar expression.
  • #6578 Fixed an error that could occur with the inventory click event.
  • #6579 Fixed function parsing issues with ambiguous parameter lists.
  • Fixes locations with no world causing an error:
    • #6590 Entity look at effect.
    • #6589 Blocks (below, above, etc.) expression.
    • #6588 Explode effect.
  • #6591 Fixed an incorrect internal check that determined whether an expression was nullable.
  • #6594/#6604 Improved the efficiency of element input pattern checks.
  • #6595 Fixed incorrect coloring with some error messages.
  • #6600 Fixed an error that could occur when setting the value of a variable.
  • #6619 Fixed an issue that could occur when reloading a command on newer Paper versions.
  • #6617/#6630 Fixed multiple issues that could occur when using Skript on 1.20.5/1.20.6.

Click here to view the full list of commits made since 2.8.4

Notices

Java 11

From Skript 2.9.0 onwards, we will be requiring a minimum Java version of 11 to run.

Help Us Test

We have an official Discord community for beta testing Skript's new features and releases.

Thank You

Special thanks to the contributors whose work was included in this version:

As always, if you encounter any issues or have some minor suggestions, please report them at https://github.com/SkriptLang/Skript/issues.
If you have any bigger ideas or input for the future of Skript, you can share those too at https://github.com/SkriptLang/Skript/discussions.

Patch Release 2.8.4

01 Apr 11:19
4d40944
Compare
Choose a tag to compare

Skript 2.8.4

Skript 2.8.4 is here and it brings with it many bug fixes. You can report any issues on our issue tracker.

Happy Skripting!

Changelog

Bug Fixes

  • #6413 Adds missing attributes for MC 1.20.5
  • #6473 Fixes an issue where spawning a falling block would load the chunk at 0,0.
  • #6475 Fixes issue when spawning an entity at a location with no world.
  • #6484 Fixes error when trying to spawn en entity from a disabled datapack.
  • #6495 Fixes strings in lists not getting sorted properly.
  • #6497 Adds error message to catch null return types.
  • #6502 Fixes error when using invalid amounts of random characters.
  • #6510 Fixes Anvil Text examples, updates Location function examples.
  • #6512 Fixes unparsed literal error with the random expression.

Click here to view the full list of commits made since 2.8.3

Notices

Help Us Test

We have an official Discord community for beta testing Skript's new features and releases.

Thank You

Special thanks to the contributors whose work was included in this version:

As always, if you encounter any issues or have some minor suggestions, please report them at https://github.com/SkriptLang/Skript/issues.
If you have any bigger ideas or input for the future of Skript, you can share those too at https://github.com/SkriptLang/Skript/discussions.

Patch Release 2.8.3

01 Mar 21:45
1132757
Compare
Choose a tag to compare

Skript 2.8.3

A new month means a new patch! Skript 2.8.3 is here and it brings with it many bug fixes. You can report any issues on our issue tracker.

Happy Skripting!

Notices

If, and only if, you have the case-insensitive-variables config option set to false, you may experience slight changes to code behavior in functions. Previously, function parameters did not respect this option. This means that if you relied the bug that made the following code work (despite your config option set to false), your code will no longer work in this update.

function test(TEST: text):
    broadcast {_test} # only {_TEST} is set now, not {_test}

Changelog

Bug Fixes

  • #6233 Fixed an issue where event values for the inventory item move event were mistakenly removed.
  • #6309 Fixed an issue that caused some click events to fire multiple times for a single event.
  • #6192 Fixed an issue where using the groups expression with LuckPerms would cause an exception.
  • #6328 Fixed an issue where multiplying or adding timespans could overflow into negative values.
  • #6387 Fixed an exception when trying to get the components of a non-vector.
  • #6388 Fixed function parameters not respecting the case-insensitive-variables config option.
  • #6391 Fixed plain always getting the same item for aliases representing multiple items.
  • #6392 Fixed bucket events returning the wrong event-block.
  • #6463 Fixed the at time event failing to property trigger when a world's time was changed.
  • #6455 Fixed a parser issue that caused parsing to fail for some syntax when special characters were used.

Click here to view the full list of commits made since 2.8.2

Notices

Help Us Test

We have an official Discord community for beta testing Skript's new features and releases.

Thank You

Special thanks to the contributors whose work was included in this version:

As always, if you encounter any issues or have some minor suggestions, please report them at https://github.com/SkriptLang/Skript/issues.
If you have any bigger ideas or input for the future of Skript, you can share those too at https://github.com/SkriptLang/Skript/discussions.

Emergency Patch Release 2.8.2

03 Feb 17:59
0bfec0b
Compare
Choose a tag to compare

Skript 2.8.2

We are releasing Skript 2.8.2 to patch a critical issue that prevented the plugin from loading on Spigot versions older than 1.18. You can report any issues on our issue tracker.

Happy Skripting!

Changelog

Bug Fixes

  • #6399 Fixed an issue that prevented Skript from loading on Spigot versions older than 1.18.

Click here to view the full list of commits made since 2.8.1

Notices

Help Us Test

We have an official Discord community for beta testing Skript's new features and releases.

Thank You

Special thanks to the contributors whose work was included in this version:

As always, if you encounter any issues or have some minor suggestions, please report them at https://github.com/SkriptLang/Skript/issues.
If you have any bigger ideas or input for the future of Skript, you can share those too at https://github.com/SkriptLang/Skript/discussions.

Patch Release 2.8.1

01 Feb 23:40
909a14d
Compare
Choose a tag to compare

Skript 2.8.1

Skript 2.8.1 is here to resolve some of the most notable issues reported with 2.8.0. We will continue to assess stability and make fixes as necessary. As always, you can report any issues on our issue tracker.

Happy Skripting!

Changelog

Additions

  • #6367 Added support for experimental entities from 1.20.3, breeze and wind charge.

Tweaks

  • #6357 armour is now valid for the player armor change event.

Bug Fixes

  • #6352 Fixed a mapping issue that could cause an error on shutdown.
  • #6357 Fixed an issue that caused armor of %entities% to be considered a single value.
  • #6358 Fixed an issue that allowed invalid function definitions to parse successfully.
  • #6360 Fixed parsing issues that caused valid code like loop-value - 1 to error. Additionally, many improvements have been made to the arithmetic expression to greatly improve parsing and general stability.
  • #6374 Fixed an issue that caused the scripts expression to return absolute paths for enabled scripts.
  • #6375 Fixed an error that could occur when Skript attempted to interpret an unknown enumerator as a string.
  • #6378 Fixed an invalid documentation link to the text tutorial.
  • #6383 Fixed a syntax conflict that prevented the usage of the vector from coordinates expression.

Click here to view the full list of commits made since 2.8.0

Notices

Help Us Test

We have an official Discord community for beta testing Skript's new features and releases.

Thank You

Special thanks to the contributors whose work was included in this version:

As always, if you encounter any issues or have some minor suggestions, please report them at https://github.com/SkriptLang/Skript/issues.
If you have any bigger ideas or input for the future of Skript, you can share those too at https://github.com/SkriptLang/Skript/discussions.

Feature Release 2.8.0

16 Jan 00:05
b9f89c1
Compare
Choose a tag to compare

Skript 2.8.0

Skript 2.8.0 is here for everyone to enjoy! This release contains many new features and bug fixes to improve the Skript experience.

Below, you can familiarize yourself with the changes. As always, report any issues to our issues page! Per our new release model, we plan to release 2.8.1 on February 1st to continue addressing bugs. In the event of any critical issues, an emergency patch release may come sooner.

Happy Skripting!

⚠ Breaking Changes

  • Using players in variable names will soon change from defaulting to names to defaulting to UUIDs. Warnings have been added to help smooth out this transition. See #6270 for more information.
  • Removed Projectile Bounce State condition and expression. These haven't done anything for years.
  • The target entity of player expression has been improved and now uses raytracing to find the player's target. This should cut down on false positives significantly, but the change in behavior may cause issues for some users who relied on its quirks.
  • Parsing players from player names is now a bit more intuitive. Previously, parsing "xyz" as a player would return the first online player to contain "xyz" somewhere in their name. Now, it only returns players that start with "xyz". See #5875 for more.
  • Major changes have been made to the on grow event. The grow event now has many more options to specify how you want it to listen. These changes mean that code that uses on grow of x may fire twice as often as expected.
# x -> something
on grow[th] from X

# something -> x
on grow[th] into X

# X -> Y
on grow[th] from X [in]to Y

# x is involved in some way
on grow[th] of X
  • The expression durability of %item% now actually returns the durability (a pick with durability 103/160, for example, returns 103) instead of the prior behavior, where it would act like damage of %item% (returning 57 for 103/160).
  • When there are multiple valid event-values for a default expression, Skript will now error and ask you to state which one you want instead of silently picking one. See the following example:
on right click on entity:
    send "test" 
    # This will now error, because Skript doesn't know whether to 
    # send it to the clicked entity or the player doing the clicking. 
  • Arithmetic evaluation will now return <none> for a whole chain if one of the operations is illegal. Previously, adding 1 + "hello" would treat "hello" as 0 and just return 1. This now returns <none>. However, the behavior of adding things to unset values hasn't changed. 1 + {_none} still returns 1.

Changelog

Additions

  • #4198 Added syntax for interacting with item cooldowns:
    • a condition that checks whether a player has a cooldown for an item
    • an expression to get and change the cooldown of an item for a player
  • #4593 Added raw index of slot expression.
  • #4595 Added loop-(counter|iteration)[-%number%] for both normal and while loop and improved performance for loop-value.
  • #4614 Added the ability to only get certain item types when using the items in inventory expression.
  • #4617 Added anvil repair cost expression.
  • #5098 Added an expression to repeat a given string multiple times.
  • #5271 Added time states for the tool change event's event-slot and for the hotbar slot expression. Also allows the ommission of the player in hotbar slot when using it in events that have an event-player.
  • #5356 Added an expression for getting and changing the portal cooldown of an entity.
  • #5357 Added toggle pickup for items on living entities.
  • #5359 Added is jumping for living entities condition. (Paper 1.15+)
  • #5365 Added syntax for interacting with an entity's active item:
    • a condition that checks whether an entity's hand(s) is raised
    • an expression to get an entity's active item (e.g. a bow)
    • an expression to get the time they've spent using it or how long they need to keep using it to complete the action (e.g. eating)
    • an expression to get the maximum time an item can be used for
    • an expression to get the arrow selected in the ready arrow event
    • an effect to cancel the usage of an item
    • events for when a player readies an arrow and when a player stops using an item.
  • #5366 Added support for getting and modifying the inventories of items, like shulker boxes.
  • #5367 Added syntax to check and set whether a sign has glowing text.
  • #5456 Added the ability to get all armor pieces of an entity.
  • #5460 Added an event for when a player selects a stonecutting recipe.
  • #5462 Added InventoryMoveItemEvent.
  • #5482 Added an expression to get the vector projection of two vectors.
  • #5494 Added a condition to check if an entity is left or right handed, and adds an effect to change their handedness.
  • #5502 Added syntax to create vectors from directions.
  • #5562 Added a condition to check if an entity has unbstructed line of sight to another entity or location.
  • #5571 Added a condition to check if an entity is shorn or not. Also expands the entities that can be shorn with the shear effect.
  • #5573 Added a function to clamp a value between two others.
  • #5588 Added player arrow pickup event.
  • #5589 Added hit block of projectile.
  • #5618 Added is climbing for living entities condition.
  • #5636 Added Free/Max/Total Server Memory expression.
  • #5662 Added expression to return the loaded chunks of worlds.
  • #5678 Added item damage to the damage expression.
  • #5680 Added inventory close reason in inventory close event.
  • #5683 Added event-item and event-slot to the resurrect event. If no totem is present, these values are none.
  • #5763 Added Paper 1.16.5+ quit reason for finding out why a player disconnected.
  • #5800 Added an event for when an entity transforms into another entity, like a zombie villager being cured or a slime splitting into smaller slimes.
  • #5811 Added the ability to execute a command as a bungeecord command like /alert.
  • #5814 Added returns aliases for function definition.
  • #5845 Added player and offlineplayer functions.
  • #5867 Added expressions to get all characters between two characters, or an amount of random characters within a range.
  • #5894 Added support for keybind components in formatted messages (<keybind:value>).
  • #5898 Added apply bone meal effect.
  • #5948 Added an event for when players are sent the server's list of commands, as well as an expression to modify them.
  • #5949 Added an expression to get a percentage of one or more numbers.
  • #5961 Added the ability to listen for entities rotating, or rotating and moving, in the on move event.
  • #6101 Adds an effect to copy the contents and indices of one variable into others.
  • #6146 Multiple # signs at the beginning of a line now start a comment.
  • #6162 Added a function isNaN(number) to check if a number is NaN.
  • #6180 The syntax to get a location from a vector and a world has been re-added.
  • #6198 Added Turkish translation.

Bug Fixes

  • #5308 Fixed cursor slot not always returning the correct item in inventory click events.
  • #5406 Fixed some order of operation issues with the difference expression.
  • #5744 Fixed an issue where the error for missing en...
Read more

Pre-Release 2.8.0-pre2

10 Jan 23:22
67c4e0e
Compare
Choose a tag to compare
Pre-release

Skript 2.8.0-pre2

Skript 2.8.0 Pre-Release 2 is here to fix some of the issues found on the first pre-release. As a pre-release, be warned that there may be bugs! We do not recommend running this version on your production servers. Per our new release model, we plan to release Skript 2.8.0 on January 15th.

Below, you can familiarize yourself with the changes. As always, report any issues to our issues page. We will continue to work on addressing any major issues before the full release.

Happy Skripting!

Changelog

The changelog below highlights all changes since the first pre-release. For the complete 2.8.0 changelog, please review the first pre-release's changelog.

Bug Fixes

  • #6286 Fixed command parsing errors that could occur for valid commands.
  • #6287 Fixed warnings about the upcoming player UUID variable changes being printed for incorrect lines.
  • #6292 Fixed an issue that caused custom event priorities to pollute the parsing of event declarations that did not specify a priority.
  • #6294 Fixed an error that would occur when trying to obtain the "shoes" of an entity.
  • #6298 Fixed the outdated website link in Skript's plugin description.
  • #6312 Fixed a few issues with the updater system that caused pre-releases to be shown to users in the stable release channel. This will only apply to future releases, and users running a 2.7.x version will continue to see prompts to update to a potentially unstable build.
  • #6317 Fixed "parsed as a player" not working for valid inputs.

Click here to view the full list of commits made since 2.8.0-pre1

Changes

  • ⚠️ #6310 The newly re-added location from vector expression now requires "to location" in the syntax.

The syntax is now %vector% to location in %world%.

Notices

Help Us Test

We have an official Discord community for beta testing Skript's new features and releases. We're currently testing a new version of skript-reflect and we would love some more testers!

Thank You

Special thanks to the contributors whose work was included in this version:

As always, if you encounter any issues or have some minor suggestions, please report them at https://github.com/SkriptLang/Skript/issues.
If you have any bigger ideas or input for the future of Skript, you can share those too at https://github.com/SkriptLang/Skript/discussions.

Pre-Release 2.8.0-pre1

01 Jan 23:18
38cc0fe
Compare
Choose a tag to compare
Pre-release

Skript 2.8.0-pre1

Skript 2.8.0 Pre-Release 1 is here for everyone to begin previewing! This release contains all major features for Skript 2.8.0. As a pre-release, be warned that there may be bugs! We do not recommend running this version on your production servers. We will release additional pre-releases as necessary. Per our new release model, we plan to release Skript 2.8.0 on January 15th.

Below, you can familiarize yourself with the changes. As always, report any issues to our issues page! We will be working over the next two weeks to address any issues that are found.

Happy New Year and Happy Skripting!

⚠ Breaking Changes

  • Using players in variable names will soon change from defaulting to names to defaulting to UUIDs. Warnings have been added to help smooth out this transition. See #6270 for more information.
  • Removed Projectile Bounce State condition and expression. These haven't done anything for years.
  • The target entity of player expression has been improved and now uses raytracing to find the player's target. This should cut down on false positives significantly, but the change in behavior may cause issues for some users who relied on its quirks.
  • Parsing players from player names is now a bit more intuitive. Previously, parsing "xyz" as a player would return the first online player to contain "xyz" somewhere in their name. Now, it only returns players that start with "xyz". See #5875 for more.
  • Major changes have been made to the on grow event. The grow event now has many more options to specify how you want it to listen. These changes mean that code that uses on grow of x may fire twice as often as expected.
# x -> something
on grow[th] from X

# something -> x
on grow[th] into X

# X -> Y
on grow[th] from X [in]to Y

# x is involved in some way
on grow[th] of X
  • The expression durability of %item% now actually returns the durability (a pick with durability 103/160, for example, returns 103) instead of the prior behavior, where it would act like damage of %item% (returning 57 for 103/160).
  • When there are multiple valid event-values for a default expression, Skript will now error and ask you to state which one you want instead of silently picking one. See the following example:
on right click on entity:
    send "test" 
    # This will now error, because Skript doesn't know whether to 
    # send it to the clicked entity or the player doing the clicking. 
  • Arithmetic evaluation will now return <none> for a whole chain if one of the operations is illegal. Previously, adding 1 + "hello" would treat "hello" as 0 and just return 1. This now returns <none>. However, the behavior of adding things to unset values hasn't changed. 1 + {_none} still returns 1.

Changelog

Additions

  • #4198 Added syntax for interacting with item cooldowns:
    • a condition that checks whether a player has a cooldown for an item
    • an expression to get and change the cooldown of an item for a player
  • #4593 Added raw index of slot expression.
  • #4595 Added loop-(counter|iteration)[-%number%] for both normal and while loop and improved performance for loop-value.
  • #4614 Added the ability to only get certain item types when using the items in inventory expression.
  • #4617 Added anvil repair cost expression.
  • #5098 Added an expression to repeat a given string multiple times.
  • #5271 Added time states for the tool change event's event-slot and for the hotbar slot expression. Also allows the ommission of the player in hotbar slot when using it in events that have an event-player.
  • #5356 Added an expression for getting and changing the portal cooldown of an entity.
  • #5357 Added toggle pickup for items on living entities.
  • #5359 Added is jumping for living entities condition. (Paper 1.15+)
  • #5365 Added syntax for interacting with an entity's active item:
    • a condition that checks whether an entity's hand(s) is raised
    • an expression to get an entity's active item (e.g. a bow)
    • an expression to get the time they've spent using it or how long they need to keep using it to complete the action (e.g. eating)
    • an expression to get the maximum time an item can be used for
    • an expression to get the arrow selected in the ready arrow event
    • an effect to cancel the usage of an item
    • events for when a player readies an arrow and when a player stops using an item.
  • #5366 Added support for getting and modifying the inventories of items, like shulker boxes.
  • #5367 Added syntax to check and set whether a sign has glowing text.
  • #5456 Added the ability to get all armor pieces of an entity.
  • #5460 Added an event for when a player selects a stonecutting recipe.
  • #5462 Added InventoryMoveItemEvent.
  • #5482 Added an expression to get the vector projection of two vectors.
  • #5494 Added a condition to check if an entity is left or right handed, and adds an effect to change their handedness.
  • #5502 Added syntax to create vectors from directions.
  • #5562 Added a condition to check if an entity has unbstructed line of sight to another entity or location.
  • #5571 Added a condition to check if an entity is shorn or not. Also expands the entities that can be shorn with the shear effect.
  • #5573 Added a function to clamp a value between two others.
  • #5588 Added player arrow pickup event.
  • #5589 Added hit block of projectile.
  • #5618 Added is climbing for living entities condition.
  • #5633 Added an event for when endermen attempt to escape, along with their reason for doing so.
  • #5636 Added Free/Max/Total Server Memory expression.
  • #5662 Added expression to return the loaded chunks of worlds.
  • #5678 Added item damage to the damage expression.
  • #5680 Added inventory close reason in inventory close event.
  • #5683 Added event-item and event-slot to the resurrect event. If no totem is present, these values are none.
  • #5763 Added Paper 1.16.5+ quit reason for finding out why a player disconnected.
  • #5800 Added an event for when an entity transforms into another entity, like a zombie villager being cured or a slime splitting into smaller slimes.
  • #5811 Added the ability to execute a command as a bungeecord command like /alert.
  • #5814 Added returns aliases for function definition.
  • #5845 Added player and offlineplayer functions.
  • #5867 Added expressions to get all characters between two characters, or an amount of random characters within a range.
  • #5894 Added support for keybind components in formatted messages (<keybind:value>).
  • #5898 Added apply bone meal effect.
  • #5948 Added an event for when players are sent the server's list of commands, as well as an expression to modify them.
  • #5949 Added an expression to get a percentage of one or more numbers.
  • #5961 Added the ability to listen for entities rotating, or rotating and moving, in the on move event.
  • #6101 Adds an effect to copy the contents and indices of one variable into others.
  • #6146 Multiple # signs at the beginning of a line now start a comment.
  • #6162 Added a function isNaN(number) to check if a number is NaN.
  • #6180 The syntax to get a location from a vector and a world has been re-added.
  • #6198 Added Turkish translation.

Bug Fixes

Read more