|Summary||Discourse Gamification adds customizable scoring (karma, kudos, points) and leaderboards to your instance.|
|Install Guide||How to install plugins in Discourse|
While Discourse ships, out of the box, with gamification features (badges, trust levels) some communities want to take it to another level. That’s where GitHub - discourse/discourse-gamification comes in.
This plugin allows admins to easily create and tweak community scoring contests, where points are awarded by participating in the community.
Points are automatically updated every 5 minutes for events of the day, and we re-calculate scores from the last 10 days once a day.
Users are awarded “cheers” by performing certain actions on the community. Each user cheer score appear on their user card, user profile and can be enabled on the user directory.
Like the plugin but the name cheers isn’t the best for your community? You can rename it to anything using Customize all text in Discourse.
Admins can create multiple leaderboards, and each one can have a custom:
- start date
- end date
- Competing users
- Leaderboard privacy
By default, we ship with a default leaderboard at
/leaderboard that will list all users from the first day where scores started to be awarded.
You can see a demo of it at Discourse Meta
Currently, the following events award cheers:
- Daily visits
- Flags accepted
- Likes given
- Likes received
- Posts created
- Posts read
- Solutions accepted (requires Discourse Solved (Accepted answer plugin))
- Time read
- Topics created
- User invites accepted
See roadmap for upcoming scorables.
If you want to retroactively award scores you can run the following task:
This took under 1 minute to run on Meta for a 10+ years backfill, so it should be quite safe to run on large instances.
If you are using our hosted service for your community contact our support to run a backfill task for you.
Global customizations are:
- each action score multiplier
- Restrict categories where points can be earned
- enable and disable the plugin
Those plugin-level settings live at
To create, delete and update leaderboards, admins can visit
Use as widget
This can also be displayed as a widget in a smaller format, inside the Right Sidebar Blocks theme component. More info to be found there.
Badges based on score
You can have automatic badges based on the gamification score using Enable Badge SQL
Here is an example badge when a user has over 9000 cheers:
SELECT user_id, current_timestamp AS granted_at FROM gamification_scores WHERE (:backfill OR user_id IN (:user_ids)) GROUP BY 1 HAVING SUM(score) > 9000
- 2022-05-02T03:00:00Z - Public Release
- 2022-05-10T05:00:00Z - Update roadmap with recent changes
Fix i18n table title in custom score column on user directory
Ignore staged users
Ignore anonymized users (email match
Style leaderboard edit form
Leaderboard “you” link needs a larger offset to accommodate floating header…
Fix highlight of own user on the leaderboard not working if own user position is > 100
Add i18n thousands separator to user card / profile cheer score
Make leaderboard respect
prioritize usernames in uxbeing disabled
Add time period filters to leaderboards
Add default time period filter to leaderboard settings
excluded_groups_idsto leaderboard settings
Use higher resolutions avatars in leaderboard podium
Make scores click link to leaderboard (both in user profile and user card)
Add custom per-badge scoring
Allow admins to award/remove arbitrary points to users to allow integration with out-of-Discourse scorable events
Add per-reaction score awarding (requires Discourse Reactions - Beyond Likes)
Add chat-events scoring (requires Introducing Discourse Chat (BETA))
Add poll events scoring (created poll, voted in poll)
Add media events scoring (posted image, posted video, posted onebox)