Skip to content
◆ TTS-STUDIO docs Discord

Plugins / ParticleForge

Placed effects

A placed effect is pinned to one spot in one world and keeps playing on its own: a glowing ring over the spawn fountain, a portal swirl on a warp pad, an aura around a shrine. No other plugin and no code needed.

Place one in game

Stand where the effect should go and run:

/pf place add <name> <effect> [pause-seconds]
/pf place add spawn-fountain quests/npc-aura
/pf place add warp-pad teleport/portal-arcano 2

Running add again with a name that already exists moves that effect to where you are standing now.

Command What it does
/pf place add <name> <effect> [pause-seconds] [options] Pin an effect where you stand
/pf place set <name> <options> Turn, move or spin a placed effect without re-placing it
/pf place move <name> Re-pin it where you stand, keeping its pose and pause
/pf place remove <name> Remove it
/pf place list Every placed effect with its world, coordinates and how it is turned

All of them need particleforge.admin (operators by default).

Turn it and move it

Every effect is built pointing up: a helix climbs, a ring lies flat, a beam rises. A placed effect can be pointed another way and shifted from the spot where it was placed. The options are key:value words, in any order, after the effect (and the pause, if you give one):

Option What it does Example
axis:<dir> Point the effect along a world axis: +x, -x, +y (as built), -y, +z, -z. Also east, west, up, down, south, north axis:+z lays a helix on its side, running south
axis:look Point it where you are looking when you run the command axis:look for a beam that shoots along your line of sight
pitch:<deg> Tilt it forward by degrees, when an axis is not enough: 90 lays it down pointing south, 180 turns it upside down pitch:45
yaw:<deg> Turn it around the vertical, counted like a player's yaw: 0 faces south, 90 west, -90 east pitch:90 yaw:45
offset:<x>,<y>,<z> Move the whole effect by blocks along the world axes, after turning it offset:0,1,0 is one block higher
nudge:<x>,<y>,<z> Add to the current offset instead of replacing it nudge:0,0.5,0 lifts it half a block more
spin:<deg/s> Keep it turning around the vertical, in degrees per second. It follows the clock, so it turns smoothly across replays and pauses spin:30 is a full turn every 12 seconds
pause:<s> The pause, as an option instead of the bare number pause:2

Pitch is applied first and yaw second, so pitch:90 plus any yaw points the effect along the horizon in that direction. The offset is always in world blocks, whatever the rotation: 0,1,0 means one block up.

/pf place add wall-ring quests/npc-aura axis:+z
/pf place add beam teleport/portal-arcano 2 axis:look offset:0,1,0
/pf place set beam pitch:90 yaw:45
/pf place set beam offset:0,2,0

set keeps the spot and everything you do not mention: set beam offset:0,2,0 leaves its rotation alone. The reply and /pf place list show the result as axis +z · spin 30°/s · offset 0 1 0.

Try it before pinning it

/pf preview <effect> [options] takes the same options and shows the result only to you, so you can find the pose first and pin it afterwards with the same words:

/pf preview teleport/portal-arcano axis:look offset:0,1,0 spin:45
/pf place add gate teleport/portal-arcano axis:look offset:0,1,0 spin:45

The turn and the move apply to every step of the effect, bundled or your own, so there is nothing to change in the effect file.

Or write them in placed.yml

Every placed effect is saved in plugins/ParticleForge/placed.yml, so it survives restarts. You can also write the file yourself, which is the way to put an effect at exact coordinates or in a world you are not standing in:

spawn-fountain:
  effect: quests/npc-aura
  world: world
  x: 0.5
  y: 64.0
  z: 0.5
  pause: 0

nether-shrine:
  effect: teleport/portal-arcano
  world: world_nether
  x: 120.5
  y: 70.0
  z: -45.5
  pause: 2
  axis: +z          # point it along +x, -x, +y, -y, +z or -z
  offset: 0 1 0     # move it by x y z blocks (here one block up)

tilted-beam:
  effect: teleport/portal-arcano
  world: world
  x: 10.5
  y: 65.0
  z: 10.5
  pitch: 45         # degrees, used when there is no axis
  yaw: 30
  spin: 30          # keep turning, degrees per second

axis, pitch, yaw, offset and spin are optional. offset takes three numbers separated by spaces or commas, or a YAML list. Save the file and run /pf reload. Entries with a missing field or an unknown effect are reported in the console; a bad axis or offset is reported too and the effect still loads, as built.

When they play

A placed effect only plays while its chunk is loaded and a player is within lod.far blocks of it (96 by default, in config.yml). An empty spawn costs nothing. Placed effects share the same budget as every other effect (budget.global-max-active-effects), so a few dozen spread around the map are fine, and hundreds in one place will start pushing each other out.

To turn, move or spin one step inside an effect rather than the whole thing, give that step a pose: block: see Writing effects. To make your own effect to place, see the same page.

Keep reading