Setup
Create the ParticlePacks folder
Create the directory
./plugins/Dimensions/ParticlePacks/ if it does not already exist.Create your particle pack file
Inside
ParticlePacks/, create a new .yml file — for example, circle.yml. This file contains your particle script.Particle Pack Structure
A particle pack has two main sections: the start block (initialization) and the body (particle behavior).The start Block
The start block runs once when the pack loads. Use it to declare variables and set the execution frequency.
The default frequency is
20 ticks (once per second). You only need to include frequency if you want a different interval. Variables must be numbers — integers or decimals.The Body: portal and tile
The body splits into two sections depending on the reference point for your particles:
| Section | Reference Point |
|---|---|
portal | The center of the portal |
tile | Each individual portal block |
| Keyword | Behaviour |
|---|---|
play | Runs its commands once per frequency tick |
for | Runs its commands in a loop, similar to a C-style for loop |
For Loop Syntax
Afor loop key has three parts separated by ;:
- Initializer — sets the starting value of the counter variable (
i=0) - Condition — the loop runs while this is true (
i<amount) - Increment — applied after each iteration (
i=i+1)
Available Commands
Use these commands insideplay or run blocks:
| Command | Description |
|---|---|
debug <text> | Prints a variable value to the console. Does not perform operations — save results to a variable first. |
play <type> <x> <y> <z> <count> <offsetX> <offsetY> <offsetZ> [DustOptions(Color(R,G,B),size)] | Spawns particles. DustOptions only applies to REDSTONE particles. |
Built-In Variables
Dimensions automatically provides these variables in every pack. Their values depend on which section they are used in:| Variable | Description |
|---|---|
locX | X coordinate of the reference point (portal center or individual block) |
locY | Y coordinate of the reference point |
locZ | Z coordinate of the reference point |
portalHeight | Height of the portal in blocks |
portalWidth | Width of the portal in blocks |
Math Support
Variable expressions support standard math operations as well as trigonometric functions. You can usesin(), cos(), and other expressions directly in variable assignments:
Example: Circle Particle Pack
This complete example creates a glowing green circle around the portal center every second.circle.yml in your ParticlePacks/ folder, then add 'circle' to the portal’s Particles list.
Particles Editor
The Particles Editor is a browser-based visual tool that simulates particle packs so you can preview effects before deploying them to your server. Build your pack by clicking through an Explorer panel rather than writing raw YAML, then export the result and drop it in yourParticlePacks/ folder.
Editor Workflow
Add start variables
Click start in the Explorer panel. Select Variable in the Assets window, then click Add. Rename each
tempVariable entry and set its value, then click Save.Add a for loop
Click portal → for in the Explorer, then select For loop from Assets. Configure the initializer, condition, and increment fields.
Add commands to the runnable
Inside the loop, add Variable entries for computed values (angle, x, z) and a Particle entry for the
play command.