All Mods Resource Packs Data Packs Shaders Modpacks Plugins
skript-particle

skript-particle

by sovdeeth • Downloads: 0 • Followers: 0
Description
Gallery
Changelog
Versions

skript-particle

Skript addon for creating complex particle effects with minimal hassle.

Requires Skript 2.7+, Java 17+, Paper 1.18 - 1.20.4

Download at the releases page.

You can find help, give suggestions, or voice complaints in the Issues tab here, or on the skript-chat discord here.

Skript-Particle is intended to provide syntax for creating complex shapes with particles. Competent and powerful particle syntaxes exist in addons like SkBee, but creating shapes requires a lot more effort and know-how. They're also inherently slower and less performant than Java, even without considering the usual need to re-calculate the shape each time it's drawn.

The goal for Skript-Particle is to provide easy-to-use, flexible, and powerful syntax to create particle shapes. The basic structure is a set of various shapes, like circles, lines, polygons, and more. These shapes are relative to a center point and aren't positioned anywhere specific. The drawing syntax takes a set of shapes and a location and draws all the shapes relative to that location. This allows the definition of a bunch of shapes that only need to be defined once and can then be drawn in many places and in many rotations. Since shapes can be rotated as a group, it's also very simple to change the rotation and orientation of your shapes with a single line.

Syntax available on skUnity and SkriptHub

Here's some example code:

command /magic:
    trigger:
        set {_shapes::outer-circle} to a circle of radius 2.225
        set {_shapes::inner-circle} to a circle of radius 2
        set {_shapes::tiny-circle} to a circle of radius 0.875

        set {_shapes::triangle-1} to a triangle with radius 2
        set {_shapes::triangle-2} to a triangle with radius 2
        rotate shapes {_shapes::triangle-2} around y axis by 60 degrees

        set particle of {_shapes::*} to electric spark

        loop 200 times:
            set {_view} to vector from yaw player's yaw and pitch player's pitch
            set {_yaw} to yaw of {_view}
            # figure out the rotation needed to rotate the shape 
            set {_rotation} to rotation from vector(0, 1, 0) to {_view}
            draw the shape {_shapes::*} at player's eye location ~ {_view}:
                # only happens for this draw call, the original shape is not modified
                # note that this is called once for each shape, hence `drawn shape` and not `drawn shapes`
                rotate drawn shape by {_rotation}
                # the shape takes the shortest path to rotate to the desired rotation, but that causes it to appear to rotate as we turn.
                # so we'll correct for it by rotating the shape around the y axis by the yaw of the player
                rotate drawn shape around relative y axis by -1 * {_yaw}

            wait 1 tick 

Current Features:

  • Shapes:
    • Bezier Curves
    • Circles, Ellipses, Spheres, and Ellipsoids
    • Cylinders and Elliptical Cylinders
    • Arcs and Spherical Caps
    • Helices
    • Lines
    • 2D Regular and Irregular Polygons and Prisms
    • Regular polyhedra
    • Rectangles and cuboids
  • Drawing:
    • Three styles: outline, surface, and filled. Some shapes only support one or two of these styles.
    • Rotation to any orientation.
    • Scaling and offsetting.
    • Drawing multiple shapes at once.
    • Options for who sees the particles (player specific)
    • Custom particle data and density per shape
      • Full support for SkBee's particle data syntaxes
    • Debug axes for clear visualization of the orientation of your shape.
    • Shapes are only calculated when they actually change, so you can draw the same shape many times without any performance hit.
    • Option to make all calculation and drawing synchronous (async by default)
      • Ability to continuously draw a shape for a timespan (async only)
    • Dynamic locations, so particles can follow an entity with no additional user effort
  • Particles:
    • Expression for custom particles
    • Section for custom particles
  • Animation:
    • Ability to stretch out drawing a shape over a timespan

Planned Features:

  • Shapes:
    • Custom shapes defined by a function
    • "Common but difficult to code" shapes like hearts, stars, and more
  • Drawing:
    • Combining shapes into a custom shape to be drawn as a single shape.
    • Gradient colour fields, with custom colour nodes.
  • Animation:
    • Set up a pre-made animation in a custom structure, play back with one draw call

2022-08-28_00 10 57

https://user-images.githubusercontent.com/10354869/187062241-d3c51f86-4129-4f8b-9ce3-2d0037779e4e.mp4

All Versions

+ Add Version
Name Game version Platforms Published Downloads Actions
26.1.x 1.21.x
Paper Purpur
12h ago 1
1.21.x
Paper Purpur
12h ago 1
1.21.x 1.20.x 1.19.4
Paper
12h ago 1
1.21.x 1.20.x 1.19.4
Paper
12h ago 1
1.20.4 1.19.4 1.18.2
Paper Purpur Spigot
12h ago 1
1.20.x 1.19.4 1.18.2 +1
Paper
12h ago 1
Supported versions: 1.21 - 26.1, Skript 2.14+
Likely the last 1.X version of skript particle, so this is built off the legacy-ev-fix branch rather than main.

### Changelog

  • Fixed compatibility with Skript 2.15 (small issue with event-value registration on my part)

