Skript is a Bukkit plugin which allows server admins to customize their server easily, but without the hassle of programming a plugin or asking/paying someone to program a plugin for them.
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!
Click here to view the full list of commits made since 2.8.3
We have an official Discord community for beta testing Skript's new features and releases.
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.
A new month means a new patch! Skript 2.8.3 is here and it brings with it many bug fixes. You can report any issues on our issue tracker.
Happy Skripting!
If, and only if, you have the case-insensitive-variables
config option set to false
, you may experience slight changes to code behavior in functions. Previously, function parameters did not respect this option. This means that if you relied the bug that made the following code work (despite your config option set to false), your code will no longer work in this update.
function test(TEST: text):
broadcast {_test} # only {_TEST} is set now, not {_test}
inventory item move
event were mistakenly removed.groups
expression with LuckPerms would cause an exception.plain
always getting the same item for aliases representing multiple items.event-block
.at time
event failing to property trigger when a world's time was changed.Click here to view the full list of commits made since 2.8.2
We have an official Discord community for beta testing Skript's new features and releases.
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.
We are releasing Skript 2.8.2 to patch a critical issue that prevented the plugin from loading on Spigot versions older than 1.18. You can report any issues on our issue tracker.
Happy Skripting!
Click here to view the full list of commits made since 2.8.1
We have an official Discord community for beta testing Skript's new features and releases.
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.
Skript 2.8.1 is here to resolve some of the most notable issues reported with 2.8.0. We will continue to assess stability and make fixes as necessary. As always, you can report any issues on our issue tracker.
Happy Skripting!
breeze
and wind charge
.armour
is now valid for the player armor change event.armor of %entities%
to be considered a single value.loop-value - 1
to error. Additionally, many improvements have been made to the arithmetic
expression to greatly improve parsing and general stability.scripts
expression to return absolute paths for enabled scripts.vector from coordinates
expression.Click here to view the full list of commits made since 2.8.0
We have an official Discord community for beta testing Skript's new features and releases.
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.
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!
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."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 https://github.com/SkriptLang/Skript/pull/5875 for more.on grow
event. The grow event now has many more options to specify how you want it to listen. These changes mean that code that uses on grow of x
may fire twice as often as expected.# x -> something
on grow[th] from X
# something -> x
on grow[th] into X
# X -> Y
on grow[th] from X [in]to Y
# x is involved in some way
on grow[th] of X
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).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.
<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
.raw index of slot
expression.loop-(counter|iteration)[-%number%]
for both normal and while loop and improved performance for loop-value.items in inventory
expression.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.is jumping
for living entities condition. (Paper 1.15+)ready arrow
eventshear
effect.is climbing
for living entities condition.Free/Max/Total Server Memory
expression.damage
expression.event-item
and event-slot
to the resurrect event. If no totem is present, these values are none
.returns
aliases for function
definition.player
and offlineplayer
functions.<keybind:value>
).apply bone meal
effect.on move
event.isNaN(number)
to check if a number is NaN.cursor slot
not always returning the correct item in inventory click
events.difference
expression.parsed as
expression returning arrays or throwing exceptions.drops
in 1.20.2+.furnace slot
expressions and fixes numerous issues with them.element
expression and adds the ability to A, get the first or last x elements of a list, and B, get the elements in a range from x to y in the list.on grow
event. Fixes an issue where listening to on grow of sugarcane
or any other full-block plant, like cacti or pumpkins, would never fire. Adds more functionality to specify what exactly to listen for.# 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
case-insensitive variables
config option visible by default in the config file.# This will now error, as it's unclear who to send "test" to!
on right click on entity:
send "test"
block change
event and adds block and blockdata event values.decrease
as an alias for reduce
, e.g. decrease {_var} by 2
.and with
before fade out
in the title
effect.continue
to continue outer loops.target entity
expression to use raytracing for a player's target. This should make it much more accurate, but may change behavior slightly. Also adds an option to change the ray size and to ignore blocks.use player uuids in variable names
config option enabled.Timespan#getTicks
and Timespan#fromTicks
from returning ints to returning longs. Deprecated Timespan#getTicks_i
and Timespan#fromTicks_i
due to API name change.Direction#getDirection
which returns a vector.%objects%
to avoid UnparsedLiterals.ExpressionType#NORMAL
was removed. ExpressionType#EVENT
was added for EventValueExpressions. A new default register method was added to EventValueExpression.WILL
to PropertyCondition to allow for easy registration for conditions like player will consume the firework charge
.SyntaxElementInfo#c
to SyntaxElementInfo#elementClass
. This field will be made private in 2.9. Please use the SyntaxElementInfo#getElementClass()
getter instead.Inventory Slot
to Slot
.MarkedForRemoval
annotations with ApiStatus.ScheduledForRemoval
.cleanup()
method in JUnit tests.Click here to view the full list of commits made since 2.7.3
We have an official Discord community for beta testing Skript's new features and releases. We're currently testing a new version of skript-reflect and we would love some more testers!
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.
Skript 2.8.0 Pre-Release 2 is here to fix some of the issues found on the first pre-release. As a pre-release, be warned that there may be bugs! We do not recommend running this version on your production servers. Per our new release model, we plan to release Skript 2.8.0 on January 15th.
Below, you can familiarize yourself with the changes. As always, report any issues to our issues page. We will continue to work on addressing any major issues before the full release.
Happy Skripting!
The changelog below highlights all changes since the first pre-release. For the complete 2.8.0 changelog, please review the first pre-release's changelog.
Click here to view the full list of commits made since 2.8.0-pre1
The syntax is now
%vector% to location in %world%
.
We have an official Discord community for beta testing Skript's new features and releases. We're currently testing a new version of skript-reflect and we would love some more testers!
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.
Skript 2.8.0 Pre-Release 1 is here for everyone to begin previewing! This release contains all major features for Skript 2.8.0. As a pre-release, be warned that there may be bugs! We do not recommend running this version on your production servers. We will release additional pre-releases as necessary. Per our new release model, we plan to release Skript 2.8.0 on January 15th.
Below, you can familiarize yourself with the changes. As always, report any issues to our issues page! We will be working over the next two weeks to address any issues that are found.
Happy New Year and Happy Skripting!
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."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 https://github.com/SkriptLang/Skript/pull/5875 for more.on grow
event. The grow event now has many more options to specify how you want it to listen. These changes mean that code that uses on grow of x
may fire twice as often as expected.# x -> something
on grow[th] from X
# something -> x
on grow[th] into X
# X -> Y
on grow[th] from X [in]to Y
# x is involved in some way
on grow[th] of X
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).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.
<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
.raw index of slot
expression.loop-(counter|iteration)[-%number%]
for both normal and while loop and improved performance for loop-value.items in inventory
expression.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.is jumping
for living entities condition. (Paper 1.15+)ready arrow
eventshear
effect.is climbing
for living entities condition.Free/Max/Total Server Memory
expression.damage
expression.event-item
and event-slot
to the resurrect event. If no totem is present, these values are none
.returns
aliases for function
definition.player
and offlineplayer
functions.<keybind:value>
).apply bone meal
effect.on move
event.isNaN(number)
to check if a number is NaN.cursor slot
not always returning the correct item in inventory click
events.difference
expression.parsed as
expression returning arrays or throwing exceptions.drops
in 1.20.2+.furnace slot
expressions and fixes numerous issues with them.element
expression and adds the ability to A, get the first or last x elements of a list, and B, get the elements in a range from x to y in the list.on grow
event. Fixes an issue where listening to on grow of sugarcane
or any other full-block plant, like cacti or pumpkins, would never fire. Adds more functionality to specify what exactly to listen for.# 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
case-insensitive variables
config option visible by default in the config file.# This will now error, as it's unclear who to send "test" to!
on right click on entity:
send "test"
block change
event and adds block and blockdata event values.decrease
as an alias for reduce
, e.g. decrease {_var} by 2
.and with
before fade out
in the title
effect.continue
to continue outer loops.target entity
expression to use raytracing for a player's target. This should make it much more accurate, but may change behavior slightly. Also adds an option to change the ray size and to ignore blocks.use player uuids in variable names
config option enabled.Timespan#getTicks
and Timespan#fromTicks
from returning ints to returning longs. Deprecated Timespan#getTicks_i
and Timespan#fromTicks_i
due to API name change.Direction#getDirection
which returns a vector.%objects%
to avoid UnparsedLiterals.ExpressionType#NORMAL
was removed. ExpressionType#EVENT
was added for EventValueExpressions. A new default register method was added to EventValueExpression.WILL
to PropertyCondition to allow for easy registration for conditions like player will consume the firework charge
.SyntaxElementInfo#c
to SyntaxElementInfo#elementClass
. This field will be made private in 2.9. Please use the SyntaxElementInfo#getElementClass()
getter instead.Inventory Slot
to Slot
.MarkedForRemoval
annotations with ApiStatus.ScheduledForRemoval
.cleanup()
method in JUnit tests.Click here to view the full list of commits made since 2.7.3
We have an official Discord community for beta testing Skript's new features and releases. We're currently testing a new version of skript-reflect and we would love some more testers!
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.
Skript 2.7.3 is here to end off the year with a few bug fixes. This will be the final release for Skript 2.7 versions. As per the new release model, Skript 2.8 will release after the new year on January 15th.
We are immensely appreciative of all of the support we have received this year.
Happy Holidays and Happy Skripting!
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.We have an official Discord community for beta testing Skript's new features and releases. We're currently testing a new version of skript-reflect and we would love some more testers!
Due to the major internal changes within the 2.7 update, some addons may no longer work properly. Please be patient as addon developers work to update their addons. We have published a new release of our Addon Patcher, but be aware that it cannot fix all issues.
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.
As per the new release model, the first of the month brings with it a new Skript release! This release includes several bug fixes for issues that have been reported.
Thank you all for your continued support.
Happy Skripting!
Click here to view the full list of commits made since 2.7.1
We have an official Discord community for beta testing Skript's new features and releases.
Due to the major internal changes within the 2.7 update, some addons may no longer work properly. Please be patient as addon developers work to update their addons. We have published a new release of our Addon Patcher, but be aware that it cannot fix all issues.
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.
In this release, we have patched many of the current known issues of Skript 2.7.0. We have also added support for Minecraft 1.20.2 and most its aliases.
Thank you all again for your continued support.
Happy Skripting!
keep inventory
in a death event and related issuesClick here to view the full list of commits made since 2.7.0
We have switched to a new release model starting with this version.
New syntax, features, and quality-of-life changes will be saved for large 2.X
versions, released twice per year.
Bug fixes will be released monthly in smaller 2.7.X
versions.
The full details of this model are available here.
We have an official Discord community for beta testing Skript's new features and releases.
Due to the major internal changes within the 2.7 update, some addons may no longer work properly. Please be patient as addon developers work to update their addons. We have published a new release of our Addon Patcher, but be aware that it cannot fix all issues.
We have continued to see an increase in new contributors recently, and we would like to thank all who have contributed to this version of Skript. :star: :slightly_smiling_face:
Special thanks to the team members and 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.