Chat Timers
- how do I make the bot post a message every few minutes
- how do I stop timers posting into an empty chat
- how do I send a timer message to twitch only
- how do I make the same reminder sound different every time
- how do I post a timer message right now
- how do I make a timer post only in a certain game
- how do I put my discord link into a timer without retyping it everywhere
What this page is
Chat Bot → Chat Timers holds the messages the bot posts by itself — the page is headed Chat Timers, "Automatic chat messages based on time and activity". Messages live in groups: the group sets when it fires and where, the messages inside it take turns.
How to set it up
The group
- Open Chat Bot → Chat Timers and press Create Group. The form is titled Create Timer Group.
- Group Name — free text, the placeholder suggests "Social media promo". Without it saving answers "Enter a group name!".
- Interval (minutes) starts at 15 and accepts 1 to 1440. Minimum chat messages starts at 5: below that many messages the group stays quiet. The hint explains, "Activity is counted per platform — a quiet chat won't get spammed".
- Only while streaming is a tick, off by default. Its hint: "Requires the Stream Status module: without live data messages are not sent".
- Platforms — All, Twitch, YouTube, Kick. All is ticked on a new group and is exclusive: ticking a platform clears it, and clearing every platform brings it back.
- Send only when — a condition, Always by default. The section below explains it.
- Press Save, or Cancel.
- The group card carries its name, the interval, the message floor, the platforms, a live only badge when that tick is on, and the condition when there is one. The switch pauses the group; beside it are Duplicate, Edit and Delete. A duplicate is named "… (copy)" and arrives switched off. Deleting asks "Delete this timer group with all its messages?".
Posting only sometimes
Send only when holds one condition, and Always — no condition — is what a new group gets.
- Playing one of these games — a Games (comma-separated) field appears. Part of a name is enough and case does not matter, so
gtamatches "GTA V" and "GTA Online". Platforms spell the same game differently, so list every spelling —GTA, Grand Theft Auto— and any one of them matching is enough. The category is read from every platform that is live right now. - An auction is running — while the auction module has an auction live, paused or locked. The interval does not tick while the group is waiting, so the reminder goes out as soon as the auction starts rather than a quarter of an hour later.
There is no "the stream is live" here because Only while streaming above already does it, and does it per platform.
Saving a game condition with an empty games field is refused: the condition would never match and the group would be silent forever.
Links and auction rules in the text
A message is plain text, with two substitutions that are kept in one place instead of being retyped into every reminder.
{discord},{boosty}and any other name from Knowledge Base in the sidebar. Change the link there and every timer follows. Names it does not know are left as they are,{discord}, so a typo is visible rather than silent.{auction_rules}— the description written in the auction settings, the same text the viewers see.
Nothing has to be typed from memory. The book button beside the message field opens a list of everything you can drop in — the auction rules first, then every link from the Knowledge Base with its label. Pick one and it lands where the cursor was. The button is there both on the row where you add a message and while you edit an existing one.
Braces are single; double braces {{...}} still work, that was the older spelling. The substitution happens after the AI rephrasing, so the model never rewrites a link.
There are no variables like {user} or {random} here, and there cannot be: nobody asked for a timer message, so it has no sender.
The messages
- A fresh group says "No messages in this group — add the first one below." The row at the bottom of the card has the field "New message text…", an AI chip, and a plus button. Enter in the field adds the message too; an empty one is refused with "Enter the message text!".
- Messages are numbered and fire in that order. Double-click the text — or the pencil — to edit it in place; the tick saves, the cross cancels, and Enter and Escape do the same.
- TW, YT and KK beside each message pick platforms for that one message. Their hint: "Message platforms (none selected = same as group)".
- The AI chip, "Rephrase this message with AI", is set per message. It can also be pressed on the add row so a new message arrives with it on. This chip is the one paid thing on the page. Every send of that message goes through the model and is charged — on the interval and on Send now alike. Left off, chat timers cost nothing at all. Worth doing the arithmetic before switching it on: a group on the default 15-minute interval sends up to four times an hour, and the free plan gives 100 credits a month. If the AI cannot be reached, the message still goes out — in its original wording. No account, no credits left, a model above your plan, a network failure or a timeout all end the same way: the plain text is posted and the reason lands in the log console only. The settings page shows nothing.
- Send now posts that message straight away — and past every condition on the group, not just the interval. Send only when, Only while streaming and Minimum chat messages are all skipped, and so are the switches: it fires even from a group that is off and a message that is off. Only the platform choice still applies.
- Move up and Move down change the order; the switch skips a message without deleting it, and the bin asks "Delete this message?".
The AI settings
- AI Settings at the top opens Timer AI Settings — one setting for the whole page, used by every message with the AI chip on.
- Without an account the window opens with a notice at the top: AI answers are generated on the strAImer server, the account is free, and it comes with 100 credits every month. Its Sign in button opens Account directly.
- AI Model is a list. Every entry shows what one reply typically costs — "Gemini 2.5 Flash Lite (1 cr. / answer)". A model above your plan is still listed, greyed out, with the plan it needs added after a dash: "— requires the lite plan". Seeing it is the point: hiding it would answer "what do I get for the money" with nothing. Without an account the list is disabled and shows the model already saved; it reads "Sign in to choose a model" only when nothing is saved yet.
- AI System Prompt starts empty, with "Instructions for rephrasing messages…" shown in grey. Empty means "use the built-in instruction for the language the app is set to" — rephrase briefly and in a friendly tone, keep the meaning and the links, reply with only one message. Type your own to replace it, and clear the field to go back to the built-in one. It is stored empty on purpose: a copy saved into the field would have frozen one language forever, so switching the app to another one would have kept sending the model the old instruction.
What it cannot do
- No clock: a group fires by interval and chat activity, not at a set time of day or on chosen weekdays.
- The order is fixed and cyclic — messages cannot be shuffled, weighted or given one-shot runs.
- The place in the cycle is not remembered across a restart. Close the app, or switch the module off and on, and the group starts again from its first message. On short streams the tail of a long list may never reach chat at all. Each platform also keeps its own place, so Twitch and YouTube can be on different messages of the same group.
- A message is plain text for chat. Reference links and
{auction_rules}are substituted, but there is no reaction to what the chat said, no sound and no overlay. - Platforms are Twitch, YouTube and Kick; nothing else can be picked, here or per message.
- A group takes one condition, not several combined. There is no condition by viewer count and none by time of day.
- Only while streaming relies on the Stream Status module. Without it there is no live data to check.