skript-particle icon

skript-particle -----

Skript addon for creating complex particle effects with minimal hassle.



skript-particle
Skript addon for creating complex particle effects with minimal hassle.

Requires Skript 2.9+, 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 and SkriptHub.



Here's some example code:

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

        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
Resource Information
Author:
----------
Total Downloads: 4,057
First Release: Sep 29, 2023
Last Update: Jan 2, 2025
Category: ---------------
All-Time Rating:
3 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings