Level up! - Gamification 🏅

Blocks ::: block_xp
Maintained by Frédéric Massart ⭐
🔥 🤩 The easiest way to add gamification to your Moodle site! Engage your students! Gamify their learning experience by allowing them to level up in their courses. #gamification #game
Latest release:
8451 sites
490 fans
Current versions available: 2

Version   Moodle   Favourites   Since  

Visit our website at levelup.plus.

Please support this plugin: add it to your favourites, star it on GitHub, or purchase the add-on!

What's new?

With a focus on UX, here are some of the highlights of our recent releases.

  • Revamp user interface to setup the levels
  • Redesigned rule picker to include rule description
  • New rule to target an activity by name (Level up! Plus add-on required)
  • Downloadable logs (Level up! Plus add-on required)
  • See the latest release notes

Feature request and bug reports

Please report the issues you find, problems you experience or any feature request on the issue tracker. Thanks!


  • Automatically attributes points to students for their actions
  • Block that displays current level and progress towards next level
  • Report for teachers to get an overview of their students' levels
  • Notifications to congratulate students as they level up
  • A leaderboard to display the ranking of the students
  • Ability to customise the number of levels, the points they require and their appearance
  • Total control over the points earned per action
  • Unlock content when a certain level is reached
  • Experience points earned per course, or for the entire site
  • Support for shortcodes to include in content
  • GDPR compliant

Level up ! Plus add-on features

Purchasing the Level up! Plus add-on unlocks these features:

  • Target an activity by name
  • Grade-based rewards
  • Team leaderboards
  • Activity completion support
  • Course completion support
  • Individual rewards
  • Mobile app support
  • Course selection rule
  • Resilient cheat guard
  • Limit learners rewards in time frame
  • Progress bar can display progress towards next or ultimate level
  • Additional default level badges
  • Substitute experience points for other symbols
  • Viewing the block on someone's profile displays their level
  • Import points from a CSV file
  • IOMAD support for the leaderboard and team leaderboard
  • Download the report
  • Download the logs
  • Email support

Visit our website for more information on Level up! Plus.

How to use one block for all courses?

In order to gather experience points from all the courses a student is participating in, you have to set the admin setting Where are experience points used? to 'For the whole site'. This setting is located under "Site administration > Plugins > Blocks > Level up! > General settings". Once set, any block newly or previously added will display the total experience points of your students.

How are experience points calculated?

Please refer to the Level up! documentation.

How to unlock content at a certain level?

Please refer to the Level up! documentation.

How to unlock a course at a certain level?

Please refer to the Level up! documentation.

Shortcodes supported

What are those? Shortcodes can be used in text editors throughout Moodle to include or modify the content. The plugin Shortcodes must be installed to enable them.

Level up! comes with shortcodes to display the learner's level badge, their progress bar, or even the leaderboard anywhere you like. Shortcodes can also be used to conditionally display content according to a learner's current level. For a list of available shortcodes and their documentation, please refer to Level up! documentation.

Provided by
Branch Up


This plugin is part of sets Experience Points (XP), Gamification.


Screenshot #0
Screenshot #1
Screenshot #2
Screenshot #3
Screenshot #4
Screenshot #5
Screenshot #6
Screenshot #7
Screenshot #8
Screenshot #9


Frédéric Massart ⭐ (Lead maintainer)
Please login to view contributors details and/or to contact them

