Skript-Particle

Addon Skript-Particle v1.3.0

  • Welcome to skUnity!

    Welcome to skUnity! This is a forum where members of the Skript community can communicate and interact. Skript Resource Creators can post their Resources for all to see and use.

    If you haven't done so already, feel free to join our official Discord server to expand your level of interaction with the comminuty!

    Now, what are you waiting for? Join the community now!

Supported Minecraft Versions
  1. 1.17
  2. 1.18
  3. 1.19
  4. 1.20

skript-particle​

Skript addon for creating complex particle effects with minimal hassle.

Requires Skript 2.7+, Java 17, Paper 1.17.1+

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 is available on skUnity.

Here's some example code:

AppleScript:
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 particle

        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 shapes {_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 shape 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 shape drawn shape around relative y axis by -1 * {_yaw}

            wait 1 tick


Current Features:​

  • Shapes:
    • 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
    • Custom motion for particles (vector, inwards/outwards, [anti]clockwise)

Planned Features:​

  • Shapes:
    • Bezier Curves
    • Custom shapes defined by a function or structure
    • "Common but difficult to code" shapes
  • Drawing:
    • Combining shapes into a custom shape to be drawn as a single shape.
    • Gradient colour fields, with custom colour nodes.
  • Animation:
    • Ability to stretch out drawing a shape over a timespan
    • Set up a pre-made animation in a custom structure, play back with one draw call
Author
Sovde
Downloads
742
Views
3,896
First release
Last update
Rating
5.00 star(s) 1 ratings

More resources from Sovde

Latest updates

  1. v1.3.0 - Animation Ordering and Bezier Curves

    Changelog * Added Bezier curves. [a] [bezier] curve from [start] %vector/entity/location% to...
  2. v1.2.0 - Animations and Bug Fixes

    Changelog * Allowed omitting the first shape in rotate shape drawn shape... * Added some basic...
  3. v1.1.1 - Small Improvements

    Only minor changes this time. Support for icospheres and custom shapes (shapes made of other...

Latest reviews

It's a very nice addon, we've finally got an addon that supports particles!!!!!!