Skip to content

Event Configs

Joprebond edited this page Sep 30, 2026 · 3 revisions

Event Configs

Source package: com.jopre.streamlink.config.events.types

An Event Config is one entry in a provider's configured event list — it says "when this Twitch (or StreamLink-native) event fires, run these named actions." Each concrete class below extends com.jopre.streamlink.config.events.BaseEventConfig and represents one JSON object. Event Configs for a given provider are grouped by ProviderEventList (provider + eventConfigList), and one or more providers are grouped by EventConfigList (providerEvents).

Each entry in an Event Config's actions list is presumed to reference an Action by name/id (see Action Items for what an Action ultimately runs, and Conditions for how an Action can be gated).

The enum referenced by these classes is documented separately on the Event Config Enums page and linked from the relevant field below.

How an Event Config is deserialized

EventConfigDeserializer reads the event field of each JSON object, maps it to an EventConfigType constant, and deserializes the object into the matching class listed in the table below.

event JSON value Event Config Class
channel_point_claim ChannelPointRedeemConfig
channel_follow ChannelFollowEventConfig
channel_subscription ChannelSubscribeEventConfig
channel_raid ChannelRaidEventConfig
channel_chat ChannelChatConfig
channel_bits ChannelBitsConfig
hype_train_start ChannelHypeTrainBeginConfig
hype_train_end ChannelHypeTrainEndConfig
hype_train_progress ChannelHypeTrainProgressConfig
channel_subscription_gift ChannelGiftSubConfig
user_login StreamLinkUserAction
user_logout none — see note on the enums page

Note: an unrecognized event value throws an IllegalArgumentException. A recognized value with no matching case (currently only user_logout) instead falls through to null — see the caution under EventConfigType on the enums page.

Common Fields (inherited from BaseEventConfig)

Every Event Config below inherits these two fields from the BaseEventConfig base class, in addition to whatever fields are listed in its own section.

Field JSON Key Data Type Description
event event EventConfigType The Type of Event that occurred
actions actions List of String What actions to perform when this event occurs

ChannelBitsConfig

This Configuration Element is to define what actions to occur when bits are sent in the broad caster's channel

This config adds no fields beyond the common fields.

Sample JSON

{
  "event": "channel_bits",
  "actions": ["celebrate-bits-cheer"]
}

ChannelChatConfig

This Configuration element is to define what happens when a chat message comes in the broad caster's channel

This config adds no fields beyond the common fields.

Sample JSON

{
  "event": "channel_chat",
  "actions": ["handle-chat-command"]
}

ChannelFollowEventConfig

This configuration element is to define what happens when a follow event occurs

This config adds no fields beyond the common fields.

Sample JSON

{
  "event": "channel_follow",
  "actions": ["announce-new-follower"]
}

ChannelGiftSubConfig

This Element is to define what happens when a gift subscription event occurs

This config adds no fields beyond the common fields.

Sample JSON

{
  "event": "channel_subscription_gift",
  "actions": ["announce-gift-sub"]
}

ChannelHypeTrainBeginConfig

This configuration element defines what actions occur when a hype train begins

This config adds no fields beyond the common fields.

Sample JSON

{
  "event": "hype_train_start",
  "actions": ["hype-train-start-effects"]
}

ChannelHypeTrainEndConfig

This configuration element defines what actions occur when a hype train ends

This config adds no fields beyond the common fields.

Sample JSON

{
  "event": "hype_train_end",
  "actions": ["hype-train-end-effects"]
}

ChannelHypeTrainProgressConfig

This configuration element defines what actions occur when the completion percentage goes up in a hype train level

This config adds no fields beyond the common fields.

Sample JSON

{
  "event": "hype_train_progress",
  "actions": ["hype-train-progress-effects"]
}

ChannelPointRedeemConfig

This Configuraton Element defines what occurs when a channel point reward is triggered

Field JSON Key Data Type Description
rewardIdent rewardIdent String The ID of the custom reward to bind to

Sample JSON

{
  "event": "channel_point_claim",
  "actions": ["spawn-mob-reward"],
  "rewardIdent": "spawn-zombie-reward-id"
}

ChannelRaidConfig

This configuration Element contains configuration information for when a raid occurs

This config adds no fields beyond the common fields.

Sample JSON

{
  "event": "channel_raid",
  "actions": ["announce-raid"]
}

ChannelRaidEventConfig

This Configuration Element defines what actions to execute when a raid occurs

Sample JSON

{
  "event": "channel_raid",
  "actions": ["announce-raid"]
}

ChannelSubscribeEventConfig

This configuration Element will define what happens when a user subscribes to the channel

This config adds no fields beyond the common fields.

Sample JSON

{
  "event": "channel_subscription",
  "actions": ["announce-subscriber"]
}

StreamLinkUserAction

This Configuration Element defines what happens when the user logs in

This config adds no fields beyond the common fields. Unlike the other classes on this page, this one models a StreamLink-native event (user_login) rather than a Twitch EventSub event — see also the note about STREAM_LINK_USER_LOGOUT having no corresponding class, on the Event Config Enums page.

Sample JSON

{
  "event": "user_login",
  "actions": ["welcome-back-message"]
}

Clone this wiki locally