Skip to content

Releases: SkriptLang/Skript

Patch Release 2.9.2

01 Sep 18:50
474d6f3
Compare
Choose a tag to compare

Skript 2.9.2

Skript 2.9.2 is here with more bug fixes and a few minor additions and tweaks. As always, you can report any issues on our issue tracker.

Happy Skripting!

Changelog

Additions

  • #6942 Added Dutch language support.
  • #7008 Added support trial spawners in the spawner type syntax.

Tweaks

  • #6984 Enhanced and expanded the BStats charts.
  • #7023 Improved the performance of the 'book authors' expression.

Bug Fixes

  • #5073 Fixed an issue where items did not work with the 'is of type' condition.
  • #6936 Fixed an issue with unreliable parsing of quotes in command arguments.
  • #6942 Fixed a mistake in the German language support.
  • #6982 Fixed some cases of incorrect word pluralization.
  • #6983 Fixed a faulty error message in the 'return' effect.
  • #6988 Fixed input validation errors that could occur with the 'hover list' expression on newer versions.
  • #6996 Fixed a concurrency issue with default variables.
  • #7018 Fixed the localization of the 'horse jump strength' attribute.
  • #7016/#7022 Fixed additional version support issues with the 'play sound' effect.
  • #7025 Fixed an issue with the 'vehicle' expression that could prevent Skript from loading on newer versions.

Click here to view the full list of commits made since 2.9.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.9.1

01 Aug 18:32
72b17b2
Compare
Choose a tag to compare

Skript 2.9.1

Skript 2.9.1 is here to resolve some of the most notable issues reported with 2.9.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

  • #6906 Added some additional spawn reasons from 1.21.
  • #6919 Added 'pufferfish' as an alias for the 'puffer fish' entity data.

Tweaks

  • #6854 Updated the display name of potion effect types from 'potion' to 'potion effect type'.

Bug Fixes

  • #6897 Fixed an issue where sorting the indices of a list with children caused an error.
  • #6909 Fixed an issue with Timespan#getAs(), which was breaking timespan arithmetic.
  • #6910 Fixed an issue where the 'play sound' effect would cause runtime errors on some server versions.
  • #6926 Fixed an issue where Skript could fail to start on some 1.21 server versions.
  • #6932 Fixed an issue with the SimplifiedChinese translation that caused a startup error.
  • #6947 Fixed an issue where the 'remaining air' expression would cause runtime errors.
  • #6948 Fixed an issue where using some events would cause parsetime errors.
  • #6949 Fixed an issue where reloading the aliases would not automatically regenerate missing aliases.

Click here to view the full list of commits made since 2.9.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.9.0

15 Jul 20:43
0e10975
Compare
Choose a tag to compare

Skript 2.9.0

Skript 2.9.0 is here with dozens of new features, quality-of-life improvements, and bug fixes. Notably, this release includes support for Minecraft 1.21.

We especially want to thank the recent influx of new contributors, many of whom are included in this update. Every contributor means a little less work for the team and a little more progress for Skript, so please, if you want a feature in Skript, go ahead and try to make a pull request! New contributors are very welcome! You can review our contributing guide by clicking here.

Below, you can familiarize yourself with the changes. Additionally, by clicking here, you can view the list of new syntax on our documentation site. As always, report any issues to our issues page!

Per our new release model, we plan to release 2.9.1 on August 1st to address any immediate issues that are spotted with this release. Should it be necessary, an emergency patch release may come before then.

Happy Skripting!

Major Changes

Important

Skript now requires Java 11 to run. While most users are running Java 11 or newer, some may be required to update for this version. Java 11 is supported on all versions Skript supports.

  • 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'.
  • Alternatively, you can set the new listen to cancelled events by default config option to true to allow events to listen to both uncancelled and cancelled events by default:
on break of stone:
    # Now listens to both cancelled and uncancelled events
    # if the config option is set to true.
  • 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.
  • We have exposed the load default aliases option in config.sk, which allows you to tell Skript to only load aliases in the plugins/Skript/aliases folder. You can provide as many or as few (even none, if you want!) aliases as you like. We will provide the default folder in the GitHub release for your convenience.

⚠ Breaking Changes

  • # characters in strings no longer need to be doubled! Skript can now tell that you are writing a string and will not start a comment in the middle of it. This change means all your ## will now appear as two # instead of one! This won't break hex colours, those support either one or two #'s, but it may break other text!
# before:
"<##aabbcc>I'm ##1, baby!" -> "I'm #1, baby!"

