Discourse Gamification

:discourse2: Summary Discourse Gamification adds customizable scoring (karma, kudos, points) and leaderboards to your instance.
:open_book: Install Guide This plugin is bundled with Discourse core. There is no need to install the plugin separately.
:test_tube: Demo Leaderboard

Features

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 hour for events of the day, and we re-calculate scores from the last 10 days once a day.

Cheers

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.

Leaderboards

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

Scorables

Currently, the following events award cheers:

See roadmap for upcoming scorables.

Score backfill

You can run a backfill to calculate the historical scores through the UI using the ‘Recalculate Scores’ button on your /admin/plugins/gamification page:

This can also be used to recalculate the leaderboard if you make any changes to your scorables or eligible scoring categories. You can generate a rescore up to 5 times a day, and can select a range of time frames (or set a custom one):

Configuration

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 /admin/site_settings/category/plugins?filter=plugin%3Adiscourse-gamification.

To create, delete and update leaderboards, admins can visit /admin/plugins/gamification.

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

Changelog

  • 2022-05-02T03:00:00Z - Public Release
  • 2022-05-10T05:00:00Z - Update roadmap with recent changes

Roadmap

(roughly ordered)

  • Make leaderboard respect prioritize usernames in ux being disabled

  • Use higher resolutions avatars in leaderboard podium

  • Add custom per-badge scoring

  • Add per-reaction score awarding (requires Discourse Reactions)

  • Add chat-events scoring (requires Discourse Chat)

  • Add poll events scoring (created poll, voted in poll)

  • Add media events scoring (posted image, posted video, posted onebox)

Implemented:

  • Fix i18n table title in custom score column on user directory
  • Ignore staged users
  • Ignore anonymized users (email match @anonymized.invalid)
  • 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
  • Add time period filters to leaderboards
  • Add default time period filter to leaderboard settings
  • Add excluded_groups_ids to leaderboard settings
  • Allow admins to award/remove arbitrary points to users to allow integration with out-of-Discourse scorable events
  • Make scores click link to leaderboard (both in user profile and user card)

:discourse2: Hosted by us? This plugin is available on our Business and Enterprise plans Gamification | Discourse - Civilized Discussion

112 Likes
Right Sidebar Blocks
What are Discourse "Cheers" supposed to be?
Leaderboard Plugin
Discourse Gamification now supports custom scores for external integrations
Discourse vs Skool
Create badges based on Gamification score
Gamification options in Free discourse.group
Add Scores for Reactions
Add Scores for Chat
Use rewards points to redeem subscription hours
Points based currency to reward quality
Membership anniversary
Is there scoring for badges?
If the forum wants to accumulate good posts, shouldn't we have some stimulation/motivation system?
What are the ways to do a competition like this
Adding virtual currency / points
Looking for the perfect theme
Adding virtual currency / points
Point system in bagdes?
Check-in punch
Whats a cheer and how do you enable it?
Changes to which reactions :thumbsup: are counted as likes :heart:
[Discourse Gamification] Secrets Revealed: Spend to Discover
Is it possible to create a leaderboard for a specific category + tag?
Users losing disproportionate amount of cheers
Add Poll events to Gamification
Allow users to see trust level 3 progress on user profile
New monetisation feature proposition
Having more Trust Levels?
How to adjust gamification points without retroactively updating point values for old score-able actions
Can points values be customised per action?
Gamefication scoring for portuguese forum?
Using user cards to quickly view information about others
Add Scores for Chat
Identifying up-and-coming top contributors
How is this daily sign-in implemented? I get points randomly every day
User card loading failed
Bundling more popular plugins with Discourse core
Plugins to Enhance user Engagement
Spend “Gamification“ points to unlock hidden content
How to add a Leaderboard link to the hamburger menu?
A feature request related to this plugin. Pointed questions or rewarded questions
Likes Given & Likes Received Scoring
Can we display solved count on the /users page?
How Do You Get Cheers?
Can we have a point system? Or do we have to use plugin?
Subtract points based on certain reactions
Scores not updating right away
OP Contents on Progress Bar
Best practices: Staff who've left
Custon button how "like" ? add custom post buttons
Leaderboard- Exclude Certain Users
Set points setting + redemption
Which text fields to change to rename 'score'?
Add User leaderboard in sidebar
What is a cheer?
Ranking System - Gamification
Add Scores for Reactions
Setting a leaderboard date range should lock the default period
A fun contest idea to drive engagement - over 50 new members / intros in a week :)
How to integrate Discourse Gamification with an external system (redeem and award points)
Seeking Suggestions for User Engagement and Reward System
Need someone who is familiar with gamification to set up our site