### Syntax
Syntax is available on [SkUnity](https://docs.skunity.com/syntax/search/addon:skript-particle) and [SkriptHub](http://skripthub.net/docs/?addon=Skript-Particle)!

### PLEASE REPORT ALL BUGS, SUGGESTIONS, AND OTHER FEEDBACK IN [THE ISSUES TAB](https://github.com/sovdeeth/skript-particle/issues/new/choose)!!
  • If you have questions, small suggestions, or just need help, check out the skript-particle channel in [the skript-chat discord.](https://discord.gg/V4qFVnh)**
Supported versions: 1.21 - 1.21.11, Skript 2.14+

### Changelog

  • Fixed compatibility with Skript 2.14
  • Some major breaking syntax changes were made, as Skript now has competent particles support.
  • the custom particle expression has been removed in favor of Skript's own particle system.
  • the draw particle effect has likewise been removed.
  • the custom particle section has had its data entry removed, as that should be taken care of via Skript's particle system:
``
a custom dust particle with:
data: dustOptions(red, 1)
velocity: inwards
vs
a custom red dust particle with:
velocity: inwards
`
  • skript-particle's custom particles should behave exactly like Skript's particle effects` in Skript's syntaxes. (e.g. you can set scale/velocity/distribution like normal)
  • skript-particle now only supports Java 21 versions (1.21+)

### Syntax
Syntax is available on [SkUnity](https://docs.skunity.com/syntax/search/addon:skript-particle) and [SkriptHub](http://skripthub.net/docs/?addon=Skript-Particle)!

### PLEASE REPORT ALL BUGS, SUGGESTIONS, AND OTHER FEEDBACK IN [THE ISSUES TAB](https://github.com/sovdeeth/skript-particle/issues/new/choose)!!
  • If you have questions, small suggestions, or just need help, check out the skript-particle channel in [the skript-chat discord.](https://discord.gg/V4qFVnh)**
Supported versions: 1.19.4 - 1.21.7, Skript 2.10+

### Changelog

  • Fixed compatibility with Skript 2.12.2
  • Some breaking syntax changes were required to avoid conflicts:
  • (length|width|height) of %shape% -> shape (length|width|height) of %shape%
  • scale of -> shape scale of
  • locations of -> (particle|point) locations of
  • Added docs to ExprBezierCurve


### Syntax
Syntax is available on [SkUnity](https://docs.skunity.com/syntax/search/addon:skript-particle) and [SkriptHub](http://skripthub.net/docs/?addon=Skript-Particle)!

### PLEASE REPORT ALL BUGS, SUGGESTIONS, AND OTHER FEEDBACK IN [THE ISSUES TAB](https://github.com/sovdeeth/skript-particle/issues/new/choose)!!
  • If you have questions, small suggestions, or just need help, check out the skript-particle channel in [the skript-chat discord.](https://discord.gg/V4qFVnh)**
Supported versions: 1.18 - 1.21.4

### Changelog

  • Fixed compatibility with Skript 2.10
  • Fixed a bug with points of %shape% returning true for isSingle()
  • Fixed a bug where some line constructing patterns returned false for isSingle()


### Syntax
Syntax is available on [SkUnity](https://docs.skunity.com/syntax/search/addon:skript-particle) and [SkriptHub](http://skripthub.net/docs/?addon=Skript-Particle)!

### PLEASE REPORT ALL BUGS, SUGGESTIONS, AND OTHER FEEDBACK IN [THE ISSUES TAB](https://github.com/sovdeeth/skript-particle/issues/new/choose)!!
  • If you have questions, small suggestions, or just need help, check out the skript-particle channel in [the skript-chat discord.](https://discord.gg/V4qFVnh)**
Supported versions: 1.18 - 1.20.4. 1.20.5/6 have not been tested yet.

### Changelog

  • Added Bezier curves.
``
[a] [bezier] curve from [start] %vector/entity/location% to [end] %vector/entity/location% (with|using) control point[s] %vectors/entities/locations%
`
  • Added basic ordering for animations. More orderings coming later.
`
set the animation order of %shapes% to (default|lowest-to-highest|highest-to-lowest)
``
  • Some updates to error handling to avoid console spam if you mess up.
  • Fixed a few little bugs with nullability.


### Syntax
Syntax is available on [SkUnity](https://docs.skunity.com/syntax/search/addon:skript-particle) and [SkriptHub](http://skripthub.net/docs/?addon=Skript-Particle)!

### PLEASE REPORT ALL BUGS, SUGGESTIONS, AND OTHER FEEDBACK IN [THE ISSUES TAB](https://github.com/sovdeeth/skript-particle/issues/new/choose)!!
  • If you have questions, small suggestions, or just need help, check out the skript-particle channel in [the skript-chat discord.](https://discord.gg/V4qFVnh)**
Only minor changes this time. Support for icospheres and custom shapes (shapes made of other shapes and/or individual points) will be coming in 1.2.0.

### Changelog

  • Fixed NPEs when using debug verbosity
  • Added lang entries for various types
  • Fixed a conflict between SkBee's draw effect and draw shapes
  • Made SecParticle much safer and better at erroring (thanks @ShaneBeee)

### :warning: **Breaking Changes:** :warning:
My apologies for this change, but it was the only way to resolve a collision issue between the draw particle and draw shape effects when using variables.
The draw shape effect section now requires the use of the keyword shape to avoid conflicts:
``
[sync[hronously]] draw [the] shape[s] [of] %shapes% [%-directions% %-locations/entities%] [to %-players%]",
draw [the] shape[s] [of] %shapes% [%-directions% %-locations/entities%] [to %-players%] for [duration] %timespan% [with (delay|refresh [rate]) [of] %-timespan%]"
``

### Syntax
Syntax is available on [SkUnity](https://docs.skunity.com/syntax/search/addon:skript-particle) and [SkriptHub](http://skripthub.net/docs/?addon=Skript-Particle)!

### PLEASE REPORT ALL BUGS, SUGGESTIONS, AND OTHER FEEDBACK IN [THE ISSUES TAB](https://github.com/sovdeeth/skript-particle/issues/new/choose)!!
  • If you have questions, small suggestions, or just need help, check out the skript-particle channel in [the skript-chat discord.](https://discord.gg/V4qFVnh)**
skript-particle Icon
Download skript-particle
Select game version
Select platform