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:
8348 sites
497 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


  • Fri, Nov 20, 2015, 12:15 AM
    Hi Frédéric. I appear to have a problem with this plugin, although I may know the answer. I have installed Level Up onto our version of Moodle and all seems fine, and I have set up some basic rules. The first rule I have set up is simply 10 points for opening up and reading the course handbook. I noticed that Level Up is not updating my score and it remains at 0. For some time we have had problems with the Cron job, which will not update the database from the the log files and I am guessing you are using this data to determine the tasks which have been completed?
  • Fri, Nov 20, 2015, 9:50 AM
    Hi Frédéric,
    This is a great plugin. Thanks for contribution. It's better if your plugin relates to the grades of a student gained in each assignment, and if it displays the "Ladder" in block like the screenshot instead of Level. Are you planning to connect XP to the actual students' performance further? I look forward to enjoying the next version.
    Best wishes,
  • Fri, Nov 20, 2015, 10:17 AM
    Hi Rich,

    It's hard to debug a problem with so little information. But no, the plugin does not use cron to compute the experience points, they are computed live. Did you log in as a student before testing? As the plugin essentially relies on events, is your "handbook" module triggering them with the right information? The plugin ignores everything but participating events.

    Hi Phuong,

    To the risk of disappointing you, I am more and more thinking that block_xp is not the right place for rewarding students for their performance. The idea is really to reward students for their progress and investment rather than comparing themselves to others. See, in the first versions there was not even a ladder.

    On a positive note, I have been thinking about creating another plugin which would suit better what you are trying to achieve. Hopefully I'll get time to work on it a bit at some point.
  • Sat, Nov 21, 2015, 11:20 AM
    Brilliant plugin! Two questions: (1) As a Teacher/Course Creator, can I make myself 'Level 10' automatically? (2) I find the 100px x 100px quite small for custom badges -is it possible to adjust these dimensions?
  • Mon, Nov 23, 2015, 10:47 AM
    Hi Garth,

    Teachers should not receive any experience points and are not displayed in the list ever. Should you wish to change that behaviour you can abuse the capability block/xp:earn, and manually set each teacher to level 10. From memory you can change the alter the CSS to use larger images, but you'd have to test the results.

  • Wed, Nov 25, 2015, 1:48 AM

    Currently I have a bit of a problem understanding how this works. I have a course with 16 activities and I'd like to award 6xp for each activity. However, I'm not getting a consistent score awarded on each activity.

    I've tried playing around with the conditions but it doesn't appear to be making an impact. If I wanted to set a score of six for completing a lesson, how would I set it up?


  • Wed, Nov 25, 2015, 10:45 AM
    Hi Gareth,

    You don't really assign "XP" to activities. The XP attributes comes from actions that the student has performed in the course. What the rules allow you is to change the amount of XP they get for each of those actions. So if you were to set a rule "Activity is blah blah give 6xp" that would mean that if the user performs an action in that activity, they will get 6xp. However, some activities "trigger" a lot more actions than others. For instance, a forum can report actions when you view the forum, view a discussion, create a discussion, reply to a discussion, and probably more. Each of these actions will give 6xp to the student.

    Maybe what you're trying to do is reward the user for "completing" an activity, that's a bit different and I have to admit that I did not investigate how that could be done. If you're feeling that block_xp could be improved by supporting something that you need, could you please raise an issue on the Github project?

  • Wed, Nov 25, 2015, 9:30 PM
    Hi Fred,

    Thanks a lot for your reply. That explains why I'm getting a different score for each activity.

    The course I'm working on is non-linear, meaning that the student chooses which order they complete the activities in. What I'd like to do is give them the same XP or % complete for completing each activity. I would use the 'progress bar' for this but it is set up in linear way, so its not ideal.

    I think the system I want is not really within the scope of this plugin, so maybe it would need a different (as yet uncoded) plugin entirely.

    Thanks very much for your help,

  • Thu, Nov 26, 2015, 10:12 AM
    Hi Gareth,

    Instead, you could try to blacklist all the events, except: \core\event\course_module_completion_updated. That event is triggered whenever the completion of a module is updated. Unfortunately that does not mean that they have completed it, but if you set all your activities to "automatic completion" then it may be reliable.

    Let me know how this goes.

  • Fri, Dec 4, 2015, 3:46 AM

    Hi Fred. Thanks a lot for the recent updates. I love the new rules editing UI - simply brilliant!

  • Tue, Dec 8, 2015, 10:58 PM
    Hello, I need a bit of help. I use Moodle 3.0 and I want to incorporate the Level up block inside the quiz area above the question maybe when the quiz is going on so that there would be a bit of graphics inside the quiz area and people can see the level and the progress above or below the questions.
  • Wed, Dec 9, 2015, 10:19 AM
    Hi Peter,

    Currently the block can only be added to courses and then marked as being displayed everywhere. I think that's the only way you can solve your problem for now.

  • Thu, Dec 10, 2015, 1:41 PM
    Hi there,

    I;m having trouble adding the block for the Student User. I have added it toa course and it is showing for the Admin User. Other blocks are able to be added. the problem just seems to be for the Level Up! Plugin. I have already checked the permissions and Student User has view capability. Any suggestions?

    Thanks in advance.
  • Sun, Jan 3, 2016, 6:10 PM
    I am using level up plugin in moodle 2.9.3+, how can customize triggered events and some rules, for example when a student get loggin should get a some points, when a student post comments in a forum should get points different to the one get when viewed a forum, what should I do, which pages should I edit; any assistance please???
  • Wed, Jan 20, 2016, 9:54 AM
    When I try to access the rules, it asks for a password?
Please login to post comments