Skip to content
Discord Download

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.

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.
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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.