-
-
Notifications
You must be signed in to change notification settings - Fork 33
Advanced Alert
The Advanced Alert replaces the linear trigger → action model with a visual node graph editor. Use it when you need logic that a simple alert cannot express: multiple triggers, conditional branching, delays with loops, persistent counters, or combining live game data with your alert conditions.
📷 Screenshot needed: The graph editor canvas showing the default welcome note and an empty canvas ready for nodes
| Situation | Use instead |
|---|---|
| One trigger, one or more actions, no conditions | Regular alert |
| Multiple different triggers that all do the same thing | Multiple regular alerts |
| One trigger, conditional action (only fire if X is also true) | Advanced Alert |
| Repeating timer with optional stop condition | Advanced Alert |
| Counter that gates firing (e.g. fire after the 3rd occurrence) | Advanced Alert |
| Multiple triggers that feed into shared logic | Advanced Alert |
Click the + icon in the Watchdog panel and select Advanced Alert. The node graph editor opens automatically. You can reopen it at any time by clicking the alert in the list.
| Action | How |
|---|---|
| Zoom | Scroll wheel |
| Pan | Click and drag on empty canvas |
| Add a node | Right-click on empty canvas → pick from the menu, or drag and drop a connection to show a filtered list |
| Move a node | Drag its title bar |
| Connect ports | Click and drag from an output port to an input port |
| Delete a connection | Create the connection again |
| Delete a node | Click the X |
📷 Screenshot needed: The right-click context menu on the canvas showing node categories and node types within each category
Nodes communicate through typed ports on their left (inputs) and right (outputs) sides.
Execution ports (triangular, orange): Control when things happen. An execution signal flows from one node to the next along exec connections. Think of these as the "do this, then do that" wire.
Data ports (circular): Control what values are passed between nodes. Each data port has a type:
| Color | Type |
|---|---|
| Cyan | Number |
| Green | Boolean (true/false) |
| Orange/yellow | String (text) |
| Purple | String array (capture groups) |
| Light blue | WorldPoint (map coordinate) |
| Teal | Inventory |
A port can only connect to another port of the same type. Hovering over a port shows its type name.
📷 Screenshot needed: Close-up of several nodes showing triangular exec ports and circular data ports in different colors with type labels visible
Wraps any standard alert type (Game Message, Stat Changed, Inventory, etc.). When the trigger condition fires, this node sends an exec signal and optionally outputs the Capture Groups (the values matched by glob/regex patterns).
Outputs:
-
Exec— fires when the trigger condition is met -
Capture Groups— the matched values as a String array ($1,$2, etc.) -
Enabled— a Boolean indicating whether the trigger is currently enabled (readable by logic nodes)
You can have multiple Trigger nodes in a single Advanced Alert — useful for combining different event types into one graph.
📷 Screenshot needed: A simple graph: Game Message Trigger node connected via Exec to a Sound Effect Action node
Wraps any standard action type (Sound Effect, Screen Flash, TTS, etc.). When an exec signal reaches it, it fires the action.
Inputs:
-
Exec— fires the action when received -
Execout — passes the signal onward after the action fires (for chaining) -
Enabled— optional Boolean to override the action's enabled state -
Fire When Focused,Fire When AFK,Fire When AFK For Seconds— override the corresponding Common Settings values dynamically
Routes an exec signal to one of two outputs based on a Boolean condition.
Inputs:
-
Exec— triggers the branch evaluation -
Condition— a Boolean (true/false)
Outputs:
-
True— exec signal if Condition is true -
False— exec signal if Condition is false
Use Branch as the core of any conditional logic: "fire Alert A if X, fire Alert B if not X."
📷 Screenshot needed: A Branch node receiving a Boolean from an Equality node, with True output going to one Action node and False output going to another
Waits a configured number of milliseconds before passing the exec signal forward.
Inputs:
-
Exec— starts the delay -
Duration— optional Number input to set the delay duration dynamically (overrides the static value)
Outputs:
-
Exec— fires after the delay elapses
Fires an exec signal repeatedly at a fixed interval. Useful for polling logic or periodic reminders.
Inputs:
-
Exec(start) — starts the timer -
Reset— cancels the current timer cycle
Outputs:
-
Exec— fires once per interval
Configure the interval duration in the node's settings field.
📷 Screenshot needed: A Timer node wired to an Action node, showing a looping arrow or annotation indicating repeating execution
Counts how many exec signals pass through it. Unlike the Counter action, this node is used for flow control — you can read its count value and use it in logic.
Inputs:
-
Exec— increments the count and passes execution forward -
Reset— zeroes the counter without firing the output
Outputs:
-
Exec— fires after every increment (can be gated by connecting to Branch) -
Count— a Number output of the current count value
The count persists across sessions (saved with the alert).
Compares two numeric values and outputs a Boolean.
Inputs:
-
A,B— Number values to compare
Outputs:
-
Result— Boolean
Configure the comparator operator (==, !=, <, >, <=, >=) in the node's settings.
Combines two Boolean values with a logical operator.
Inputs:
-
A,B— Boolean values
Outputs:
-
Result— Boolean
Configure AND or OR in the node's settings.
Reads a live Inventory value and evaluates a condition against it.
Inputs:
-
Inventory— an Inventory value (connect from an Inventory constant node)
Outputs:
-
Result— Boolean
Configure the check type (Full, Empty, Slots, Item Count, Item Change) and threshold in the node's settings. This is the graph equivalent of the Inventory Alert trigger, but usable as a condition mid-graph.
Compares two WorldPoint values and outputs true if they are within a configured distance.
Inputs:
-
A,B— WorldPoint values
Outputs:
-
Result— Boolean
Configure the distance threshold and Cardinal Only option in the node's settings.
A static true/false constant. Connect its output to any Boolean input.
A static numeric constant. Enter the value in the node. Connect its output to any Number input.
A fixed WorldPoint (X, Y, Plane). Set the coordinate in the node. Use as input to Location Compare or Shortest Path actions.
Outputs a live snapshot of your current inventory state, updated every game tick. Connect to Inventory Check for conditional logic.
Outputs a Boolean indicating whether a named RuneLite plugin is currently enabled.
Basic arithmetic on two Number inputs. Output is a Number.
- Min: outputs the smaller of two Numbers
- Max: outputs the larger of two Numbers
- Clamp: constrains a Number between a minimum and maximum value
Rounding operations on a single Number input.
A text annotation node. No ports. Write anything you want — document your graph, leave instructions, or mark sections. Has no effect on execution.
📷 Screenshot needed: A Note node with multi-line text explaining the purpose of a graph section, positioned near related nodes
Shows the current value of any connected input port in real time as the graph runs. Useful for debugging — you can see numbers, booleans, and strings update live.
Converts any value to its text representation. Output is a String that can be connected to action message fields.
Goal: Play a sound only after the idle timer notification has fired three times in a row (ignoring the first two).
📷 Screenshot needed: The completed graph for this example: Notification Fired trigger → Counter → Equality node → Branch → Sound Effect action on the True output
- Right-click the canvas and add a Trigger node. Configure it as a Notification Fired trigger with the pattern
You have been idle*. - Connect the Trigger's Exec output to a Counter node's Exec input.
- Connect the Counter's Count output to an Equality node's A input. Set B =
3and comparator ===. - Connect the Counter's Exec output to a Branch node's Exec input.
- Connect the Equality's Result output to the Branch's Condition input.
- Add a Sound Effect Action node. Connect Branch's True output to the Action's Exec input.
- To reset the counter when you become active again: add a second Trigger (Game Message, pattern =
Welcome to Old School RuneLiteor another activity message) and connect its Exec to the Counter's Reset input.
Now the sound fires only on the third consecutive idle notification. The first two are counted but do not trigger the sound.
Click the Convert to Advanced Alert in any regular alert or group. This creates a new Advanced Alert with:
- One Trigger node per source alert (each configured with the original trigger settings)
- Action nodes mirroring all the original actions, wired in sequence
The original alert is preserved and not deleted. Once you are satisfied with the converted graph, you can delete the original.
📷 Screenshot needed: "Convert to Advanced Alert" button on a regular alert
📷 Screenshot needed: The resulting graph after conversion, showing trigger nodes on the left fanning into a chain of action nodes
Getting Started
Alert Types
- All Alerts
- Game Message
- Player Chat Message
- Overhead Text
- Stat Changed
- XP Drop
- Sound Fired
- Spawned Object
- Inventory
- Location
- Notification Fired
- Alert Group
- Advanced Alert
Action Types