The first hour decides
Mass Reactions
Reactions that arrive like an audience instead of a switch being flipped — every setting on the page, and the numbers behind it.
In this guide
01What this page is
Mass Reactions places reactions on new posts, or on the comments under them, using a pool of your accounts. It watches for posts as they appear and plans a fan-out for each one.
By default it aims at comments rather than at the post. That is the product intent: a post with a lot of reactions is worth less than a post whose comment section looks alive.
Dry run is on when you first arrive, and it stays on until you switch it off. In dry run the module does everything except the send — it catches posts, plans which account reacts with what and when, and writes all of it down. So the first thing a new owner gets is an inspectable plan rather than live traffic, and the honest first step on this page is to run it that way for a while and read the result.
02Map of the page
Nine regions, with a jump-nav across the top in this order.
- 01ControlStart and Stop, the Dry run switch, six counters, and one row per account with what it has placed today.
- 02Reactions PoolTwo columns of accounts, the same shape and the same one-module-at-a-time rule as the other pools.
- 03StatsAttempts, successful, unsuccessful and the rate between them.
- 04ChannelsThe target channels, each tile showing whether its comments can actually be reacted to, plus the paste box and the discussion-group check.
- 05What to react toComments or channel posts, and how many comments under each post.
- 06EmojiWhich reactions accounts place, in what order, and which of them every probed target accepts.
- 07LimitsPer-account rate caps, the chance a message is covered at all, and the share of the pool that covers it.
- 08PacingHow soon the first reaction lands, how the rest are spread behind it, the arrival curve, and the floodwait policy.
- 09JoiningOne switch that explains why there is nothing to configure.
03Targets
Targets are their own list, deliberately not the channel list from Neurocommenting. That one means channels you comment on; these are usually your own channels, and overloading one list with both would be confusing.
IllustrationNot the live panel — nothing here is connected: no state, no saving, no requests. Click a control to read what it does.
AddChannels
- What it does
- Adds channels from the paste box. One per line, as @channel or a t.me link, and the box says how many it recognised before you press it.
- What happens next
- A discussion check runs automatically on what you just added, so a channel that cannot be reacted to in comment mode says so immediately rather than at the first failed send.
Check discussion groupsChannels
- What it does
- Asks each target for its linked discussion group and what reactions that group allows.
- The three answers
- Not checked yet — never probed. No comments — the channel has no linked discussion group, so comment mode has nothing to aim at. Reactions off — the group accepts no reactions at all, and this is a setting on the group, not on the channel.
- Why it matters before starting
- Both failing states are permanent until someone changes the group. Sending into them is a guaranteed failure per attempt.
- What else it collects
- The list of reactions the group actually allows, which is what the Emoji section checks your set against.
A channel you do not administerChannels → a tile
- What the marker means
- The channel is not one you administer. Its admins can open a message and see exactly which accounts reacted.
- What the engine does about it
- Uses a smaller share of your pool per message on that target — no more than 35%, whatever the coverage band below is set to.
- Why
- The reactor list on someone else’s channel is an enumerable list of your accounts. A smaller slice per message is less of the pool exposed in one place.
- The safest targets
- Your own channels, where nobody but you can enumerate who reacted.
04What to react to
IllustrationNot the live panel — nothing here is connected: no state, no saving, no requests. Click a control to read what it does.
TargetWhat to react to
- The two choices
- Comments — reactions land on comments in the channel’s linked discussion group. Channel posts — they land on the post itself.
- Default
- Comments.
- What comments cost
- Membership. A reaction in a discussion group requires the account to be in that group, so accounts have to join first.
- What posts cost
- Nothing extra — no joining needed. But a lively comment section is what makes a post look read, which is why the default is the other way.
First comments per postWhat to react to
- What it does
- How many comments under each post get reacted to, taken in the order they were written — the top of the thread, where a reader actually looks. Whoever wrote them.
- Default
- 3.
- A count of comments, not of reactions
- Each selected comment is then fanned out across the pool on its own. The reactions under one post are therefore this number multiplied by a share of the pool, not this number.
- How deep it looks
- The first fifty comments of a thread are scanned to choose from, so the choice comes from a real window rather than whatever one page happened to hold, and a thread with thousands of comments is never walked.
- In post mode
- Inert. The slider is only shown while the target is comments.
05Emoji
A discussion group sets its own list of allowed reactions. Sending one outside that list is a guaranteed failure, which is why the section checks your set against what the probe found.
IllustrationNot the live panel — nothing here is connected: no state, no saving, no requests. Click a control to read what it does.
The emoji setEmoji
- Default
- Four: thumbs up, heart, fire, applause. Deliberately the most universally enabled ones — a wide default set is the fastest way to collect failures on a channel with a restricted list.
- The warning
- An emoji that some probed target does not accept is flagged. A target nobody has probed makes no claim either way, and the section says so rather than implying the set is safe.
Pick orderEmoji
- The two choices
- Random, or sequential through the list.
- Default
- Random.
06Limits
Two different things live here. Four rate caps bound what one account does; two more decide how much of the pool shows up on any given message. They deliberately do not multiply together.
IllustrationNot the live panel — nothing here is connected: no state, no saving, no requests. Click a control to read what it does.
Per hourLimits
- What it does
- The most reactions one account may place in an hour, across every target.
- Default
- 4.
- Why so low
- Past a certain rate an account stops reading as a person scrolling and starts reading as a script.
Per dayLimits
- What it does
- The same signal over a longer window.
- Default
- 20.
Per channel, per dayLimits
- What it does
- Caps one account’s reactions on a single channel in a day.
- Default
- 8.
- Why it is separate
- Reactions concentrated on one channel are the easiest pattern for that channel’s own anti-spam to catch, even while the hourly and daily caps are nowhere near reached.
Per account, per runLimits
- What it does
- A hard ceiling on one account’s total activity for a run, independent of the three caps above.
- Default
- 200.
Chance a message gets reacted to at allLimits
- What it does
- Decides, per caught message, whether it gets anything at all.
- Default
- 50%.
- Why not 100%
- Some messages getting nothing is what a real audience looks like. Every message being covered is a pattern visible across the whole channel, not just a bigger number.
Share of the pool per covered messageLimits
- What it does
- Given that a message is covered, how much of the eligible pool takes part.
- Default
- 35% to 65%.
- Drawn fresh
- A new value inside the band for every message, so the counts vary instead of landing on the same number every time.
- Does not multiply
- This and the chance above are separate on purpose: one decides whether, the other decides how many. An earlier design multiplied them and made the real share unpredictable.
- Overridden where
- On a channel you do not administer the share is capped at 35% however the band is set.
Skip already-reacted messagesLimits
- What it does
- Leaves alone any message that already carries more than the number you set.
- Default
- Off.
- Zero
- React only to messages with no reactions at all.
- What it costs
- Nothing. The existing count arrives with the message, so this needs no extra request.
07Pacing
Three separate timings, each answering a different question: when the first reaction may land, how the rest are spread behind it, and how fast one account is allowed to work through its own queue.
IllustrationNot the live panel — nothing here is connected: no state, no saving, no requests. Click a control to read what it does.
First reaction after a post appearsPacing
- What it does
- How long after a post appears the earliest reaction may land.
- Default
- 60 to 600 seconds — one to ten minutes.
- Never instant
- Nobody reads that fast. A reaction arriving in the first seconds is the clearest possible tell.
Spread windowPacing
- What it does
- How long the whole fan-out for one message is smeared over.
- Default
- 90 minutes.
Arrival curvePacing
- The two choices
- Human — reactions cluster in the first minutes and thin out after, the shape a real post’s reactions have. Uniform — flat across the window.
- Default
- Human.
- Why uniform is the risky one
- A flat spread is a metronome, and a metronome is a signature.
Gap between one account’s reactionsPacing
- What it does
- The minimum spacing between two reactions by the same account, enforced at send time.
- Default
- 30 to 120 seconds.
- Why it is separate from the curve
- The arrival curve spaces different accounts across one message and says nothing about one account’s own queue. Comment mode puts one account onto several comments under the same post, so without this an account could fire five reactions inside a minute — which no amount of cross-account jitter disguises.
Pause after a FloodWaitPacing
- What it does
- How long an account waits after Telegram tells it to slow down.
- Default
- 120 seconds.
FloodWaits before quarantinePacing
- What it does
- After this many floodwaits in a row, the account stops and stays stopped until you clear it.
- Default
- 3.
- Why a streak
- One floodwait is ordinary. Three in a row is the account telling you it is being throttled specifically.
One timing is not on this page: a planned reaction is cancelled rather than sent if the post it belongs to has aged past four hours by the time its turn comes. A reaction landing on a post that old reads as a bot catching up rather than as a reader, so a job delayed by a floodwait or a restart is dropped instead of arriving late.
08Joining
There is one switch here and it cannot be turned on. That is the honest state of things rather than an oversight.
IllustrationNot the live panel — nothing here is connected: no state, no saving, no requests. Click a control to read what it does.
React without joiningJoining
- What it would do
- Let accounts react in a discussion group without joining it first.
- Why it is off
- It was measured rather than assumed: a non-member can read a comment thread but cannot react in it — Telegram requires membership for the send.
- Why the switch still exists
- It explains why there is nothing to configure, which is more use than a silent gap. The engine refuses to set it rather than accepting a value it would then ignore.
Joining itself is paced by the engine’s existing channel-join limits, not by a second set here: at most one join per pass, then a wait of three to ten minutes before the next. An account already in the group is skipped without a join being issued at all.
This is the slowest part of starting the module, and it is meant to be. Forty accounts entering one discussion group inside a minute is a textbook pattern — so a pool of forty accounts takes hours to finish joining a new target, and reactions in comment mode ramp up as that finishes rather than all being available at once.
09Reading the run
Control carries six counters: accounts, targets, posts queued, reactions queued, sent and failed. Below them, one row per account with what it has placed today.
Statistics has the same four tiles as the commenting page — attempts, successful, unsuccessful and the rate — and the same caveat applies to them: the panel subtracts what the totals were when Start was last pressed, and that subtraction is held in the browser tab, so reloading the page silently turns them back into all-time numbers.
IllustrationNot the live panel — nothing here is connected: no state, no saving, no requests. Click a control to read what it does.
Dry runControl, beside Start
- What it does
- Everything except the send. Posts are caught, jobs are planned and logged, and nothing reaches Telegram.
- Default
- On, for a new owner.
- What it is for
- Reading a plan before it becomes traffic — which accounts, which emoji, how many per message, and how the arrival is spread.
- Switching it off
- Takes effect immediately. There is no separate confirmation, so the toast saying reactions will now actually be sent is the whole warning.
10First run
The defaults are the conservative end of every range. The order below matters more than the numbers.
Put accounts in the reactions pool. The one-module rule holds: anything commenting or answering DMs has to leave that pool first.
Add your targets and press Check discussion groups. A channel that comes back as no comments or reactions off cannot be used in comment mode at all, and it is better to learn that now.
Leave Dry run on. Press Start and let it plan for a while.
Read the plan. What you are looking for is whether the reaction counts per message look like an audience, and whether the arrival is spread rather than bunched.
If comments are the target, expect the joining to take hours before the pool is fully useful. That is the join pacing working, not a fault.
Only then switch Dry run off.
Two numbers are worth watching afterwards: failures on a target, which usually means an emoji outside that group's allowed list, and the floodwait streak, which is the account asking to be slowed down.