A reward is a sentence the software repeats after someone did a thing you wanted. “You have been here a year.” “You may post links now.” “You may spend these points.” Those are three different products. Mix them and members will ask why Veteran vanished when they bought a name colour.
This is a design article. It is not the XenForo ranks ACP tour and it is not the points shop. Those two own clicks. This one owns the decision those clicks implement: status, access, or economy — irreversible or reversible — and which platform already shipped which job. Discourse trust levels are a status-plus-access machine. XenForo trophies are irreversible medals. Promotions are hourly, recently-active, and they take the group back. Official Discourse Gamification is a named plugin (hosted Business on the 2026 public grid). It is not a reason to skip the design.
If nobody would change a Tuesday habit to earn the thing, do not build it.
Three jobs, three ledgers
Write the job on a staff page before you name a badge.
| Job | What the member hears | Reversible? | Grants power? | Typical tool |
|---|---|---|---|---|
| Status | “The room remembers that I did X.” | Usually no | No | Trophy, badge, title row |
| Access | “I may do Y now.” or “I may enter this room.” | Yes, if the rule is a state | Yes, by definition | Promotion, trust level, paid upgrade |
| Economy | “I have a balance I can spend.” | Yes, every spend | Only if you sell a permission | User upgrade (real money) or a credits add-on |
Status is a medal. Access is a key. Economy is a till. A healthy community can run for years on status plus a little access. Economy is what you add when someone will pay — with time or with money — and you can explain refunds.
The XenForo community notebook we queried for this series did not discuss trophies, banners, shops, or “when gamification backfires.” It did document promotions as a permission ladder: pull a sensitive right off Registered (Not Set (No)), put Allow on a secondary group, automate the climb with days-registered and message-count criteria. It also documented the Never pitfall: Never on Registered permanently blocks the right, so the promoted group cannot give it back. That is an access design rule, not a costume rule. Use it. Do not confuse it with a trophy.
Irreversible versus reversible is the whole plot
Members do not read your design doc. They read whether the chip can disappear.
Irreversible means: they did the thing once, the software remembers, later failure does not pull the medal. XenForo trophies are this product. Official 2.3 docs (and the ranks article that already cited the manual): you define criteria and a point value; matching awards the trophy; awards run in the background (Tools → Cron entries → Update user trophies), not on every click; trophies live under user customization / gamification; they do not grant permissions. Official rule used in operations: once awarded, a trophy is not revoked when the user later fails the criteria. That is why you must not trophy “has an avatar” or “birthday today.” Delete a trophy and you remove its points from everyone who had it — which reshuffles any title ladder based on trophy points. Do that on purpose.
Reversible means: they match a living rule, they get a group or a trust level; they stop matching, they lose it — unless a human pinned it. XenForo user group promotions are this product. Official purpose: automatically add people to groups to change title, username styling, banners, or permissions. How they actually run, from the promotions manual already walked in the ranks piece: cron hourly; only recently active users are processed (lurkers keep yesterday’s banner until they log in); they must match all selected criteria; fail later → demoted, unless an admin added the group by hand or another still-matching promotion also grants it. Disable a promotion: no new awards; it does not demote people already in. Official undo is delete the disposable group, batch-update people out, or change criteria to something nobody matches and wait for them to become active. Manage promoted users tracks history, manually applied, and promotion-disabled. Manual promote ignores criteria forever. Manual demote makes them ineligible even if they match.
That last sentence is why punishment should not be a cosmetic rank. A rank you take away as discipline is a second warning system you will not document.
Discourse trust levels sit on both sides of the line, on purpose.
- TL0 → TL2 are mostly an on-ramp. New accounts start sandboxed. TL1 is an automated job on the order of fifteen minutes after entry requirements. TL2 is processed daily for active participants. The notebook does not list the exact visit/read/like counts; those are admin-configurable. Do not invent them.
- TL3 Regular is a state. It is evaluated daily on a 100-day rolling window. Drop the activity and the software demotes you to TL2. A grace period exists so people on the border do not get badge-spam. That is reversible status-plus-access: extra like budget, create tags, and — by default — edit others’ titles/categories/tags via
edit_all_topic_groups(defaulttrust_level_3). - TL4 Leader / Inner Circle is not automatic. Meta 2026 is explicit: staff grant it, or SSO maps it. Treat it as a staff-shaped key, not a prize for posting.
Discourse also moved several old “min trust level” settings to allowed groups (edit_all_topic_groups, edit_all_post_groups, anonymous posting allowed groups, user_api_key_allowed_groups). The default groups are still the trust-level groups. The design implication: you can hand a privilege to a custom group without pretending everyone at that trust level earned a medal.
If two rows in your spec try to say the same sentence — a trophy named Regular, a promotion named Regular, a TL3 badge named Regular — you will lose. Pick one owner.
Status: medals that do not open doors
Status works when the room already has a habit and you want the habit to be visible. It fails when you use it to create the habit. The active-users loop (first screen, reply latency, lurker door) is upstream. A badge on an empty hallway is interior decorating.
Rules that keep status honest:
- One counter, or no counter. XenForo’s user title ladder reads one field: messages, trophy points, or reaction score (the manual’s older “likes” wording). Highest row whose minimum is still below the user’s value wins. Put a row at 0 so nobody is blank. A custom title on the profile beats group title override, which beats the ladder. If you hand custom titles to everyone, the ladder is decoration.
- Banners are chips, not ranks. Official groups chapter: a group may set user title override, username CSS, and a banner. Display styling priority picks the winner when they are in several such groups. Extra banner settings live at Setup → Options → User options → User banners. A rank chip is a secondary group with no extra permissions. Registered stays primary. If the banner group also carries
Yes/Neveron real rights, you coupled a costume to a permission rebuild. - Five to nine medals, not eighty. Volume, quality, time. Zero-point trophies exist if you want a founder badge without moving a points ladder. Do not medal every prefix.
- Points on trophies are not money. They feed a ladder or notable members. They do not spend. The shop article already said this. Repeat it in the spec so the next admin does not “just hook credits to trophy points.”
Discourse status, stock: the Member and Regular badges that come with TL2 and TL3. There is a welcome PM at TL1 (send tl1 welcome message). There is no default PM at TL3. An optional narrative bot can PM at TL2. That is enough visible status for most technical communities. If you need custom badges, Meta practice is Data Explorer queries plus the badge UI’s bulk award — community, not a shop.
Official Gamification (Discourse): the plugin exists; the 2026 hosted pricing page lists gamification on Business. The Discourse notebook we queried did not document its settings. Name it. Do not invent leaderboards, decay, or scoring. If you enable it later, read the plugin’s own page and treat it as an economy-shaped overlay on top of trust levels, not as a replacement for TL3’s 100-day window.
Access: keys you can take back
Access is the honest reward for “we do not want brand-new accounts to do this yet.” Links, conversations, attachments, a veterans’ lounge, wiki edit, invite-to-topic. The member understands a key. They resent a key you dressed as a medal and then removed.
XenForo promotions as a ladder (community pattern, official tools):
- Registered keeps primary membership. Sensitive rights sit at
Not Set (No)on Registered,AllowonEstablished(or whatever you name the secondary). - Criteria: registered at least X days and at least Y messages. Match-all. Empty criteria never awards.
- Never put
Neveron Registered for a right you plan to hand back.Neverwins against everyAllow. - Cosmetic ranks stay display-only. If
Veteranmay view one lounge, that is one documentedViewon one node, and you accept the rebuild when the 200th veteran promotes — off-peak. - Lurkers will write in that they “never got Veteran.” Official promotions explain it: they have not been recently active, so the hourly job has not seen them. Tell them to log in. Then run the promotions cron once if you are testing.
User upgrades are access you sell. Official path: payment profile → secondary group → private node or other gated perk → Users → User customization → User upgrades. Payment adds the group; term end or failed payment removes it. That is a clean reversible key. It is not a trophy. It is not a post-count rank. Do not name the paid group Veteran.
Discourse access is mostly the trust-level grid plus allowed groups:
| Level | Access you should explain in the welcome | Not a prize |
|---|---|---|
| TL0 | Sandbox. One image, two links, two mentions, no flags. 24-hour own-post edit. | “We hate new people.” |
| TL1 | Can flag, mute, more chat. | Instant full toolbox |
| TL2 | Ignore, 30-day edit, invite-to-topic (default). Like budget ×1.5. | Staff tools |
| TL3 | Tags, heavier flags, topic gardening via edit_all_topic_groups. Can lose it. |
Permanent nobility |
| TL4 | Post-body edit (edit_all_post_groups), pin, timers, split/merge. Manual. |
A public leaderboard |
Internal company Discourse often SSO-maps everyone to TL3/TL4 on day one so the wiki works. That is access as employment, not gamification. Public communities that copy it will skip the sandbox and collect spam. The beginner guide already warned you. The pros and cons piece already said quiet months demote TL3 and veterans who think in post-count ranks will ask where the ladder went. If that conversation sounds like a civil war, do not migrate for the badges.
Economy: the till you should postpone
An economy is a second ledger. Someone earns or buys a currency, then trades it for a group, a cosmetic, or a download. Official XenForo will sell user upgrades (real money → group) without a points plugin. A credits add-on is a third ledger on top of trophy points and reaction score.
Build an economy only if all three are true:
- People already return without it (DAU/WAU loop).
- You can name the product they would pay €5 for.
- You can explain “I spent it,” “I cancelled,” and “I was banned, where did the balance go” without a novel.
If any row is false, you are printing a second status counter and calling it fun. Members will farm it. You will then write anti-farm rules that feel like tax law. That is how gamification backfires.
Do not spend trophy points. Do not spend trust level. Do not spend warning points. Those ledgers already have jobs.
When gamification backfires
You do not need a vendor case study. You need a list of failure modes you can point at in staff chat.
The empty-hallway badge. Status on a dead first screen. People earn “First post,” look around, and leave. The medal taught them the software works. It did not teach them the room is alive.
The four Regulars. Trophy Regular + promotion Regular + ladder Regular + Discord role Regular. Support tickets become ontology.
The irreversible state. You trophed “has an avatar” or “posted this week.” They remove the avatar. The trophy stays. You look sloppy. Or you delete the trophy and everyone’s points jump. Use a promotion.
The reversible medal used as shame. You demote a cosmetic rank as punishment. Now the warning system and the rank system are the same conversation, and neither is documented. Warnings belong in the toxic-user playbook.
The Never ladder. You blocked links with Never on Registered, then wondered why Established cannot post them. Official permission math. Community practice is explicit: do not do this on a climb you intend to finish.
The permission-rebuild rank. Every rung is a group with node overrides. Community performance math: rebuild cost grows with groups × nodes. Cosmetic ranks should not pay that tax. The permissions and groups articles already own the carpentry.
The TL3 civil war. You moved a post-count culture onto Discourse and did not say, in the welcome, that Regular is a 100-day window. Veterans read demotion as a slap. It is a state machine. Tell them before the first quiet month.
The shop that eats the ladder. Credits spend a title, or a title requires a balance. Two products, one username. Split the sentences.
The leaderboard of farmers. Notable members, a Discourse gamification board you have not read the settings for, a reaction-score ladder with negative scores turned on. Official XenForo warning on negative reaction scores: people pile on. For ranks, reaction score is a criterion or a ladder field. It is not a third currency.
A small spec you can actually staff
One page. Not a plugin. Fill the blanks.
Reward spec — <community name>
Date:
Owner:
Status owner: trophy / badge / title ladder / none
Access owner: promotion group / trust level / upgrade / none
Economy owner: none / user upgrades / named add-on
Punishment owner: warnings / silence / suspend — not a rank
Irreversible medals (≤9):
- name / criterion / points / why it exists
Reversible states:
- name / criterion / what they lose if they fail / who may pin it by hand
Keys (permissions or rooms):
- right / who has it / how they get it / Never used? (should be no)
We will not:
- spend trophy points
- name a paid group after a post-count rank
- disable Discourse TL0 to “increase activity”
Then pick an architecture. The ranks article already named three XenForo shapes (classic message ladder, quality-weighted trophy-points ladder, role chips with the ladder off). Cross-platform, the same three ideas:
A. Classic forum. Boring titles. A handful of medals. One New member state that drops. Staff chips via the actual staff group. No rank has permissions.
B. Quality-weighted. Medals mix volume and reactions so a 500-post drive-by does not outrank a 40-post expert. Access still lives on a separate established group or on TL2/TL3.
C. Role chips, no ladder. Member / Regular / Patron / Staff. Patron comes from a paid upgrade or a clearly labelled donor group. Regular is a promotion or TL3, and you say it can go away.
Do not build D: a group per rung that also changes attach limits and a private lounge and a username colour. That is how you get 60 groups and a four-minute permission rebuild.
Comparison — what each stack already paid for
| Need | XenForo stock | Discourse stock | Buy later |
|---|---|---|---|
| Irreversible medal | Trophies + points | Badges (Member / Regular + custom) | Extra badge packs |
| Reversible state | Promotions (hourly, recently active) | TL3 100-day window; group membership | — |
| Visible chip | Group banner + styling priority | Group flair / title (theme-dependent) | Cosmetic add-ons |
| New-user sandbox | You build it (validating group, promotions) | TL0 on by default | — |
| Paid access | User upgrades | Hosted billing / groups via SSO | Credits shop |
| Points that spend | Not stock | Official Gamification plugin (name only here; hosted Business on the 2026 grid) | Credits add-on |
| Staff-shaped power | Moderating / Administrative secondary groups | TL4 manual; staff automatic group | — |
XenForo makes you assemble the sandbox and then gives you a very explicit medal/state split. Discourse gives you the sandbox and a living Regular state, then makes you explain demotion. Neither gives you a reason to invent a fourth currency in month one.
IPS and smaller stacks (Flarum, NodeBB) follow the same table even when the labels differ. If the product has achievements plus groups plus a shop, assign the three jobs before you turn all three on.
How this interacts with activity
Rewards amplify movement. They do not create it. If DAU is a handful of staff, a leaderboard is a private joke. If first posts go unanswered, “Helpful” at reaction score 25 is a medal for the people who already stayed.
Use status to mark the habit you already staff: first post, a year, a solution marked, a reaction threshold you can defend. Use access to delay risky tools, not to sell dignity. Use economy only when the till has a product.
If a lurker writes that they never ranked up, check the job:
- Trophy cron not run, or they never matched. Status.
- Promotion hourly job has not seen them because they were not recently active. Access state.
- TL3 window. Reversible Regular. Explain the 100 days.
- They cannot post in the obvious room. That is a permission bug, not a reward bug.
Checklist
- Spec names one owner for status, one for access, one for economy (economy may be “none”)
- Every irreversible medal is a thing that should still be true in five years
- Every reversible chip has a written demotion sentence members will actually read
- XenForo: trophies ≠ promotions; recently-active hourly behaviour accepted
- XenForo: no
Neveron Registered for a right a promotion is supposed to return - Rank groups are secondary, display-only unless a single documented key exists
- Discourse: TL0 sandbox on; TL3 described as a 100-day state; TL4 not on a public leaderboard
- Official Gamification plugin not enabled just because Business includes the name
- Paid group is not named after a post-count rank
- Warning / silence / suspend is a different ladder
- Dummy new / regular / lurker / patron / staff accounts checked on a post
- Notable members or any leaderboard still looks like people you would introduce to a guest
A reward system is three sentences you are willing to say in public. Medals remember a day. Keys remember a state. Money remembers a contract. If those three tell one story, you do not need a suite. If they tell three stories under one username, delete two of them before you install the plugin that adds a fourth.

