Particles and Effects
Last updated Oct 28, 2026
Particles and Effects
Customize how each portal looks and sounds. Global defaults come from config.yml; per-portal settings override them. Version 1.0.7.
Staff how-to
- Set global defaults under
particles/performancein config (optional). - Per portal:
/st setparticle,/st setcolor(DUST),/st setcount,/st setspread,/st setinterval,/st setsound. - Or
/st manage <portal>→ Visual / Audio. - Use
/st setdirection,/st setwarmup,/st setcooldownfor facing and timing.
Global particle defaults (particles in config.yml)
| Key | Default | Effect |
|---|---|---|
particles.enabled |
true |
Master particle switch |
particles.portal.particle |
DUST |
Default portal particle |
particles.portal.count |
24 |
Fallback count when auto-fit cannot run |
particles.portal.spread |
0.45 |
Default spread |
particles.portal.interval |
8 |
Display interval (ticks) |
particles.portal.default-color |
#7C4DFF |
Default DUST color |
particles.portal.volumetric-rendering |
true |
Fill 3D portal volume |
particles.teleport.particle |
ENCHANT |
Teleport burst particle |
particles.teleport.count |
30 |
Teleport burst count |
Performance caps: performance.max-particles-per-tick (default 200), max-particles-per-portal (default 500), nearby-player-radius (default 30.0).
Particle Type
/st setparticle <portal> <particle>
Permission: st.command.setparticle
Supports any valid Minecraft particle name. Tab completion lists available types.
Popular choices:
| Particle | Look |
|---|---|
DUST |
Colored dust (default). Supports RGB via /st setcolor |
FLAME |
Fire |
SOUL_FIRE_FLAME |
Blue soul fire |
END_ROD |
Small white sparks |
PORTAL |
Purple swirl |
ENCHANT |
Enchantment symbols |
HEART |
Hearts |
HAPPY_VILLAGER |
Green sparkles |
Reset to the config default:
/st setparticle <portal> DEFAULT
DUST Color
Only applies when the portal uses the DUST particle:
/st setcolor <portal> <red> <green> <blue>
Permission: st.command.setcolor
RGB values are 0 to 255.
/st setcolor spawn 255 0 0
/st setcolor ocean 0 100 255
Particle Count
/st setcount <portal> <count>
Permission: st.command.setcount
Higher values produce denser effects. Particles distribute across the portal surface.
Particle Spread
/st setspread <portal> <tight> <wide>
Permission: st.command.setspread
- tight: minimum spread (clustered)
- wide: maximum spread (fills more volume)
tight must be less than or equal to wide.
Display Interval
/st setinterval <portal> <ticks>
Permission: st.command.setinterval
Refresh rate in server ticks (20 ticks = 1 second). Lower values look smoother but cost more CPU. Values below 5 can hurt performance on busy servers.
Volumetric Rendering
When particles.portal.volumetric-rendering is true in config, particles fill the full 3D portal volume instead of only the edges.
Since 1.0.1, rendering uses a layered pipeline with adaptive quality and visibility culling.
Teleport Sounds
/st setsound <portal> <sound> [volume] [pitch]
Permission: st.command.setsound
| Parameter | Range | Default |
|---|---|---|
| Volume | 0.0 to 2.0 |
1.0 |
| Pitch | 0.0 to 2.0 |
1.0 |
Common sounds:
| Sound | Description |
|---|---|
ENTITY_ENDERMAN_TELEPORT |
Default enderman teleport |
BLOCK_PORTAL_TRIGGER |
Nether portal trigger |
BLOCK_PORTAL_AMBIENT |
Nether portal ambient |
ENTITY_PLAYER_LEVELUP |
Level-up chime |
Special values:
/st setsound <portal> NONE
/st setsound <portal> DEFAULT
A preview plays when you set a new sound.
Exit Direction
/st setdirection <portal> <direction>
Permission: st.command.setdirection
| Direction | Effect |
|---|---|
NORTH, SOUTH, EAST, WEST |
Face that horizontal direction |
UP, DOWN |
Look up or down |
PLAYER |
Keep the player's current facing |
NONE |
Same as PLAYER |
DEFAULT |
Plugin default (preserve facing) |
Horizontal floor portals ignore direction overrides and always face UP.
Warmup and Cooldown
Warmup
/st setwarmup <portal> <seconds>
Permission: st.command.setwarmup
Player must stand still during the countdown. Moving cancels the teleport. Set 0 to disable.
Bypass permission: st.portal.bypass.warmup
Cooldown
/st setcooldown <portal> <seconds>
Permission: st.command.setcooldown
Time before the same player can use the portal again. Set 0 to disable.
Bypass permission: st.portal.bypass.cooldown
Safety Checks
/st setdisablesafecheck <portal> <true|false>
Permission: st.command.setdisablesafecheck
| Value | Behavior |
|---|---|
false |
Safety checks enabled (default) |
true |
Skip destination safety validation for this portal |
Use with care on adventure maps or scripted areas.
Next Steps
Defaults: Default config.yml · Config Reference
Still stuck? Ask about this page