# after
"<##aabbcc>I'm ##1, baby!" -> "I'm ##1, baby!"
"<#aabbcc>I'm #1, baby!" -> "I'm #1, baby!"
  • 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: (){}\",.
  • newl and nline are no longer valid syntaxes for the newline expression, but new line is now valid.
  • As mentioned above, # characters in strings no longer need to be doubled. This will mean existing doubled #s will appear as two, rather than one.
  • The option to use non-air instead of solid in the highest solid block expression has been removed.
  • Using on teleport will now trigger for non-player entities. To detect only player teleports, use on player teleport.

Changelog

Additions

  • #4661 Added support for using weeks, months, and years in timespans. They are treated as 7 days, 30 days, and 365 days respectively. Additionally, an expression to obtain a timespan as a specific unit of time (e.g. as hours, days, etc.).
  • #5284 Added a lowest solid block expression for obtaining the lowest solid block at a location.
  • #5298 Added the ability to directly set entity and player pitch/yaw.
  • #5422 Added support for enforcing the whitelist and working with offline players for it.
  • #5691 Added documentation details for whether an event can be cancelled.
  • #5698 Added support for obtaining the player represented by a player head block.
  • #6105 Added an expression to determine whether a player is connected rather than online. Specifically, is online may continue to return true for players that have disconnected and then reconnected.
  • #6131 Added the ability to play sounds from entities and specify a sound seed (instead of it being randomized each time).
  • #6160 Added the option of using breakable with the existing unbreakable syntaxes.
  • #6164 Added more internal tests for item-related syntaxes.
  • #6207 Added the ability to listen to cancelled events.
  • #6272 Added Russian translations.
  • #6334 Added an expression for obtaining the codepoint of a character and the character reresented by a codepoint.
  • #6339 Added support for filtering a heal event by entity types and by heal reason.
  • #6393 Added invincible as a synonym of invulnerable in related syntaxes.
  • #6422 Added a distinction when using the actual part of the target block expression. When actual is used, the hitboxes of blocks will be considered.
  • #6456 Added syntax for bells and bell events.
  • #6506 Added a condition for whether an entity is pathfinding.
  • #6530 Expanded the teleport event to trigger when non-player entities are teleported. NOTE: This means on teleport will now trigger for entities other than players. Use on player teleport for detecting only player teleports.
  • #6549 Added support for suppressing deprecated syntax warnings.
  • #6558 Added multi-line comments using ### (see above).
  • #6576 Added support for combining strings using the addition (+) symbol.
  • #6577 Added a configuration option to allow case-insensitive Skript commands.
  • #6596 Added an event for when endermen become enraged.
  • #6627 Added the ability to use expressions in the command usage entry.
  • #6639 Added a condition, effect, and expression for managing the fire resistance property of an item.
  • #6659 Added support for logging messages with warning and error severities.
  • #6680 Added a configuration option to allow all events by default to trigger even when the event is already cancelled.
  • #6712 Added an effect to show/hide item tooltips and a condition to check whether an item's tooltip is visible.
  • #6737 Adds an effect to sort a list by an arbitrary mapping expression. (ex: sort {_list-of-players::*} by {hide-and-seek::%input%::score})
  • #6748 Added a whether <condition> expression to get the boolean (true/false) representation of a condition (example: send "Flying: %whether player is flying%").
  • #6749 Added support for dividing timespans by timespans to get numbers. (`1 mi...
Read more

Pre-Release 2.9.0-pre2

12 Jul 18:40
c8e5457
Compare
Choose a tag to compare
Pre-release

Skript 2.9.0-pre2

Skript 2.9.0 Pre-Release 2 is here to fix some issues that came with the first pre-release. As with any other pre-release, be warned that there may be bugs! We do not recommend running this version on your production servers. This release contains many new features and bug fixes, including support for Minecraft 1.21.

We especially want to thank the recent influx of new contributors, many of whom are included in this update. Every contributor means a little less work for the team and a little more progress for Skript, so please, if you want a feature in Skript, go ahead and try to make a pull request! New contributors are very welcome! You can review our contributing guide by clicking here.

Below, you can familiarize yourself with the changes. Additionally, by clicking here, you can view the list of new syntax on our documentation site. As always, report any issues to our issues page!

Per our new release model, we plan to release 2.9.0 on July 15th. We may release additional pre-releases before then should the need arise.

Happy Skripting!

Major Changes

Important

