Skip to main content
Corvus Connection

Nodes

  • entry.onChatMessage
    Entry
    Fires when a chat message is received. Binds the message text and sender.
  • entry.onChatCommand
    Entry
    Fires when a chat message is a command (prefix + word). Binds the command, its arguments, and the sender.
  • entry.onKeywordMatch
    Entry
    Fires when a chat message matches a keyword or regular expression. Binds the matched text and the sender.
  • entry.onFirstTimeChatter
    Entry
    Fires the first time a chatter sends a message this session. Binds the chatter and the message.
  • entry.onBitsInMessage
    Entry
    Fires when a chat message carries bits at or above the minimum. Binds the bits amount and the message.
  • entry.onSchedule
    Entry
    Fires on a cron schedule (e.g. every 15 minutes). Binds the fire time.
  • entry.onConnectionUp
    Connection
    Fires when a connection comes up after boot. Choose a source (or Any). Binds source/reason and gateway client identity.
  • entry.onConnectionDown
    Connection
    Fires when a connection is intentionally closed or user-disabled. Choose a source (or Any). Binds source/reason and gateway client identity.
  • entry.onConnectionLost
    Connection
    Fires when a socket connection drops and doesn't recover within the grace. Choose a source (or Any); Spotify is not offered (no socket). Binds source/reason and gateway client identity.
  • entry.onConnectionRestored
    Connection
    Fires when a lost connection auto-reconnects. Choose a source (or Any); Gateway is not offered (a reconnecting client is a fresh Up). Binds source/reason, downtime seconds, and attempt count.
  • entry.onConnectionFailed
    Connection
    Fires once per outage when a connect attempt fails. Choose a source (or Any). Binds source/reason and attempt count.
  • connection.state
    Connection
    Reads a source's live connection health via ctx.Connections. Outputs the state name, a connected flag, since-when, and (gateway) the client count.
  • flow.return
    Return
    Ends the flow.
  • data.literal.string
    Data
    A literal text value.
  • data.literal.int
    Data
    A literal integer value.
  • data.literal.bool
    Data
    A literal boolean value.
  • logic.and
    Logical
    True when both inputs are true.
  • logic.or
    Logical
    True when either input is true.
  • logic.not
    Logical
    Inverts a boolean.
  • flow.if
    Conditional
    Branches the flow based on a boolean condition.
  • flow.while
    Iteration
    Repeats the body while the condition is true.
  • action.sendChat
    Twitch
    Sends a message to chat.
  • action.reply
    Twitch
    Replies to the chat message that triggered the flow.
  • action.log
    Action
    Writes an info line to the script log (visible in the desktop).
  • platform.twitch.message
    Twitch
    Exposes the triggering chat message's text and sender details.
  • data.literal.long
    Data
    A literal 64-bit integer value.
  • text.startsWith
    Conditional
    True when the text starts with the prefix (case-insensitive).
  • text.contains
    Conditional
    True when the text contains the substring (case-insensitive).
  • compare.stringEquals
    Conditional
    True when the two text values are equal (case-insensitive).
  • compare.intEquals
    Conditional
    True when the two numbers are equal.
  • compare.intGreater
    Conditional
    True when the left number is greater than the right.
  • data.literal.char
    Primitive
    A single Unicode character constant.
  • data.literal.guid
    Primitive
    A 128-bit globally-unique identifier constant.
  • data.literal.datetime
    Primitive
    A specific point in time, parsed round-trip-invariant.
  • data.literal.float
    Primitive
    A 32-bit floating-point constant.
  • data.literal.double
    Primitive
    A 64-bit floating-point constant.
  • data.literal.decimal
    Primitive
    An exact 128-bit decimal constant — no binary rounding.
  • convert.toText
    Data
    Stringifies any value with invariant formatting (never null).
  • advanced.coalesce
    Data
    Null-coalescing: the first non-null value wins.
  • decoration.grouping
    Decoration
    A no-op decoration for tidy graphs; the compiler ignores it.
  • collection.list.build
    Collection
    A growable List<T> built from its item inputs.
  • collection.array.build
    Collection
    A fixed T[] built from its item inputs.
  • collection.set.build
    Collection
    A HashSet<T> (distinct values) built from its item inputs.
  • flow.repeat
    Iteration
    A bounded loop: do the body N times.
  • flow.for
    Iteration
    A counted loop with access to the loop index.
  • flow.foreach
    Iteration
    Walks a collection element by element.
  • flow.switch
    Conditional
    An integer or string switch with up to four cases, a default, and a 'completed' continuation.
  • flow.async
    Concurrency
    A sequential awaited scope — the simplest concurrency group.
  • flow.parallel
    Concurrency
    Fan out up to four branches with Task.WhenAll, then continue.
  • flow.threadPool
    Concurrency
    Run the body on a thread-pool thread, then continue.
  • flow.delay
    Concurrency
    Pauses the flow for a fixed, cancellable duration.
  • flow.timeout
    Concurrency
    Bounds a sub-flow with a timeout + cancellation, with an on-timeout branch.
  • flow.race
    Concurrency
    First-past-the-post over up to four branches; losers are cancelled.
  • flow.forEachParallel
    Concurrency
    Bounded parallel-foreach over a collection, failure-safe.
  • collection.dictionary.build
    Collection
    A Dictionary<K,V> zipping its keys to its values by connection order.
  • advanced.projection
    Data
    Maps each element through a fixed selector into a new list.
  • advanced.reduce
    Collection
    Sums a numeric collection — a Vector<T> stride loop over its span, with a scalar remainder.
  • entry.onStreamOnline
    Twitch
    Triggers when the channel's stream starts.
  • entry.onStreamOffline
    Twitch
    Triggers when the channel's stream ends.
  • entry.onFollow
    Twitch
    Triggers on a new follower.
  • entry.onSubscribe
    Twitch
    Triggers on a subscription; tier is 1, 2, or 3.
  • entry.onGiftSub
    Twitch
    Triggers on a gifted-sub bundle; total is the gift count.
  • entry.onCheer
    Twitch
    Triggers on a bits cheer.
  • entry.onRaid
    Twitch
    Triggers on an incoming raid.
  • entry.onChannelPointRedeem
    Twitch
    Triggers on a channel-point reward redemption.
  • entry.onHypeTrainBegin
    Twitch
    Triggers when a hype train starts.
  • entry.onHypeTrainProgress
    Twitch
    Triggers when a hype train advances.
  • entry.onHypeTrainEnd
    Twitch
    Triggers when a hype train ends.
  • entry.onPollBegin
    Twitch
    Triggers when a poll starts.
  • entry.onPollEnd
    Twitch
    Triggers when a poll ends.
  • entry.onPredictionBegin
    Twitch
    Triggers when a prediction starts.
  • entry.onPredictionLock
    Twitch
    Triggers when a prediction locks.
  • entry.onPredictionEnd
    Twitch
    Triggers when a prediction resolves.
  • entry.onBan
    Twitch
    Triggers on a ban or timeout.
  • entry.onShoutoutCreated
    Twitch
    Triggers when this channel sends a shoutout.
  • entry.onShoutoutReceived
    Twitch
    Triggers when this channel receives a shoutout.
  • entry.onRaidStarted
    Twitch
    Triggers when this channel starts an outgoing raid.
  • twitch.getFollower
    Twitch
    Awaits a Helix follower lookup; binds isFollowing / displayName / followedAt.
  • twitch.getStream
    Twitch
    Awaits a Helix stream lookup; binds isLive / title / startedAt.
  • twitch.startRaid
    Twitch
    Starts an outgoing raid to the target channel id.
  • twitch.cancelRaid
    Twitch
    Cancels the pending outgoing raid.
  • twitch.listTeams
    Twitch
    Awaits the teams lookup; binds teamIds / teamNames / teamCount.
  • twitch.listTeamMembers
    Twitch
    Awaits the team roster; binds memberIds / memberLogins / memberCount / liveCount.
  • twitch.filterTeamMembers
    Twitch
    Awaits the live-only roster; binds liveMemberIds / liveMemberLogins / liveCount.
  • spotify.play
    Spotify
    Resumes playback on the active device.
  • spotify.pause
    Spotify
    Pauses playback on the active device.
  • spotify.next
    Spotify
    Skips to the next track.
  • spotify.previous
    Spotify
    Skips to the previous track.
  • spotify.restart
    Spotify
    Seeks the current track back to 0.
  • spotify.setRepeat
    Spotify
    Sets repeat to off / track / context.
  • spotify.setShuffle
    Spotify
    Turns shuffle on or off from a boolean input.
  • spotify.setVolume
    Spotify
    Sets volume from a 0–100 number input (clamped).
  • spotify.playPlaylist
    Spotify
    Plays the selected playlist/album by its Spotify URI.
  • spotify.nowPlaying
    Spotify
    Awaits the now-playing lookup; binds trackTitle / artist / isPlaying / progressMs / durationMs.
  • entry.onStreamDeckButtonPress
    StreamDeck
    Triggers on a Stream Deck keypad press; wire 'context' into a Stream Deck action to target the same key.
  • streamdeck.setTitle
    StreamDeck
    Sets a key's title text from a string input.
  • streamdeck.setImage
    StreamDeck
    Sets a key's image from a base64 data-URI input.
  • streamdeck.setState
    StreamDeck
    Sets a multi-state key's state index from a number input.
  • streamdeck.showOk
    StreamDeck
    Flashes the green OK confirmation on a key.
  • tiltify.campaign
    Tiltify
    Awaits the campaign lookup; binds name / amountRaised / goal / currency / goalPercent.
  • entry.onDonation
    Tiltify
    Triggers on a Tiltify donation; binds donor / amount / currency / message / occurredAt.
  • entry.onMilestoneReached
    Tiltify
    Triggers when a fundraising goal is reached; binds milestoneName / milestoneAmount / currency / occurredAt.
  • discord.sendMessage
    Discord
    Posts the message text to the chosen webhook destination (mentions suppressed).
  • discord.sendEmbed
    Discord
    Posts a rich embed (title/description/url/color) to the chosen webhook destination.
  • entry.onObsSceneChanged
    Obs
    Triggers on a program-scene change; binds sceneName / occurredAt.
  • entry.onStreamStarted
    Obs
    Triggers when OBS starts streaming; binds occurredAt.
  • entry.onObsRecordStateChanged
    Obs
    Triggers on a record start/stop; binds isRecording / state.
  • entry.onObsSourceVisibilityChanged
    Obs
    Triggers on a source visibility toggle; binds sceneName / sceneItemId / isVisible.
  • entry.onObsFilterChanged
    Obs
    Triggers on a filter enable/disable; binds sourceName / filterName / isEnabled.
  • entry.onCaption
    Entry
    Triggers on a final caption line; binds text. Optional keyword filter.
  • entry.onSpotifyTrackChanged
    Spotify
    Triggers on a now-playing track change; binds title / artist / durationMs.
  • entry.onSpotifyPlaybackChanged
    Spotify
    Triggers on a playback start/pause; binds isPlaying.
  • obs.getCurrentScene
    Obs
    Awaits the current-scene lookup; binds sceneName.
  • obs.isStreaming
    Obs
    Awaits the streaming-status lookup; binds isStreaming.
  • obs.setScene
    Obs
    Switches the program scene to the named scene.
  • obs.setSourceVisibility
    Obs
    Shows or hides a source in a scene.
  • obs.setText
    Obs
    Sets a text source's text from a string input.
  • obs.startStream
    Obs
    Starts the streaming output.
  • obs.stopStream
    Obs
    Stops the streaming output.
  • obs.startRecord
    Obs
    Starts the recording output.
  • obs.stopRecord
    Obs
    Stops the recording output.
  • audio.playSfx
    Audio
    Plays the selected sound-bank clip on the SFX channel.
  • audio.speak
    Audio
    Speaks the input text using the default TTS voice.
  • audio.stop
    Audio
    Stops audio on the chosen channel (default: all).
  • audio.setChannelVolume
    Audio
    Sets the chosen channel's volume from a 0–1 number.
  • message.renderTemplate
    Action
    Renders the selected template against the trigger context; binds 'text'.