Signal
Every topic in your forum is in one of a handful of states, and your members can only tell which by opening it. Signal reads the conversation and says so on the list: this one has nobody answering, this one is waiting on the person who asked, this one already has its answer, this one is finished. A reader scanning a forum can see where they can help, and where they will find what they came for.
It answers a different question to "when was the last reply?"
Labels driven by the clock — new, active, quiet, dormant — tell you the same thing the last reply column already tells you, in different words. Signal's states come from the conversation itself: whether anyone replied, who spoke last, whether an answer was accepted, and whether one reply is clearly the best in the topic even though nobody ever pressed the button.
- Unanswered — nobody has replied yet.
- Needs a reply — the person who asked spoke last, so it is waiting on somebody else.
- Answered — one reply stands well clear of the others, so it probably answers the question. Nobody had to mark it.
- Solved — an answer was accepted.
- Settled — answered, and the conversation has finished. Not "dormant": the same fact, and the opposite impression of the community that produced it.
- Locked — the topic is closed, so it is not waiting on anybody.
- Busy — replies are still arriving quickly.
- Waiting on asker — somebody replied and the person who asked has not come back.
You choose which of these appear. Fewer is better, and the default leaves out the one that tends to cover most of a forum, because a label on two thirds of the list stops being read at all.
Post scoring — the part Invision only finishes on Cloud
Your self-hosted database already has the columns: post score on every post, and an average on every topic. Nothing in the suite ever fills them in. Signal does.
Scores come from what your community has already done — accepted answers, reactions, and which replies other people quoted — plus a much smaller contribution from the writing itself. That balance is deliberate and it was corrected after testing against a real forum: length is evidence of effort, not of value. A post nobody has reacted to, quoted or marked is held near the baseline however long it is, so a quiet forum does not end up crowning its wordiest automated announcement.
Negative reactions count against a post rather than being ignored, so a reply people actively disagreed with does not score the same as one nobody read.
And it tells you why
Every score comes with its reasoning in plain words — marked as the answer, reactions worth +7, quoted by two later replies, one of the first replies. The settings screen shows the highest-scoring post on your own site and exactly what earned it. An administrator who cannot ask "why is this an 8?" will not trust the number, and a number nobody trusts changes nobody's behaviour.
Answers that nobody marked
On most forums the mark as answer button is barely used, so the knowledge in a long support thread stays invisible. Signal finds the reply that stands clear of its neighbours and puts a small Answer marker on it.
It marks the reply, not the whole discussion. A long support topic often answers several different questions, and declaring the entire thread solved hides that from the next person arriving with the second one.
Standing out is measured against the other replies in that topic, not against a fixed number. That matters: on a quiet forum a fixed threshold labels nothing, and on a busy one it labels everything.
Built to stay out of the way
- Badges are rendered from a stored state, and a whole forum index costs one query — not one per row.
- Scoring runs in the background a batch at a time, and only looks at posts whose evidence has actually changed. It never sweeps the table.
- The batch size is capped whatever you set it to, because Invision runs background work inside real visitor requests.
- No third-party services, no outbound requests, no API keys. Everything is computed from your own database.
- Nothing is overwritten: Signal writes into Invision's own columns, so a community that later moves to Cloud simply has Cloud take over.
Requirements
- Invision Community 5.0 or later, self-hosted.
- The Forums application.
- PHP 8.1+.
What's New in Version 1.0.2
Released
The AdminCP database check no longer reports this app
Invision Community's Support → Database screen could report that this
application's tables "have some problems", and offer to fix them with a long list of queries that
create a copy of each table, move the data across, DROP the original and rename the
copy.
Nothing was actually wrong with your database, and those queries did not need to be run. The tables were correct. What was wrong was this application's description of them: its index definitions omitted one optional field, so the checker compared the description against reality, found them different, and offered to rebuild the table to match a definition that was already true.
This release corrects the description. The check now passes and nothing is altered in your database — no table is copied, dropped or renamed.
If you already ran the suggested queries, no harm done: they rebuild each table to exactly what it was.
Nothing else changes in this release.
You may only provide a review once you have downloaded the file.
There are no reviews to display.