Comments RSS


  • Wed, Aug 24, 2016, 1:57 PM
    Hi! Thanks for this plugin, it's really great!
    However, I would like to use it for earning XP in the whole site. I have changed the setting on the administration block and set it for the whole site, but it doesn't seem to work. I don't know what I'm doing wrong. When I set it for the course it works just fine, but when I set it for the whole site the ladder is not working. Any help will be much appreciated. Thank you!
  • Wed, Aug 24, 2016, 2:20 PM
    Hi Athina,

    Once you've switched to using the block for the whole site, could you then add the block to the front page, then in the settings of the block mark it as being displayed throughout the entire site. Once this is done, log-in as a student, head to a course and post to a forum. Logging back in as the manager, access the logs of the "Level up" through its settings page and check if you see the students actions.

    Let me know how you go from there.
  • Wed, Aug 24, 2016, 7:54 PM
    Hi Frédéric! Thank you for your prompt reply. It worked and now I can see all the XP of the users. I now have another question. Is there a way when we create our own rules to put a condition on the grade achieved? I have allowed multiple tries in the quiz so if you don't get 100% the first time it allows you to retry. However, this is unfair for the student who will manage to get 100% the first time as XP points are calculated on the event of quiz started and quiz ended. Thank you.
  • Thu, Aug 25, 2016, 1:13 AM
    Hello Frédéric! Congratulations for this plugin. Excellent work! The following maybe it is a stupid question, but I'm no able to configure properly the rules. Here it goes: I'm playing around with rules and would like to know whether there is a method to get points only the first time the user view/update/complete one activity. Example: after viewing a scorm module, the student gets some points, but second time should not get any additional point. The reason is that, otherwise, the user can access different levels just accessing a single scorm several times. Hope this question is not bothering you and people. Sorry for my ignorance.
  • Thu, Aug 25, 2016, 11:05 AM
    @Athina, and @Jose,

    Both your questions are related. First, it is not possible to attribute XP based on the result a student may have, this is not directly related to what you were asking but it is important to note. The plugin was designed to reward students based on their actions, not on their achievements.

    That being said, it is not either possible to check how many times they have accessed something and change the rules accordingly. You are not the first to request such behaviour so I may try to implement it. Meantime I don't really have a solution. I wanted to look at developing a "Quest" plugin which would allow teachers to set complex rules for 1 time rewards (as XP, and other things) but I haven't had time for it yet.

    Current, I am working with Adrian Greeve on "Stash" (https://moodle.org/plugins/block_stash), another plugin you can use to gamify your courses.

    I hope this answers your questions.

  • Wed, Sep 7, 2016, 5:52 PM
    LOVE this plug-in. One quick query,is there a way to change the 'cool, thanks' message to something else?
  • Thu, Sep 8, 2016, 10:51 AM
    Hi Eddie. No, not at this stage, but you can customise your language back to rephrase the string _coolthanks_ to whatever you like.
  • Sat, Sep 24, 2016, 11:20 PM
    Hello everyone. Could anyone tell me how to disable \core\event\course_viewed so that it doesn't add points when the event occurs. I can't find how to do it. Thanks in advance and congratulations for the plugin.
  • Tue, Sep 27, 2016, 3:43 PM
    Hi Juanma, simply add a rule, on top of all the other ones, which attributes 0 for that specific event.
  • Fri, Sep 30, 2016, 5:04 PM
    The Rules tab opens a blank page for me..
    Is there something i can do to fix this?
    I am using moodle version 3.1

  • Fri, Sep 30, 2016, 5:25 PM
    Hello again..
    The above issue was due to the fact that Level up! was set to the "whole site".. When i set it back to "a course" rules tab was properly workin.
    So.. i can't create custom rules regarding the whole site?

  • Fri, Sep 30, 2016, 5:32 PM
    That looks like a bug, could you please raise a ticket at: https://github.com/FMCorz/moodle-block_xp/issues Thanks!
  • Fri, Sep 30, 2016, 6:42 PM

    Just like Juanma Campos, i would like to to disable or change the \core\event\course_viewed event.
    I tried out 2 things.

    1. I created a new rule: (event CRUD is equal to 'r' assign 1 point) --> this doesn't seem to "override" the default rule about event CRUD is equal to 'r'.

    2. I created a new rule: (Event action is equal to course_viewed assign 1 point) --> it neither worked.

    Any ideas?
  • Wed, Dec 14, 2016, 4:02 PM
    is it work on PHP7.1?
  • Wed, Dec 14, 2016, 5:01 PM
    I have not tried myself. If you happen to try, could you let us know of your findings? Thanks!
Please login to post comments