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

  1. Set global defaults under particles / performance in config (optional).
  2. Per portal: /st setparticle, /st setcolor (DUST), /st setcount, /st setspread, /st setinterval, /st setsound.
  3. Or /st manage <portal> → Visual / Audio.
  4. Use /st setdirection, /st setwarmup, /st setcooldown for 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