Skip to content

Automatic Playback

Open Studio with /frameui editor, choose an effect and open Events. Under When to play, select any combination of Join, Teleport and World change. Use Plugin events for an optional integration. Import or save the design to apply the selection.

Leaving every event unchecked makes a design manual-only. Editing a draft changes its preview immediately; it does not change the server until imported or saved.

Add play-on to a custom effect file:

play-on: ['join', 'world-change']

Use a filename and matching ID such as lobby-arrival.yml / id: 'lobby-arrival'. Keep the effect’s template set to a valid animation ID. Run /frameui reload after manual changes.

Per-effect play-on bindings work independently of the legacy loading.on-join and loading.on-teleport switches. You can leave those switches off when using explicit bindings. command cannot be an automatic binding.

For each request, FrameUI finds matching enabled effects, checks both global and per-effect eligibility, and applies cooldowns. The highest eligible priority wins. If multiple candidates have that priority, their positive weights determine the random choice.

enabled: true
priority: 10
weight: 3
play-on: ['join']
filters:
worlds:
include: ['lobby']
cooldown-ticks: 200

This candidate is eligible in lobby and has a ten-second per-player effect cooldown. It competes with other eligible join candidates; a higher-priority effect can still win. A cooldown starts when the screen opens, not while the pack is pending.

Plugin travel events must correspond to a real, successful local player teleport. A request alone, a cancelled teleport or a pending TPA does not open a travel screen. One effect plays per teleport.

For proxy transfers, assign a Join effect on the destination server. A native addon event on one server does not render a screen on another server.

See Plugin Integrations for exact event IDs and destination filters.

Existing setups can continue using the global pools:

loading:
on-join: true
on-teleport: false
teleport-distance: 8
automatic:
join-effects: ['aurora', 'nebula']
teleport-effects: []
world-change-effects: []

An empty pool disables that legacy pool. ['*'] considers all eligible effects and must be used alone. Named pool entries must reference existing IDs. on-teleport also controls legacy world-change playback. The legacy distance threshold does not replace the filters used by explicit bindings.