Actions Overview
Actions are what make your Ripple interactive. Every clickable button, every sound effect, every scene change — it all runs through the action system.
The core idea is simple: when something happens (a trigger), do something (an action), optionally only if a condition is met.
How It Works
Every element in your Ripple can have actions attached to it. An action has three parts:
- Trigger — what causes the action to fire (e.g. a click, a hover, a timer)
- Action — what happens when it fires (e.g. play a sound, switch scene, show a layer)
- Condition (optional) — a rule that must be true for the action to execute
For example: "When the user clicks this button, switch to Scene 2, but only if $quizComplete is true."
Adding Actions to Elements
Select any element in the editor and open the Actions panel on the right. From there you can:
- Choose a trigger (click, hover, activation, etc.)
- Choose an action type (navigate, sound, scene switch, etc.)
- Optionally set a condition
You can attach multiple actions to the same element. Each action has its own trigger, so a single button could play a sound on hover and switch scenes on click.
Action Types
Rippily supports 13 action types, grouped by purpose:
Navigation
- Go To (Navigate) — open a URL or scroll to a location
- Switch Scene — move to another scene
- Apply Snapshot — apply a saved snapshot layout
Effects
- Visual Effect — scale, glow, shake, spin, and more
- Sound — play, pause, stop, or toggle audio
- Change State — switch an element's visual state
- Move Element — animate an element to a new position
- Celebrate — trigger confetti or emoji particle effects
Visibility
- Layer — show, hide, or toggle layer visibility
Data
- Set Variable — modify a variable value (add, subtract, toggle, etc.)
- Reset — restore runtime state (variables, fired actions, scene, elements, sounds)
Breakout
- Breakout — enable, disable, or toggle breakout zones
Drag & Drop
- Clear Drop Zone — reset or remove items from drop zones
Conditions
Any action can have a condition that gates its execution. Conditions compare a variable to a value:
$score > 5— only fire if score is greater than 5$quizComplete == true— only fire if the quiz is done$attempts < 3— only fire if fewer than 3 attempts
You can combine multiple conditions with && (all must be true) or || (any must be true). See Variables and Expressions for the full syntax.
Action Chaining
Actions can be chained together using the nextAction property. When one action completes, the next one starts automatically. This lets you create sequences:
- Play a sound effect
- Then switch to the next scene
- Then show a celebration
Each action in the chain can have its own delay, so you can time things precisely.
Delay
Every action supports a delay in milliseconds. This pauses before executing the action. Combined with chaining, delays let you orchestrate complex timed sequences — like a countdown that plays a sound, waits 2 seconds, then reveals the answer.
Fire Once
The oneTimeOnly flag ensures an action fires only once per session. After it fires the first time, it won't execute again until the page is refreshed. This is useful for:
- Welcome messages that should only appear once
- One-time sound effects
- Introductory animations
Scope: Local vs Global
Actions can be local (only affects the person who triggered it) or global (affects everyone in the Ripple).
- Local (default): The user clicks a button and only they see the result. Other participants are unaffected.
- Global: The user clicks a button and everyone sees the result. A scene switch moves everyone to the new scene, a sound plays for everyone, a variable changes for everyone.
Some actions are always local (navigate opens a URL in your browser, visual effects are local feedback). Some are always global (breakout actions affect everyone by nature). Most give you the choice.
Global actions that could disrupt the experience (scene switch, layer visibility, state changes) require moderator or higher permissions. Actions that are safe for collaboration (variables, sounds, celebrations, element movement, clearing drop zones) can be triggered globally by any participant.
What's Next?
- Triggers — the full list of when actions can fire
- States System — how elements change appearance
- Variables and Expressions — data-driven interactivity