Skip to content

A (not so?) stable release

Compare
Choose a tag to compare
@Snow-Pyon Snow-Pyon released this 05 Jan 04:06
· 1893 commits to master since this release
993ef25

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
      
  • 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 few things were changed:

  • Added back WorldGuard 6 support
  • Fixed exceptions when setting empty slots to variables
  • Fixed facing expression not working on 1.13
  • Fixed lore expression not being plural
  • Added some charts to bStats metrics

What exactly should I download for Minecraft <insert version>?

We publish one .jar for all supported Minecraft versions. Unless you're
running Minecraft 1.8 or older, just download this release and you're good
to go!

For Minecraft 1.8 and older, you'll have to try older release. Skript 2.1.2 is probably the most stable, but old development releases like 2.2-dev36 might also work. We support neither and recommend that you upgrade to Minecraft 1.9.4 or newer version.

But 1.12 and 1.13 Spigot APIs are "not compatible"! How does it work?

Skript targets 1.13 API and does not rely on Spigot-provided compatibility
layer. This means we're free to support as many Minecraft versions as we
want... with the caveat that we basically need our own compatibility layer.

What is a 'stable release'?

We'll release subsequent bug fix patches for stable releases, if they are
needed. The patches will not contain new major features, so updating to them
is very unlikely to break your scripts.

Documents describing how Skript releases work are pending merge with other changes in a pull request.

If you'd like to receive update notifications only about future stable releases, consider setting release channel: stable in your config.sk.

Hotfix 2.3.1 has been released:
Apparently, 2.3 was not so stable in the end. In particular, one critical bug (#1795) was found and fixed by @Snow-Pyon. 2.3.1 contains no new features and shouldn't break anything that worked in 2.3. Please update as soon as possible.

We (especially @bensku) are sorry for missing so obvious bug in testing.