Skript now requires Java 11 to run. While most users are running Java 11 or newer, some may be required to update for this version. Java 11 is supported on all versions Skript supports.

  • 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`.
  • Alternatively, you can set the new listen to cancelled events by default config option to true to allow events to listen to both uncancelled and cancelled events by default:
on break of stone:
    # Now listens to both cancelled and uncancelled events
    # if the config option is set to true.
  • 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.
  • We have exposed the load default aliases option in config.sk, which allows you to tell Skript to only load aliases in the plugins/Skript/aliases folder. You can provide as many or as few (even none, if you want!) aliases as you like. We will provide the default folder in the GitHub release for your convenience.

⚠ Breaking Changes

  • # characters in strings no longer need to be doubled! Skript can now tell that you are writing a string and will not start a comment in the middle of it. This change means all your ## will now appear as two # instead of one! This won't break hex colours, those support either one or two #'s, but it may break other text!
# before:
"<##aabbcc>I'm ##1, baby!" -> "I'm #1, baby!"

# after
"<##aabbcc>I'm ##1, baby!" -> "I'm ##1, baby!"
"<#aabbcc>I'm #1, baby!" -> "I'm #1, baby!"
  • 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: (){}\",.
  • newl and nline are no longer valid syntaxes for the newline expression, but new line is now valid.
  • As mentioned above, # characters in strings no longer need to be doubled. This will mean existing doubled #s will appear as two, rather than one.
  • The option to use non-air instead of solid in the highest solid block expression has been removed.
  • Using on teleport will now trigger for non-player entities. To detect only player teleports, use on player teleport.

Changelog

Pre-Release 2 Changes

  • #6846 Fixed an issue where obtaining the slot index of the player's tool did not work.
  • #6865 Fixed an issue with saving certain types of data in global variables.
  • #6870 Fixed an error that could occur when attempting to set the damage of an item to a negative number.
  • #6871 Fixed an issue where the text forms of enchantments displayed incorrectly.
  • #6874 Fixed an error that would occur when attempting to use several inventory-related expressions on versions older than 1.21.
  • #6876 Fixed an issue with plain item comparisons not working as expected.
  • #6886 Fixed several item-related issues that could occur due to 1.21 changes.
  • #6888 Fixed an issue where some internal item comparisons unexpectedly failed, causing issues with syntax such as the equip effect.

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

Additions

  • #4661 Added support for using weeks, months, and years in timespans. They are treated as 7 days, 30 days, and 365 days respectively. Additionally, an expression to obtain a timespan as a specific unit of time (e.g. as hours, days, etc.).
  • #5284 Added a lowest solid block expression for obtaining the lowest solid block at a location.
  • #5691 Added documentation details for whether an event can be cancelled.
  • #5698 Added support for obtaining the player represented by a player head block.
  • #6105 Added an expression to determine whether a player is connected rather than online. Specifically, is online may continue to return true for players that have disconnected and then reconnected.
  • #6164 Added more internal tests for item-related syntaxes.
  • #6272 Added Russian translations.
  • #6334 Added an expression for obtaining the codepoint of a character and the character reresented by a codepoint.
  • #6422 Added a distinction when using the actual part of the target block expression. When actual is used, the hitboxes of blocks will be considered.
  • #6530 Expanded the teleport event to trigger when non-player entities are teleported. NOTE: This means on teleport will now trigger for entities other than players. Use on player teleport for detecting only player teleports.
  • #6549 Added support for suppressing deprecated syntax warnings.
  • #6558 Added multi-line comments using ###.
This is code
###
|
This is a comment
|
###
This is code (again)
  • #6576 Added support for combining strings using the addition (+) symbol.
  • #6596 Added an event for when endermen become enraged.
  • #6639 Added a condition, effect, and expression for managing the fire resistance property of an item.
  • #6680 Added a configuration option to allow all events by default to trigger even when the event is already cancelled.
  • #6712 Added an effect to show/hide item tooltips and a condition to check whether an item's tooltip is visible.
  • #6748 Added a whether <condition> expression to get the boolean (true/false) representation of a condition (example: send "Flying: %whether player is flying%").
  • #6791 Added support for numerous 1.21 attributes.
  • #6687 Added support for using (not creating) custom enchantments and referencing enchantments by namespace/key.

Bug Fixes

Read more

Pre-Release 2.9.0-pre1

02 Jul 00:53
1ac7681
Compare
Choose a tag to compare
Pre-release

Skript 2.9.0-pre1

Skript 2.9.0 Pre-Release 1 is here for everyone to begin previewing! As a pre-release, be warned that there may be bugs! We do not recommend running this version on your production servers. This release contains many new features and bug fixes, including support for Minecraft 1.21.

We especially want to thank the recent influx of new contributors, many of whom are included in this update. Every contributor means a little less work for the team and a little more progress for Skript, so please, if you want a feature in Skript, go ahead and try to make a pull request! New contributors are very welcome! You can review our contributing guide by clicking here.

Below, you can familiarize yourself with the changes. Additionally, by clicking here, you can view the list of new syntax on our documentation site. As always, report any issues to our issues page!

Per our new release model, we plan to release 2.9.0 on July 15th. We may release additional pre-releases before then should the need arise.

Happy Skripting!

Major Changes

Important

Skript now requires Java 11 to run. While most users are running Java 11 or newer, some may be required to update for this version. Java 11 is supported on all versions Skript supports.

  • 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`.
  • Alternatively, you can set the new listen to cancelled events by default config option to true to allow events to listen to both uncancelled and cancelled events by default:
