Releases: SkriptLang/Skript
Patch Release 2.9.5
Skript 2.9.5
Skript 2.9.5 is here with a handful of new bug fixes. As always, you can report any issues on our issue tracker.
Happy Skripting!
Changelog
Tweaks
- #7232 Improved the documentation of the 'projectile hit' event to be up to date with the 'victim' syntax.
Bug Fixes
- #7062 Fixed an error that would occur when attempting to place blocks between two points above the world limit.
- #7120 Fixed an issue where various expressions (enchant effect, replace effect, vector expressions, etc.) would overwrite the indices of list variables used.
- #7152 Fixed an issue where player skull textures would not immediately load on Paper (loading is now forced).
- #7188 Fixed an issue where plural event values did not work with 'past' and 'future' time states.
- #7195 Fixed a few Turkish language mistakes.
- #7199 Fixed multiple issues with playing sounds on 1.21.3+.
- #7202 Fixed an error that could occur when using invalid regular expression patterns in the split expression.
- #7210 Fixed long overflow when performing arithmetic.
- #7230 Fixed an issue that could occur when trying to grow new tree types (e.g. pale oak).
API Additions
- #7120 Added a new 'Expression#changeInPlace()' method for changing the elements of an expression without changing the entire object. For example, this allows the values of a list variable to be updated while preserving the indices.
- #7207 Updated the 'Arithmetics#exactOperationExists' and 'Arithmetics#exactDifferenceExists' methods to be public. They act as a safe way to check arithmetic operation existence during the registration period.
Click here to view the full list of commits made since 2.9.4
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.
Beta Release 2.10.0-beta1
Skript 2.10.0 Beta 1
Skript 2.10.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-10-0-beta1 channel in the SkriptLang Testing Guild to talk about this beta.
Docs can be found here: https://docs.skriptlang.org/nightly/feature/2.10.0-beta/docs.html
Happy Skripting!
Major Changes
Important
Skript has dropped support for Minecraft versions below 1.19.4. This means 1.19.4, 1.20.6, and 1.21.X are the supported versions. Going forward, Skript will only support the latest 3 major Minecraft versions.
In addition, Skript now requires Java 17 to run. While most users are running Java 17 or newer, some may be required to update for this version.
- Display entities! Try spawning them, rotating them, translating them, and everything else!
- Animal husbandry syntaxes!
- Get various sounds of blocks, entities, and items, like the footsteps sound of a given item!
- Limit the number of variable backups created so you don't flood your hard drive!
- And much more!
⚠ Breaking Changes
- Out-of-range dates will now return
0 seconds
instead ofnone
in thetime since
expression:
if time since {_date} is less than 3 seconds:
# Previously, if {_date} was in the future, this would be false.
# Now, this is true, since `time since {_date}` evaluates to 0 seconds.
# These situations will not change:
# {_date} more than 3 seconds ago -> false
# {_date} between 0 and 3 seconds ago -> true
Changelog
Additions
- #5601 Adds syntax regarding display entities. Involves spawning, translating, scaling, rotating, and many other interations with displays.
- #6419 Adds the ability to set, add, or remove custom chat completions for players.
- #6532 Adds the entity potion effect event, triggered when an entity gains/loses an effect.
- #6768 Adds the piglin barter event (with barter input & output expressions).
- #6780 Adds a config option for all operators to see information when a script is reloaded.
- #6849 Adds a condition to check if an entity is saddled.
- #6850 Adds an effect to tame an entity and a condition to test if an entity is tamed.
- #6851 Adds a config option to limit the amount of variable backup files stored.
- #6859 Adds expression to get the command of a command block, as well as a condition and effect to check and set the conditionality of a command block.
- #6861 Adds an expression to get or modify the taming level of horses.
- #6898 Adds an effect to immediately detonate a creeper, tnt minecart, primed tnt, firework, or windcharge.
- #6912 Adds a section to filter lists, like the filter expression but with the ability to retain indices.
- #6960 Adds a warning for unreachable code (for example, code following a return effect in a function).
- #6970 Allows deleting/resetting the prefix/suffix of players.
- #6997 Add an explicit sort order to the sort effect.
- #7019 Adds an expression to get various sounds of entities, like their death sound, fall damage sound, or sound for eating a certain item.
- #7040 Adds an expression to get various sound of blocks, like their break sound, footstep sound, or place sound.
- #7045 Adds a last death location expression for players.
- #7075 Adds an event for when blocks drop items when broken.
- #7076 Adds an expression for the experience pickup cooldown of players, as well as an event for when it changes.
- #7094 Adds an effect to open/close the lids of certain blocks, as well as a condition to check if a lid is open or not.
- #7104 Adds a condition to check if a number in evenly divisible by another.
- #7015 Adds syntax to get some client chat options on Paper servers, like if a player has chat colouring disabled.
- #7110 Adds syntax related to animal breeding and age.
- #7142 Adds test world, block, and location expressions for use in tests.
- #7166 Adds a function to format a number based on Java's DecimalFormat system.
Bug Fixes
- #6970 Improves the prefix/suffix expression to avoid LuckPerms errors.
- #7023 Improve performance of book authors expression.
- #7046 Fixes the piglin barter effect tests failing on Windows machines.
- #7055 Fixes the inability to spawn chest boats.
Changes
- #5518 Adds support for getting multiple random numbers at once.
- #6203 Adds
time until
to the time since expression. Changes out-of-range dates to return 0 seconds instead of none. - #6741 Adds gamemodes to the invulnerable condition.
- #6849 Adds support for wolf armor in the
is wearing
condition and theequip
effect. - #6860 Supports wither projectiles in the 'charged' syntax.
- #6867 Supports hiding/revealing all entities instead of just players.
- #6900 Adds the ability to get all entities within a cuboid region (within two locations).
- #6930 Adds the option to ignore trailing empty strings when splitting text.
- #6958 Adds a warning when Skript is reloaded via /reload or similar means.
- #6989 Adds a new option to the connect effect for transfering players between any two servers.
- #7001 Allows the use of shortened timespan units in commands:
/my_ban_command sovde 1y 2d 3s
. - #7013 Adds more support for withers and wither skulls in the charge effect and condition.
- #7030 Allows underscores in numbers for readability:
100_000_000
. - #7041 Adds support for wolf variants.
- #7073 Default names are now generated for enum values that are missing lang entries:
Missing lang enum constant for 'teleport causes.END_GATEWAY'. Using end gateway teleport cause for now
. This allows users to use some new Minecraft content without waiting for a Skript update. - #7126 Added special generated aliases for modded items.
mod:item
is accessible asmod's item
oritem from mod
. This feature is not officially supported, as Skript does not officially support any modded platforms. Any reported issues with this feature are not guaranteed to be addressed. - #7130 Allows blockdata to be used as the filter for
on click
events. - #7113 Supports adding to and removing from metadata tag values.
- #7115 Reduces delay before starting tests to 5 ticks instead of 5 seconds.
API Changes
- #5552 Adds internal Skript API events, like script initialization and script load events.
- #6873 Allows multiple return types in an ExpressionEntryData.
- #6993 Skript Timespans now implement the full Java time API, making them compatible with external resources.
- #7043 Exposes method to get the pattern strings of a property expression.
- #7053 Adds support for asynchronous JUnit tests.
- #7094 Explicitly add suppliers for EnumClassInfos.
- #7016 Avoids sending join messages when testing to avoid complexities with mocking players.
[Click here to view the full list of commits made since 2.9.4](<https://github.com/SkriptLang/Skript/compare/...
Patch 2.9.4
Skript 2.9.4
Skript 2.9.4 is here with even more bug fixes and early support for Minecraft 1.21.3. As always, you can report any issues on our issue tracker.
Happy Skripting!
Changelog
Bug Fixes
- #7141 Fixes leather horse armor being unequipable.
- #7143 Fixed entries being case-sensitive, preventing using capital letters in entries like 'Usage: ' for commands.
Additions
This includes: Pale Garden biome, creaking entity, baby squid entity, baby glow squid entity, baby dolphin entity
Click here to view the full list of commits made since 2.9.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 2.9.3
Skript 2.9.3
Skript 2.9.3 is here with even more bug fixes. As always, you can report any issues on our issue tracker.
We are also excited to welcome six new members to our team! These new members were selected from the numerous applications we received, and they have already been hard at work troubleshooting issues, patching bugs, and building new features. The full list of new members is as follows:
Happy Skripting!
Changelog
Bug Fixes
- #7024 Fixed an error that could occur when using invalid inputs in the 'look at' effect.
- #7027 Fixed some bStats reporting issues from the recent changes.
- #7031 Fixed formatting issues when reloading a directory.
- #7036 Fixed numerous and/or warnings that occurred in the tests.
- #7038 Fixed the within condition returning wrong values when negated and given a null input.
- #7052 Fixed an issue where 'Dutch' was not one of the language options listed in the config.
- #7056 Fixed removing entries from the hover list in a server ping event.
- #7060 Fixed exponents capping at long max value.
- #7066 Fixed an issue where the 'swim toggle' event could be cancelled. An error is now printed as cancelling it has no effect.
- #7067 Fixed an internal testing issue with the parse structure.
- #7082 Fixed an issue with modifying world times.
- #7085 Fixed an error message that could occur from unregistered types in changers.
- #7087 Fixed an issue where legacy materials were used in places they shouldn't.
- #7091 Fixed a bug when setting the profile of a skull to an offline player without a username.
- #7121 Fixed a redundant material namespace check.
API Updates
- #6992 Removed the usage of Eclipse annotations package. The JetBrains annotations package is now preferred.
- #7089 Introduced an official checkstyle for code formatting warnings.
- #7095 Prevents delays from being used in the testing system (excluding JUnit).
Click here to view the full list of commits made since 2.9.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:
- @0XPYEX0
- @Asleeepp
- @cheeezburga
- @Efnilite
- @Moderocky
- @Pesekjak
- @sovdeeth
- @Sparky200
- @TenFont
- @TheLimeGlass
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.2
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
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:
- @APickledWalrus
- @Asleeepp
- @Efnilite
- @Moderocky
- @Mr-Darth
- @mugu2006
- @Mwexim
- @sovdeeth
- @TheLimeGlass
- @UnderscoreTud
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
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:
- @APickledWalrus
- @EquipableMC
- @potaromc
- @ShaneBeee
- @sovdeeth
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
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 totrue
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.
- Triple-hashtags in the middle of a line (e.g.
- 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.
- Text can be appended to other text (e.g.
- We have exposed the
load default aliases
option inconfig.sk
, which allows you to tell Skript to only load aliases in theplugins/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
andnline
are no longer valid syntaxes for thenewline
expression, butnew 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 ofsolid
in thehighest solid block
expression has been removed. - Using
on teleport
will now trigger for non-player entities. To detect only player teleports, useon 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 ofinvulnerable
in related syntaxes. - #6422 Added a distinction when using the
actual
part of the target block expression. Whenactual
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 meanson teleport
will now trigger for entities other than players. Useon 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...
Pre-Release 2.9.0-pre2
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 totrue
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.
- Triple-hashtags in the middle of a line (e.g.
- 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.
- Text can be appended to other text (e.g.
- We have exposed the
load default aliases
option inconfig.sk
, which allows you to tell Skript to only load aliases in theplugins/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
andnline
are no longer valid syntaxes for thenewline
expression, butnew 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 ofsolid
in thehighest solid block
expression has been removed. - Using
on teleport
will now trigger for non-player entities. To detect only player teleports, useon 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. Whenactual
is used, the hitboxes of blocks will be considered. - #6530 Expanded the
teleport
event to trigger when non-player entities are teleported. NOTE: This meanson teleport
will now trigger for entities other than players. Useon 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
Pre-Release 2.9.0-pre1
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 totrue
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.
- Triple-hashtags in the middle of a line (e.g.
- 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.
- Text can be appended to other text (e.g.
- We have exposed the
load default aliases
option inconfig.sk
, which allows you to tell Skript to only load aliases in theplugins/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
andnline
are no longer valid syntaxes for thenewline
expression, butnew 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 ofsolid
in thehighest solid block
expression has been removed. - Using
on teleport
will now trigger for non-player entities. To detect only player teleports, useon 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 inis 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...
Patch Release 2.8.7
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.