Cooldowns
Give several triggers and macros one shared cooldown, for everyone or per viewer, and have chat told when a command is cooling down.
A cooldown group is a named cooldown that triggers and macros share.
Give !lurk, !hug and !hydrate the group chatty and any of them cools
all three down. A group can apply to everyone at once or to each viewer
separately, and it can reply in chat when it turns a command away.
A trigger’s own Cooldown and User cooldown settings stay as they are; groups are for cooldowns you want to share, or to use on a macro. See Triggers.
Cooldown groups are built in; they need no connection.
The Cooldowns page
Section titled “The Cooldowns page”Open Cooldowns in the sidebar (under Automate). Each group is a card showing:
- its label, a live Ready or time left with a meter, and a copy chip for
{cooldown.<name>}; - for a per-user group, how many viewers are waiting, with each one’s time left and a button to make that viewer ready again;
- chips for its duration, its scope, and Replies in chat when it has a message;
- buttons: Reset (Reset all for a per-user group), which makes the group ready at once, Edit and Delete.
Cooldown group settings
Section titled “Cooldown group settings”| Setting | What it does |
|---|---|
| Name | The group’s key, used in {cooldown.<name>} and when you pick it on a trigger or macro. Lowercase letters, digits, - and _, up to 40 characters. It can’t change after you create the group; to rename it for display, change the label. |
| Label | The name people see, such as Chat commands. |
| Description | A note for yourself. |
| Duration | How long the group stays cooling down after something that uses it runs, such as 30s or 5m. From 1 second to 7 days. |
| Who it applies to | Everyone: one cooldown for all; once anyone uses it, it’s blocked for all. Each viewer: each viewer has their own, so one viewer using it doesn’t block the others. |
| Message | Optional. What to reply in chat when the group turns a chat command away. See The reply in chat. |
You can have up to 200 groups. Cooldowns survive a restart: a group that is still cooling down when CroStream closes is still cooling down when it opens. Time that passed while it was closed counts.
Use a group on a trigger or a macro
Section titled “Use a group on a trigger or a macro”In the trigger editor, under When, and in the macro editor, add groups under Cooldown groups. Pick as many as you like, up to 10. The trigger or macro then:
- runs only when every group it names is ready;
- starts all of them when it runs, whether the macro then succeeds or fails.
If any group is still cooling down, nothing runs and no group starts. The
Activity feed shows the attempt as cooling down, with the group
and the time left, such as chatty: 12s.
A trigger uses its own groups plus the groups of the macro it runs, each once. Put a group on a macro when you want it to apply however the macro starts: from several triggers, or from a button.
A deleted group counts as no cooldown: triggers and macros that still name it just run.
Your own runs are never refused
Section titled “Your own runs are never refused”You, the broadcaster, are never turned away by a group, but your use still starts it, so everyone else waits after you. That covers:
- you typing a command in your own chat;
- a macro started from the Macros page, a button, a pop-out or the API.
This differs from a trigger’s own Cooldown, which your own uses don’t start. The Test button on a trigger neither checks nor starts groups. A run held back by a flag starts nothing either.
Events with no viewer
Section titled “Events with no viewer”A per-viewer group needs a viewer to key the cooldown on. For an event no viewer causes (a timer, a schedule, the stream going live) a per-viewer group doesn’t apply. Use an Everyone group for those.
The reply in chat
Section titled “The reply in chat”When a group turns away a chat command and has a Message, CroStream
replies in chat with it, as a reply to the command. The message can use
{cooldown.<name>} for the time left (12s) and the command’s own variables
such as {user}:
CroStream @{user}, !lurk is cooling down (12s).
For example, the message {user}, !lurk is cooling down ({cooldown.chatty}).
- It replies once per cooldown: once per viewer for a per-viewer group, and once in all for an everyone group. A viewer spamming the command doesn’t flood chat.
- Other events have no chat to reply to, so they get no message.
- A Test doesn’t send one.
Use a group in a macro
Section titled “Use a group in a macro”Show it in any text
Section titled “Show it in any text”Write {cooldown.<name>} in any text. It’s the time an Everyone group has
left, such as 12s, or ready. A per-viewer group reads ready there,
except in the blocked reply above, where it’s that viewer’s time left.
Cooldown actions
Section titled “Cooldown actions”The Cooldowns group of the palette has eight actions:
| Action | What it does | Outputs |
|---|---|---|
| Check a cooldown | Reads whether a group is ready, for an If step. It doesn’t start it. | {ready}, {remaining}, {remaining_text} |
| Start a cooldown | Starts a group, or starts it over when it’s cooling down. Give a Duration to override the group’s. | {ready}, {remaining}, {remaining_text} |
| Reset a cooldown | Makes a group ready at once. | {ready}, {remaining}, {remaining_text} |
| Read a cooldown group | Reads its settings and state. | {label}, {duration}, {duration_text}, {scope}, {ready}, {remaining}, {remaining_text} |
| Create a cooldown group | Makes a group. If the name exists, it fails or keeps the existing one. | {name} |
| Change a cooldown group | Edits the label, description, duration or message. | {duration} |
| Delete a cooldown group | Removes it. | none |
| List cooldown groups | Lists every group. | {names}, {count} |
Check, Start and Reset take a User for per-viewer groups, such
as {user_login}; empty means whoever caused the run. Full details are in the
Actions reference.
React to a cooldown
Section titled “React to a cooldown”| Event | Fires when |
|---|---|
| Cooldown ready | An Everyone group comes off cooldown: its time ran out, or it was reset. Pick the cause: any, expired or reset. |
| Cooldown started | A group starts. It doesn’t appear in the activity feed. |
| Cooldown group created and Cooldown group deleted | A group is made or removed. |
See the Events reference.
Check a group in a condition
Section titled “Check a group in a condition”An If step can check the live values Cooldown ready and Cooldown time
left. For a per-viewer group write the argument as group|viewer, such as
hug|{user_login}. See Conditions.
Cooldowns in overlays
Section titled “Cooldowns in overlays”Overlays and custom widgets read a group as the data key cooldown.<name>,
which changes only when the group starts, ends or is reset, so a widget counts
down by itself. See
Overlay data.
Free plan
Section titled “Free plan”The free plan has 1 cooldown group. Subscribers to Haliebug13 on Twitch have unlimited groups.
If you’re over the limit, for example after a subscription lapses, your groups keep working: triggers and macros still use them and you can reset them. Editing a group’s settings and adding groups need a subscription. Deleting is always allowed.
Related
Section titled “Related”- Triggers: the per-trigger Cooldown and User cooldown.
- Macros, Variables and Schedules.
- Overlay data, Config file and API.