on break of stone:
    # Now listens to both cancelled and uncancelled events
    # if the config option is set to true.
  • 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.
  • We have exposed the load default aliases option in config.sk, which allows you to tell Skript to only load aliases in the plugins/Skript/aliases folder. You can provide as many or as few (even none, if you want!) aliases as you like. We will provide the default folder in the GitHub release for your convenience.

⚠ Breaking Changes

  • # characters in strings no longer need to be doubled! Skript can now tell that you are writing a string and will not start a comment in the middle of it. This change means all your ## will now appear as two # instead of one! This won't break hex colours, those support either one or two #'s, but it may break other text!
# before:
"<##aabbcc>I'm ##1, baby!" -> "I'm #1, baby!"

# after
"<##aabbcc>I'm ##1, baby!" -> "I'm ##1, baby!"
"<#aabbcc>I'm #1, baby!" -> "I'm #1, baby!"
  • 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: (){}\",.
  • newl and nline are no longer valid syntaxes for the newline expression, but new line is now valid.
  • As mentioned above, # characters in strings no longer need to be doubled. This will mean existing doubled #s will appear as two, rather than one.
  • The option to use non-air instead of solid in the highest solid block expression has been removed.
  • Using on teleport will now trigger for non-player entities. To detect only player teleports, use on player teleport.

Changelog

Additions

  • #4661 Adds syntax to get the second, minutes, hours, etc of a timespan.
  • #5284 Adds the lowest solid block expression.
  • #5691 Adds a cancellable field to the docs for events.
  • #5698 Adds support for obtaining the player a player head block represents.
  • #6105 Support is connected pattern in is online.
  • #6164 Adds many internal tests relating to items.
  • #6272 Adds Russian translation.
  • #6334 Add support for character codepoints.
  • #6422 Adds a new use for the 'actual' target block option.
  • #6530 Adds support for detecting when non-player entities are teleported.
  • #6549 Adds a suppressible warning type for deprecated syntaxes.
  • #6558 Adds ### multi-line comment support.
  • #6576 Support string 'concatenation'.
  • #6596 Adds the endermen enrage event.
  • #6639 Adds fire-resistant item property support.
  • #6680 Adds a config option to allow all events to listen for cancelled versions by default.
  • #6712 Adds an effect to show/hide item tooltips and a condition to check if a tooltip is visible.
  • #6748 Adds the whether <condition> expression to allow conditions to be used as boolean expressions. (set {_test} to whether player is flying)
  • #6791 Adds support for numerous 1.21 attributes.
  • #6687 Adds support for using custom enchantments and referencing enchantments by key in 1.21.

Bug Fixes

  • #5422 Fixes bugs with the whitelist condition.
  • #6573 Fixes is connected pattern to support only Paper server.
  • #6737 Adds an effect to sort a list by an arbitrary mapping expression. (ex: sort {_list-of-players::*} by {hide-and-seek::%input%::score})
  • #6797 Fixes issues with the last damage expression.
  • #6803 Fixes an issue where custom maximum durability did not work for items with a custom durability.
  • #6821 Fixes block datas not being cloned upon use.
  • #6823 Fixes inability to get the location of a double chest via the inventory.
  • #6832 Fixes a bug where potion types could not be compared.
  • #6836 Fixes an issue when trying to remove air from an empty slot.

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 default.
  • #5298 Adds the ability to directly set entity and player pitch/yaw.
  • #6131 Adds the ability to play sounds from entities, as well as specify a seed instead of the sound being random each time.
  • #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 sta...
Read more

Patch Release 2.8.7

15 Jun 19:10
7fc699e
Compare
Choose a tag to compare

Skript 2.8.7

We're releasing 2.8.7 to fix some important issues that made their way into 2.8.6. We expect this to be the final version for Skript 2.8. You can report any issues through our issue tracker.

Happy Skripting!

Changelog

Bug Fixes

  • #6757 Fixed an error that could occur when attempting to obtain the potion effects of a plain potion.
  • #6758 Fixed arithmetic-related errors on Java 8 and when performing Vector-Vector multiplication.
  • #6760 Fixed several particle definition conflicts that made it harder to use certain items and entity types with variables.
  • #6763 Fixed an issue where reloading scripts with commands could cause an exception on Paper 1.20.5+.
  • #6764 Fixed an issue where fireworks could not be spawned using the spawn effect/section.
  • #6777 Fixed an issue with the text representation of the case expression.

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

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.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.