Reputation
The Reputation dashboard is where you run your community's social-proof economy. Track member contribution, manage vouches, freeze farmers, detect collusion rings, and tune scoring rules without ever touching a config file.
Before you start
A few prerequisites make this page easier to use.
- The Reputation module is enabled in Settings > Basics. New servers ship with it off.
- You hold the reputation.view capability. Owner, Admin, and Moderator roles include it by default.
- Destructive actions (wipe, set score, blacklist) require reputation.moderate.
- You have decided which scoring mode fits your community: NET_ONLY, NET_PLUS_VOUCH, or CATEGORIES.
What you'll see
The page is organised into eight tabs across the top.
Overview tab
The landing tab. Read the room before you act.
Open DashboardReputationOverview.
Stats strip
- Given today, Given 7d, Given 30d — total reputation events in each rolling window.
- Active freezes — count of members currently blocked from giving or receiving.
- Pending alerts — ring detection results awaiting a moderator decision.
- A status pill showing the current scoring mode and whether decay is on or off.
Top members
Quick actions
Leaderboard tab
Ranked list of every member with a non-zero reputation score.
Open DashboardReputationLeaderboard.
Columns
- Rank
- Position based on the active scoring mode.
- Member
- Display name and avatar. Click the row to open the member drawer with the full vouch history.
- Score
- Numeric score. In CATEGORIES mode, hover to see per-category sub-scores.
- Confidence
- Percentage from 0 to 100 indicating how trusted the score is. Low confidence usually means few unique givers.
- Trend
- Up, flat, or down arrow comparing the last 7 days against the prior 7 days.
- Status
- Active, frozen, or blacklisted. Frozen members appear in the list but cannot move.
Filters
- Time window: 24h, 7d, 30d, or all-time.
- Mode: top givers, top receivers, biggest gainers, biggest losers.
- Status filter: active only, frozen only, blacklisted only, or all.
- Search bar matches by username, ID, or display name.
Moderation tab
Per-member actions: freeze, unfreeze, wipe, set score, refresh confidence.
Open DashboardReputationModeration.
Available actions
- Freeze
- Stops the member from giving or receiving reputation. Existing score is preserved. Requires reputation.moderate.
- Unfreeze
- Reverses a freeze. Vouch eligibility resumes immediately.
- Wipe
- Deletes every vouch given to or by the member. Score resets to zero. This action cannot be undone — confirm twice.
- Set reputation
- Manually overwrite the numeric score. Useful for migrations from another bot. The override is recorded in the audit log with the moderator who set it.
- Refresh confidence
- Recomputes the confidence percentage from scratch using current giver diversity, age, and reciprocity signals. Use after wiping or after a ring takedown.
How to act on a member
- Find the user — search by username, ID, or click their row from the leaderboard.
- Open the action menu — use the menu icon at the end of the row, or open the drawer for the full vouch timeline first.
- Confirm — destructive actions (wipe, set reputation) ask for a typed confirmation and a reason. The reason lands in the audit log.
Vouches tab
Searchable feed of every vouch event in the server.
Open DashboardReputationVouches.
What each row shows
- Giver and receiver, with avatars and IDs.
- Delta value (+1, +2, custom amounts allowed when the giver has a vouch booster).
- Category tag, when running in CATEGORIES mode (helpful, mentor, fair-trader, and any custom labels).
- Optional message attached by the giver.
- Source channel and message link, when available.
- Timestamp and the cooldown bucket the vouch counted against.
Filters
- By giver, by receiver, or by both.
- By category, by source channel, or by date range.
- Toggle Include reverted to surface vouches that were undone by ring detection or by a moderator.
Reverting a single vouch
- Locate the row using the giver and receiver filters.
- Click the menu icon on the row and pick Revert.
- Provide a reason. The reason is stored on the audit entry. The giver and receiver scores are recalculated server-side.
Blacklist tab
Members permanently blocked from giving or receiving reputation.
Open DashboardReputationBlacklist.
Add a member to the blacklist
- Click Add in the top-right of the table.
- Pick the member by name or paste a user ID. Members do not have to be in the server — blacklisting an ID blocks them on rejoin.
- Add a reason and choose scope: Block giving only, Block receiving only, or Block both. The reason is required.
- Confirm. The action is logged. The member sees a denial message if they try to use a vouch command.
Remove from the blacklist
- Find the row and click the menu icon.
- Pick Remove. Existing score is not restored automatically — if it was wiped, it stays at zero.
- The audit log records the moderator and an optional unblock reason.
Audit tab
Full history of reputation events: vouches, score overrides, freezes, wipes, blacklist changes, and setting changes.
Open DashboardReputationAudit.
Event types
- VOUCH_GIVEN
- A successful vouch (giver, receiver, delta, category).
- VOUCH_REVERTED
- A previously counted vouch that was rolled back.
- REP_OVERRIDE
- A moderator used Set Reputation.
- FREEZE / UNFREEZE
- Member was frozen or unfrozen.
- WIPE
- All vouches for a member were deleted.
- BLACKLIST_ADD / BLACKLIST_REMOVE
- Blacklist roster changed.
- SETTING_CHANGED
- Any change to scoring rules, decay, or cooldowns.
- RING_DETECTED
- A collusion ring was flagged or auto-actioned.
Filters
- Event type (multi-select).
- Actor (the moderator or system) and target (the affected member).
- Date range with presets and a custom range picker.
- Free-text search across reasons.
Settings tab
Scoring mode, cooldowns, scoring weights, and decay are all set here. Save publishes immediately.
Open DashboardReputationSettings.
Basics fields
Master switch. When off, all give and vouch commands respond with a disabled message.
The emoji members react with to give a vouch. Custom server emoji and unicode emoji both work.
Maximum vouches a single member can give per 24-hour rolling window.
Example: 5
Scoring model. NET_ONLY (single number), NET_PLUS_VOUCH (number plus vouch count), or CATEGORIES (per-category sub-scores).
Example: NET_ONLY
Cooldown fields
Seconds a giver must wait between any two give actions.
Example: 60
Seconds a giver must wait between two vouches that include a written message.
Example: 300
Seconds the same giver-receiver pair must wait before the giver can vouch again.
Example: 86400
Scoring weights
| Setting | Type | Default | Description |
|---|---|---|---|
| baseDelta | Number | 1 | Default amount added per vouch. |
| uniqueGiverBonus | Number | 0.5 | Bonus weight when the giver has not vouched the receiver recently. |
| reciprocityPenalty | Number (0-1) | 0.4 | Penalty applied when A vouches B and B vouches A within a short window. |
| ringPenalty | Number (0-1) | 0.6 | Penalty applied when ring detection scores the giver above its threshold. |
| newAccountPenalty | Number (0-1) | 0.3 | Penalty applied to vouches given by accounts younger than the configured age. |
Decay fields
When on, scores decay monthly by the configured percentage. Frozen members are skipped.
Percentage subtracted on the first of each month.
Example: 5
Minimum score before decay kicks in. Members below this are unaffected.
Example: 10
Analytics tab
Ring detection results, recent audit summary, and trend charts.
Open DashboardReputationAnalytics.
Ring detection
- Each ring is shown as a graph: nodes are members, edges are vouches between them.
- Score column ranks rings by suspicion. Higher means more reciprocity, more density, and shorter time-between-vouches.
- Auto-actioned rings are tagged so you know what the system already did (revert, freeze, or alert only).
- Click a ring to open the member drawer for any node and inspect their full vouch history.
Recent audit summary
- Last 24 hours of audit events grouped by type.
- Counts of vouches, reverts, freezes, and ring detections.
- Top 3 most-active moderators by action count.
Trend charts
- Vouches per day for the last 30 days.
- Active givers per day — distinct user count.
- Reciprocity ratio — share of vouches that were reciprocated within 24 hours.
- Freeze and blacklist counts over time.
Common tasks
Investigate a suspected vouch ring
End-to-end flow that spans Analytics, Vouches, and Moderation.
- Open the Analytics tab and sort the ring detection table by score, descending.
- Click the suspect ring to load its node graph. Look for tight cycles between three or more members.
- Cross-check the Vouches tab by filtering to giver and receiver for each pair in the ring. Note the timing — rings usually vouch within minutes of each other.
- From the Moderation tab, freeze the suspected accounts. If confirmed, wipe their vouches and add to the blacklist with the ring ID in the reason field.
- Verify the chain in Audit: a sequence of FREEZE, WIPE, and BLACKLIST_ADD events should appear, all tagged with the same ring ID.
Freeze a reputation farmer
A single user gaming the system, not a coordinated ring.
- Open the Leaderboard and sort by Biggest gainers for the last 7 days. Outliers usually surface here.
- Click the row to open the member drawer. Farmers usually have many same-giver entries.
- Freeze first, then decide. Freeze stops the bleeding while you check the Vouches tab. If the pattern is clear, escalate to wipe and blacklist.
Switch from NET_ONLY to CATEGORIES
Roll out per-category scoring without losing existing data.
- In Settings > Scoring, define the categories you want to track. Common picks: helpful, mentor, fair-trader, contributor.
- Change mode from NET_ONLY to CATEGORIES and click Save.
- Communicate to your community. Existing vouches show as "uncategorised" on the leaderboard until they decay or are reverted. Pin a channel announcement explaining the new categories.
- Monitor for two weeks via the Analytics tab. If a single category dominates, redefine the list or remove unused ones.
Troubleshooting
- decayEnabled is true in Settings > Decay.
- monthlyDecayPercent is greater than 0.
- Scores are above minScoreForDecay — members below the floor are skipped on purpose.
- Check the giver is not frozen or blacklisted (Moderation tab).
- Check pairCooldownSec — if the giver vouched the same receiver yesterday, today is blocked.
- Check that the source channel is on the allow-list in Settings > Basics.
- Confirm repEmoji matches the emoji actually being used. Custom emoji must still exist on the server.
- Lower ringPenalty in Settings > Scoring. The default is balanced for medium servers.
- Whitelist specific pairs by opening the member drawer and toggling Ignore for ring detection.
- For large communities, raise the cluster size threshold so only rings of four or more trigger.