Releases: SkriptLang/Skript
Backported security fix
A security issue with JSON chat formatting was found. The fix was backported for 2.3, since 2.4 is not stable yet.
- Fixed a security issue with chat styles (closes #2198)
- Backported other minor bugfixes
- Updated the aliases
- Disabled FAWE hook; it cannot currently be compiled
A security release
A new alpha release for 2.4 is out a bit sooner than expected. A security issue was noticed, so you should update as soon as possible.
- Added support for checking if all entities are 'dead'
- Added (hopefully) functional support for 1.14 cats
- Added support for clearing block drops for 1.14 (closes #659)
- Fixed inventory titles not working on 1.13 and older versions; still doesn't work on 1.14 (thanks @ShaneBeee)
- Fixed a broken documentation link (thanks @MrScopes)
- Fixed leash holder throwing exceptions (closes #2157, thanks @Blueyescat)
- Fixed chat codes being case sensitive (closes #2152)
- Fixed bugs in tablist modification expression (closes #2130)
- Fixed a security issue with chat styles (closes #2198)
- Fixed spectator target support not being available (closes #2201)
- Triggers are now called events in docs
Critical error on 1.12 and older
- Fixed a bug that caused Skript not to load on Minecraft 1.12 and older (closes #2137)
Moving forward with 2.4
Second test release of 2.4 brings bug fixes, new features and improved Minecraft 1.14 support.
- Added support most 1.14 entities and particles (closes #2064)
- Added most of the missing visual effects that affect entities
- Added effects for enabling and disabling (other) scripts (closes #822, thanks @JRoy)
- Fixed a warning related to color serializer (closes #2072)
- Fixed patterns for new villager professions (closes #2065)
- Fixed a regression with enchantment type parsing (closes #2063)
- Fixed drowned being treated as zombies (closes #2087, thanks @ShaneBeee)
- Fixed sending block changes ignoring block data on Minecraft 1.13 and newer versions (closes #2039, thanks @ShaneBeee)
- Fixed a bug that duplicated placed stairs and trap doors (closes #1977, thanks @ShaneBeee)
- Added a condition for checking if materials are blocks (thanks @ShaneBeee)
- Fixed a bug which caused dropping items or experience from a list variable not to work (closes #1917, thanks @ShaneBeee)
- Fixed entity click events ignoring held item (closes #2084)
In addition to these user-facing changes, Spigot's nullness annotations are now accounted for.
1.14.1 Alpha Release
First experimental release of Skript 2.4 is finally here. While smaller than 2.3, this is a large release. Don't use this on a production server before testing extensively.
Once things are starting to look stable, a beta release will be published. Consider waiting for it unless you're especially interested in reporting bugs. Alternatively, use latest stable release (2.3.6) available below.
- Added an effect to break blocks naturally (thanks @ShaneBeee)
- Added support for getting colors of beds (closes #1972)
- Added missing event-values to vehicle events
- Added support for playing multiple sounds in multiple locations (thanks @Blueyescat)
- Added support for specifying sound category (thanks @Blueyescat)
- Added support for playing sounds at players without specifying locations (thanks @Blueyescat)
- Added an effect to stop sounds (closes #1921, thanks @Blueyescat)
- Added experimental support for Minecraft (Spigot, Paper) 1.14.1
- Fixed some expressions being treated as singulars, even though they are not
- Fixed 'indices' expression not being available
- Fixed minor issues with inventory expressions
- Fixed using enchanted items in variable names not working (closes #1987)
- Fixed a bug that caused aliases contain too much whitespace
- Fixed removing enchantments ignoring their levels
- Fixed click events not working reliably on villagers (#1927)
- Fixed armor stand click events not working at all
- Fixed entity click events not working with high verbosity settings (closes #1938)
- Fixed built-in calcExperience function not working reliably (closes #2040, thanks @Matocolotoe)
- Fixed playing sounds sometimes throwing exceptions (closes #1914, thanks @Blueyescat)
- Fixed an issue with material registry updates sometimes corrupting the registry
- Fixed getting command arguments crashing with alternative syntax (closes #2050)
- Improved vector implementation (thanks @Blueyescat)
- Improved documentation of play sound effect (thanks @Blueyescat)
- Reworked how enchantments are serialized
- Reworked parts of aliases system; fixed many comparison issues, improved performance, slightly reduced memory usage
- Removed FAWE support; it was contributed in a pull request, but broke due to their Maven server changes
Bug fixes to you!
2.3 continues to receive bug fixes.
- Fixed opening and closing doors not working (closes #1897)
- Fixed sorting some lists not working (closes #1904)
- Fixed setting all items of an inventory to a list ignoring some items (closes #1906)
- Fixed aliases with upper-case letters not being usable (closes #1907)
- Fixed falling blocks causing exceptions on 1.12 and older (closes #1909)
- Fixed setting blocks sometimes causing exceptions on 1.12 and older (closes #1902)
- Fixed some cases of click events not working on 1.12 and older (closes #1916)
- Fixed changes to items in variables also affecting items in inventories (closes #1813)
- Fixed insertion chat style not working (closes #1378)
- Improved performance of removing all items from an inventory (related #772)
101th release
More bug fixes!
1.12 aliases have been a bit unstable; they should be better now. For users of 1.13, we have a few other bug fixes available.
- Added FAWE WorldGuard support (thanks @Pugabyte, closes #1821)
- Fixed 'starts with' not working (closes #1864)
- Fixed block and item names ignoring data values on 1.12 and below (closes #1799)
- Fixed item parsing messing up the data values on 1.12 and below (closes #1850)
- Fixed alias comparison issues on 1.12 and below (closes #1739)
- Fixed bed block aliases not working on 1.12 (closes #1856)
- Fixed right click events not always working with items in off hand (closes #1808)
- Removed old potion item expression (closes #1866)
Bug fixes
Skript 2.3.1 has been relatively stable. Still, bugs exist and now we have fixed some of them. Since no new features were added, hopefully nothing broke this time.
- Fixed a documentation issue with open inventory effect (closes #1826)
- Fixed time span parsing sometimes throwing exceptions (closes #1829)
- Fixed getting and setting display names of items not working reliably (closes #1807)
- Fixed parse expression not working with optional parts (closes #1222)
- Fixed issues with setting items to slots (closes #1822)
- Fixed feed effect setting food level instead of increasing it
- Changed Skript not to send script command names to clients when they have not been changed; improves performance on 1.13 when there are many players online
A (not so?) stable release
A first stable release of Skript for years is here!
Main good news since Skript 2.2:
- Added support for Minecraft 1.9, 1.10, 1.11, 1.12 and 1.13 (latest revisions only)
- Rewrote item and block alias system and the aliases
- Reworked Skript documentation, since Njol's docs website was not open source
- Added vector support (was previously an addon)
- Added support for advanced chat formatting features (known as "JSON chat")
- Added support for particles (not just legacy effects)
- Added support for playing sounds
- Added ability to place function calls before function definitions
- ⭐ Added item with lore expression
- You have probably used the
with lore
expression from skQuery addon, now it is added to Skript itself, but it uses text lists instead of||
for new lines. So you will have to update your scripts using this format. The same goes for the item lore expression, so it returns a text list.a diamond sword named "name" with lore "lore" a diamond sword with lore "line 1" and "line 2" a diamond sword with lore "line 1", "" and "line 3" set {_lore::*} to the lore of player's tool
- You have probably used the
- Fixed some ancient bugs
Additions / Improvements
Note: some additions may be missing from the list below. Please read the docs
for complete reference of Skript features.
General
⭐ Vector support
- Vector arithmetics expression
- Rotate vector around effect
- Rotate vector around XYZ effect
- Location from vector expression
- Location offset by vector expression
- Angle between vectors expression
- Vector between locations expression
- Cross product between vectors expression
- Dot product between vectors expression
- New cylindrical vector expression
- New spherical vector expression
- Vector from X, Y, Z expression
- Vector from yaw, pitch expression
- Vector length expression
- Normalized vector expression
- Vector from location expression
- Random vector expression
- Squared vector length expression
- Vector coordinates expression
- Vector yaw, pitch expression
- Entity velocity expression (changeable)
⭐ Full server list control
Now you can fully modify info of the server in the server list, but some of these features requires Paper 1.12.2 or newer
- Server list ping event
- Changeable MOTD expression
- Max players expession (changeable in the ping event)
- Online players count expression (changeable in the ping event)
- Changeable protocol version expression
- Changeable version string expression
- Changeable hover list expression
- Load server icon from file effect
- Last loaded server icon expression
- Server icon expression (changeable in the ping event)
- Hide/show player info in server list effect
- Hide player from server list effect
- Ability to the get IP address of the pinger in the server ping event
⭐ Easy to use command cooldown system
These entries can be used in command creations:
cooldown: <timespan>
cooldown message:
cooldown bypass: <permission>
cooldown storage: <variable>
⭐ Player visibility controls
- Effect to hide specified players from the other specified players
- Effect to reveal specified players to the other specified players
- Expression to get hidden players of a player
- Condition to check whether specified players can see the other specified players
✨Mixed
- Client side weather support
- Expression to get/change client weather of players
- Condition to check whether a player has client weather
- Scoreboard tags support
You can visit Minecraft Wiki for more info about scoreboard tags- Expression to get/change scoreboard tags of entities
- Condition to check whether an entity has a scoreboard tag
- Support for more tree types
- A sample script for inventory clicks (
equip anything.sk)
- Support for parsing UUID as player and offline player
- Support for Residence regions
- Support for PreciousStones regions
- Support for glowing and bad luck potion effects
- Support for multiple vehicle passengers
- Support for ambient and particle-less potion effects
- Used BStats for metrics
- Support for moved blocks in piston events
- A way to get documentation exported from Skript in JSON format
- A warning if some ridiculous function signatures are used
- A warning when used delays with less than 1 tick, as they have never worked
- Plants support for the grow event
- Support for multiple texts in the replace effect
- Possibility to replace items with another item in inventories
- Support for boat types
direction
event value in certain events- Support for entity UUIDs
- Support for zero-argument functions
world
event value for the portal creation event- Support for coloring potions and maps in Minecraft 1.11
- Condition to check if an entity is on ground
- Support for silverfish in the block form event
- Support for configuring variable storage table name
- Added configuration options to disable certain warnings
- Support for forcing players to fly
- A warning for unnecessary text conversions
- A function to calculate experience needed to achieve the given level in Minecraft.
- Support for using expressions in command permission message
- Support for looping an inventory, that means looping items in the inventory
- Support for manipulating balances of offline players
- Local variable type hints
- A warning for using only single
:
in a variable name - Ability to change inventory names
Effects
- Effect to force players to respawn
- Ability to drop items without velocity
- Anvil support for the open inventory effect
- Make player start/stop flying effect
continue
effect which skips the current loop- Effect for sending fake block changes to players
- Effect to force a player to say something
- Effect to execute another effect conditionally
- Effect to send action bars
- Effect to leash an entity to a leash holder entity
- Effect to suppress some warnings locally to the current script
- Effect to send titles and subtitles
Expressions
- ⭐ Default value expression
- ⭐ Ternary expression
- ⭐ List Filter
- Off hand tool expression
- Raw Minecraft item name expression
- Last damage cause expression
- Saturation expression
- Cursor slot expression
- Elytra gliding state expression (changeable)
- Unbreakable item expression
- Expressions to convert texts to lower/upper case
- Expression to get sorted and shuffled form of a list
(Note: a sorted/shuffled variable list doesn’t keep its indexes) - Expression to get the final damage in a damage event
- Expression to get amount of an item stack
- Glowing effect expression (can be set and reset)
- Ability to specify the fake damage cause for the damage effect
- Inventory support for the name expression
- Gravity expression for Minecraft 1.10+
- Inventory slot expression
- Inventory action expression
- Expression to get the currently open inventory of a player
- Expression to get the last dropped item
- Tamer expression for the tame event
- Chat message format expression for the chat event
- Book related expressions
- Unix timestamp expression
- ⭐ Expression to format dates
- Expression to get type of an inventory
- Expression to get all permissions of a player
- 'date ago/later' expression, which increments/reduces a date by the given timespan
- Expression to allow survival players to fly when they want to
- Expression to create custom chest inventories
- Expression to get holder, viewers and rows of an inventory
- Expression to get the highest block at a location
- Player exhaustion expression
- Expression to get all online and offline players
- World seed expression
- Block humidity expression
- Block temperature expression
- Expression to get item of an item frame or a dropped item
- Expression to get/change enchantments of an item
- Player ping expression
- Server TPS expression
- Player hotbar slot expression (changeable)
- ⭐ Metadata expression
- Expression to get Minecraft language of a player
- Spectator target expression
- ⭐ Expression to get the spawn reason in the spawn event
- ⭐ Expression to get the teleport cause in the teleport event
- Expression to get leash holder of an entity
- Expression to get/change difficulty of worlds
Conditions
- Is script is loaded condition
- Is block is solid condition
- Is block flammable condition
- Is block transparent condition
- Is item edible condition
- Text starts/ends with text condition
- Is chunk loaded condition
- Is world loaded condition
- Is slime chunk condition
- Is swimming condition
Events
- Prepare crafting event
- Inventory open and close events
- Inventory click event
- Entity mount/dismount events
- Elytra glide state change event (cancellable)
- Area effect cloud event
- Player world change event
- Resurrect event for 1.11+
- Item item despawn event
- Item merge event
- Flight toggle event
- Player language change event
- Jump event
- Hand item swap event
- Swim toggle event
Also, there are some breaking changes:
- Skript now requires Java 8
- Skript also requires Spigot/Paper and Minecraft 1.9 or newer
- CraftBukkit does not work, Glowstone might work but is not tested
- Old aliases in scripts are not compatible
- Numeric item ids are not supported anymore
- Syntax for hashing was changed, MD5 is not a secure hashing algorithm. See the docs for the new syntax
- Consider using SHA instead or better, not dealing with passwords with Skript
- Slots now work as specified in the documentation (i.e. they're not passed to variables)
- Some new bugs might break your scripts
For people updating from the previous beta release, a...