Skript

Skript Skript 2.9.3

  • Welcome to skUnity!

    Welcome to skUnity! This is a forum where members of the Skript community can communicate and interact. Skript Resource Creators can post their Resources for all to see and use.

    If you haven't done so already, feel free to join our official Discord server to expand your level of interaction with the comminuty!

    Now, what are you waiting for? Join the community now!

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.

You can view the release on GitHub here.

Happy Skripting!

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
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.
Code:
# 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:
Code:
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 enum lang entries would be printed much more often than they should be.
  • #5815 Improvements to comparators and converters.
  • #5878 Fixed some issues with the parsed as expression returning arrays or throwing exceptions.
  • #6224 Fixed the examples for applying potion effects.
  • #6229 Fixed an exception when trying to get the text input of an anvil.
  • #6231 Fixed an exception when trying to print a block state.
  • #6239 Fixed an exception when removing items from drops in 1.20.2+.
  • #6266 Fixed a bug that caused incorrect errors to be printed when comparing things.

Removals​

  • #5958 Removed the projectile bounce state condition and expression. These had no function.
Read more at https://github.com/SkriptLang/Skript/releases/tag/2.8.0

Bug Fixes​

  • #6123 Fixed a priority issue that could cause the "sets" expression to match over other, better-fitting possibilities.
  • #6171 Fixed an issue that caused accessing inventories in death events as well as checking the type of a spawner to be impossible.
  • #6205 Location comparisons have been improved to significantly reduce the possibility of false negative results.

API Changes​

  • #6201 This is a behavioral change for the asynchronous execution API that was added to SkriptEvent (SkriptEvent#canExecuteAsynchronously). The SkriptEvent#check method may now be called asynchronously if the SkriptEvent can execute asynchronously. While we will not typically include behavioral changes like this in patch releases, this change was to address major performance issues that could occur from locking threads.
Skript version 2.7.2 has been released on Nov 1st
Bug Fixes
  • #6038 Fixed the JavaDocs name and title elements
  • #6078 Updated documentation links to the new Minecraft wiki
  • #6080 Fixed issues with language nodes in command help
  • #6090 Fixed the fake player count syntax for Paper
  • #6103 Fixed UTF-8 encoding when building Skript
  • #6106 Fixed reloading a directory with the script file effect
  • #6117 Fixed an error when printing block inventories
  • #6121 Fixed an issue where Skript options would not work in functions in some cases
  • #6126 Fixed permission messages not showing for Skript commands.
  • #6128 Fixed issue when checking if Minecraft time is between two values that span across midnight.
  • #6132 Fixed floating point error that could occur when trying to loop with "x times".
Click here to view the full list of commits made since 2.7.2
For full information regarding this release please see https://github.com/SkriptLang/Skript/releases/tag/2.6.2