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
491 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, Sep 19, 2014, 1:55 AM
    I cant see the report page.... and i cant see users in the block anybody can help me please
  • Fri, Sep 19, 2014, 10:05 AM
    @Michell, could you give a bit more details? You will only see the students who have done something in the course. I suggest you login as a student and navigate through the course, then check the report. Also make sure that the XP gain was enabled (first setting on the settings page).
  • Fri, Sep 26, 2014, 3:47 AM
    Hey Man!
    Nice project.
    I Speak Portuguese Brazil.
    I can perform translate the plugin ?
    Think which is possible?

  • Fri, Sep 26, 2014, 9:52 AM
    You sure can Andre,

    I would be happy for you to do so. Have you ever used AMOS? That is our platform to translate Moodle and the plugins.

    See here: http://lang.moodle.org/

  • Tue, Oct 7, 2014, 11:03 AM
    @Frédéric Massart Thanks for that, exactly what I was looking for.
    Although do you think there could be an admin block for rapid EXP bonuses. I would love to be able to give EXP boosts live in class!
  • Tue, Oct 7, 2014, 11:06 AM
    @Jesse Everything is possible, I guess it is just a matter of deciding what is useful for everyone, and what is not.

    Could you expand a bit more how you visualise this feature you are describing? As well as how you would use it.

  • Tue, Oct 7, 2014, 6:48 PM
    I am not sure why. But by default the block is not visible to the students.
  • Wed, Oct 8, 2014, 10:37 AM
    @Diljith You sent me a message saying that it was resolved, could you share what was the issue?

  • Sat, Feb 14, 2015, 5:09 AM
    Hello Frédéric, fist off this is a fantastic plugin, thank you very much for creating it. I am currently using it with 250 16/17 year old students as part of a pilot project using gamification.

    Some problems I have run into include students refreshing a course page to gain points. Is there any time function built into the code which would prevent repeated actions within a short time period? and can this be adjusted within the code? As my students are a bit younger, some of them are more interested in gaming the system to receive points instead of doing the work to receive points.

    One thing that would be great for my application would be if all of the default point values were zero to begin with and then I can select what I want to award points for. Currently as I look through the report I am surprised at what actions are being awarded points and then I often have to go in and lower them or set them to zero. I realize I could raise the point values for each level but I would like to be able to identify to students what actions receive what point values. For example when students submit an assignment I would like them to receive 10xp. Currently adding a submission is awarded points. If text is entered then that is awarded points as well. If a file is uploaded points as well. Many things are happening with one submission it is difficult to predefine how may points are going to be awarded for that action(s).

    Students want to know what they will receive points for. It gets a bit difficult for me to predefine these values.

    All in all a great plugin. Just need to tailor it to my particular application.
  • Mon, Feb 16, 2015, 10:47 AM
    Hi Jeremy,

    Thanks for your feedback! I am glad to see that the plugin is being used in real environments and I would be happy to hear about the results of your gamification experimentation.

    Unfortunately it will never be easy for me to prevent the students to trick the system. The more barriers you put, the more fun smile. There are ways, but they come with a performance cost which can be a big drawback for some environments. If you are using the latest version, there should be a basic "cheat check". In short, you cannot repeat the same event/action twice within 30s, so refreshing the course page will not be very efficient. Or if you do more than 10 actions, within 30 seconds, then going back on the course page would give you points. Someone encountered an issue which is not similar but related and reported a bug on Github. I would not be surprised to see more settings to prevent cheats in the future, but that only if I find time to, or if someone kindly submits a patch.

    The plugins entirely relies on the "events" triggered by the system. The default behaviour of "Level up!" is to allow N points for the events of type "Create", "Update" and "Read". The "Delete" actions are ignored. The problem you are facing is that you want a greater level of granurality that I cannot provide as a default, even though it makes perfect sense. I assumed that teachers would have to experiment with the plugins to see when and where events make sense and don't, and from there maybe we can improve block_xp to reduce the world load when setting up a course.

    In the mean time, may I suggest you to redefine the Read, Update and Create events and give them 0, then on top of that you can add the specific events that you want to reward your students with, say submitting an assignment, or posting to a forum. To find out what events/actions are available, observe the Log reports which will contain all the actions performed by your or your students.

    Another way to limit the "places" where a student can earn experience points is to use the capability "earnxp" or something like this. The modules in which the user does not have that permission will not be awarded anything. That can be useful if you want to blacklist an activity for example.

    I hope that helped, let me know how it works and please keep on sharing your experience.

    (Filing bugs or improvements requests on the Github page helps also ;)).

  • Fri, Feb 20, 2015, 3:36 PM
    Is it possible to make the ladder anonymous, so that students can see where they rank, but not the names of students above or below them?
  • Sat, Feb 21, 2015, 4:59 AM
    Jelly, there is some research that suggests seeing who it above you on the leader board is motivating (especially if you know who that person is). There is also a demotivational factor if you find yourself too low on the leader board. Most gamified environments include the 2 people above you and the 2 people below you. You don't know where you fall on the entire board but you do know who is near you on the list.

    I would like to see your suggestion implemented but perhaps with a top 10 for the entire course and then the 2 people immediately above and below you.
  • Mon, Feb 23, 2015, 4:32 PM
    Jelly, Jeremy,

    May I suggest raising an issue and continuing the discussion on the plugin's tracker issue? http://github.com/FMCorz/moodle-block_xp/issues

    It is easier to keep track of feature requests and their associated discussions.

  • Thu, Feb 26, 2015, 1:06 PM
    Hi Frederic, congratulations for your great job. The plugin is really amazing.
    I have found a small problem, that I put already in the bug tracker. When you restore a course containing the plugin enabled you always get a disabled plugin. If you can have a look or give me a clue, it would be very nice.
    Thanks in advance!

  • Thu, Feb 26, 2015, 2:41 PM
    Thanks Santiago,

    I have to look into it, but I suspect that I forgot to handle backups, I will look into it when I have time.

Please login to post comments