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


  • Thu, Sep 24, 2015, 11:15 AM
    Hi Brian,

    Not that I am aware of. CRUD means Create/Read/Update/Delete, those are just the rough "type" of an event. As the plugin is relying exclusively on events triggered by Moodle, it becomes very tricky if you want to inspect the "state" of the course, for instance the completion of each user. Technically it should be possible but I'm afraid that the user interface would not allow you to, and would require quite a lot of configuration.

    The 'Activity/Resource' condition observes in which activity/resource the event happened, it is usually only useful if you combine that condition with another one.

    I hope this helps a bit.

  • Thu, Sep 24, 2015, 5:42 PM
    Thanks for the info Fred. I don't have the course set-up to have course completion status. What I am looking for is in a unit, let's say I have 10 things (lessons, quizzes, URL Links...) that I assign and have "completion status" already set for each item in each item's settings (must receive a grade, must view, etc...). I use that in conjunction with the Progress Bar to help students monitor their activity.

    When all required items are completed for the unit (units are "topics" in Moodle-speak), I want to issue more experience points. It is outside the realm of course completion, since I don't have that set-up. Is there a way to set it up using the "ALL conditions must me met" and then selecting all the items that need to be done with a completion condition?
  • Thu, Sep 24, 2015, 5:52 PM
    Sorry Brian, when I mentioned course completion I included activity completion in there as well. This plugin is not passive, it is listening to live events, so if I may be a bit technical we would need an event to be triggered when the completion of all the items you require is met. So no you cannot achieve this by using "ALL conditions must be met". The progress bar plugin is working differently as far as I know.

    If we were to compare match your request with game terms I'd say that you want to reward your students when the complete quests, a quest being a unit. I have had in mind to create a separate plugin, which could work with block_xp, that would define quests for the students to do. I'll keep your request in mind ;).
  • Thu, Sep 24, 2015, 8:04 PM
    So, for my clarification, Level Up looks only at live events, as they happen, but doesn't necessarily track them, correct? That would mean that the only situation that an "ALL conditions must be met" setting will work is if the first condition is a specific activity (ex. 01. NAFTA Questions) and the second condition is the specific action within that activity (QUIZ IS COMPLETED/SUBMITTED). You wouldn't be able to do "ALL conditions must be met" and then have the first condition is a specific activity (ex. 01. NAFTA Questions),the second condition is the specific action within that activity (QUIZ IS COMPLETED/SUBMITTED), the third condition being a different specific activity (ex. URL: North America Map Game), and the fourth condition being (LINK IS VIEWED).
  • Fri, Sep 25, 2015, 9:38 AM
    That is correct, you cannot expect an event to have happened in two simultaneous places at the same time.
  • Fri, Sep 25, 2015, 9:39 AM
    However, you could create one rule that captures two different combinations:

    ANY conditions must be met:
    - ALL conditions must be met:
    -- Event is X
    -- Activity is Y
    - ALL conditions must be met:
    -- Event is Z
    -- Activity is A
  • Mon, Sep 28, 2015, 10:38 PM
    Hey, Fred! I'm still a newbie on Moodle, but I'm trying to achieve a better visualization for badges in the school I'm working. How does your plugin work 'visually'? Does it shows a pop-up or modal when you level-up?
  • Tue, Sep 29, 2015, 11:34 AM
    Hi Paulo,

    A dialogue/modal is displayed when the user levelled up, similar to what you can see in the first screenshot. You can disable this using one of the settings.

  • Wed, Oct 14, 2015, 9:10 PM
    Is there a way to cancel out the 9 points for actually going to the course page (\core\event\course_viewed)? Some students are getting an advantage by revisiting the course page several times, because they are slower at getting work done in class, so they have to go back at home to finish it. Others constantly have missing work, so are having to go back to the course repeatedly, meaning that they are racking up points with every visit to the course page. I tried to cancel out all the default 9's by setting a rule for most of the "course module viewed" events (for example: "File: Course module viewed") as "0". I don't see an event for the plain general course module. I set the other CRUD events (C, U, D) to 0, but setting the "R" made it so none of my other point rules would register (Like game viewed, url viewed, lesson question answered, etc...).

    Any suggestions would be helpful. smile
  • Thu, Oct 15, 2015, 11:03 AM
    Hi Brian,

    Adding a rule on "eventname" is equal to "\core\event\course_viewed" attributing 0 experience points should give 0 to viewing the course. If you also want to remove the XP they earn when viewing modules, then adding a condition "eventname" contains "course_module_viewed" should work as well.

    Let me know how this goes.
  • Pimenko
    Mon, Oct 19, 2015, 4:48 AM
    Hi Fred,

    Thank you for your plugin and your work. I have a question about Level Up. I try to edit levels and rules but I'm not sure to understand if we can make what I want.
    I want students win experience linked with posts in a forum and quiz/test result. So can we do something like :

    1. Forum
    - If student post or create 3 messages in the forum, attribute him 5 points.
    - If student post or create 3 more messages (after the first 3 messages) in the forum, attribute him 15 points more.

    2. Quiz/test
    When student submit test use his result
    - If student have a result above 14, attribute him 10 points
    - If student have a result below 14, attribute him 5 points.

    Best regards.
  • Mon, Oct 19, 2015, 10:25 AM
    Hi Clement,

    Currently the plugin does not support this, the plugin listens to an action and remains unaware of the state in which the action happened. To re-use your example, the plugin can capture when a student posts to a forum, but it doesn't know if that is the first, or thousandth post the user submitted.

    For the quiz result, it's not currently possible either, but it should be easier for me to add support for it. I have been thinking about filtering the events based on a grade received, I will have to look a bit more into that.

    I hope you can find a way around these.

  • Pimenko
    Wed, Oct 21, 2015, 3:30 AM
    Hi Fred,

    Thank you for your answer. In fact I mix two things in my brain : activities completion and triggers. Now, I understand well Level Up counts triggers to measure experience. And not activies completion.
    So in my case, I think i'm gooing to use Level up + badges (for quiz or forum completion). Do you think in the futur it will be possible your plugin counts triggers AND activities completion ? I know these are two different things in Moodle but why not combine these two goods concepts.

    One more thing : do you have a link where we can find clarification about "Event property" fields (event name, target name, etc.)



  • Wed, Oct 21, 2015, 10:41 AM
    Hi Clément,

    It's not impossible that I add support for a combination of conditions rather than a combination of "triggers", I'm not sure when though.

    I answered a few things here: https://moodle.org/mod/forum/discuss.php?d=318996&parent=1280992 maybe that helps.

  • Thu, Nov 12, 2015, 6:06 AM
    This is great for my middle school kids. The 10 levels default was reached in a week or 2. So I went and added more levels (up to 100) and increased the algorithtm multiplier.
Please login to post comments