Your Moodle version

Blocks: Level up!

Maintained by Picture of Frédéric Massart Frédéric Massart
Engage your students! Gamify your students' learning experience by allowing them to level up in their courses. #gamification #game

You can easily support this plugin: add it to your favourites and star it on GitHub!

Feature request and bug reports

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


  • Automatically captures and attributes experience points to students' 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 ladder to display the ranking of the students
  • Ability to set the number of levels and the experience required to get to them
  • Images can be uploaded to customise for the appearance of the levels
  • The amount of experience points earned per event is customizable
  • Page to display the list of levels and a description
  • Experience points are earned per course
  • An event is fired when a student levels up (for developers)

How are experience points calculated?

This block listens to events triggered in Moodle and captures some according to pre-defined rules. It then attributes experience points based on the information contained in the event. For more information about the events, refer to the documentation.

Only the users with the capability block/xp:earnxp can earn experience points. This capability is given by default to students. Also actions triggered by guests, non-logged in users or administrators are ignored.

The following events are always ignored:

  • Events from another context than course or module
  • Events having another educational level than participating
  • Events flagged as anonymous, e.g. in an anonymous Feedback

The rest is up to you. By default the plugin comes with a minimal set of rules to attribute experience points to actions, and to ignore some redundant ones. Visit the Rules page in the plugin itself to view or override them.

Note: Repeated actions within a short time interval are ignored to prevent cheating.

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!". Once set, any block newly or previously added will display the total experience points of your student.


This plugin is part of set Experience Points (XP).


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


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

Comments RSS

Show comments
  • Picture of Arthur Engalychev
    Wed, May 18, 2016, 2:31 PM
    Yes, i did. I even gave the right to add this unit, but students still do not see this unit, it only
    sees the administrator, the teacher also sees his pictures without the stars
  • Picture of Arthur Engalychev
    Wed, May 18, 2016, 2:33 PM
    in the roles I have set to give the right to all that concerns the unit of experience, But they still can't see it. The administrator can see in the log what experiences have they had, but students don't see themselves
  • Picture of Arthur Engalychev
    Wed, May 18, 2016, 2:36 PM
    is there a detailed user manual, after installing the plugin for the roles?
  • Picture of Frédéric Massart
    Wed, May 18, 2016, 2:54 PM
    There isn't, but the default permissions should be enough for default 'student' role to work. There must be another permission that conflicts with those ones. Any user that has the permission 'block/xp:view' in the context of the course where the block is displayed should see it.
  • Picture of Arthur Engalychev
    Wed, May 18, 2016, 3:31 PM
    I checked the rights of all roles, everywhere is "Give the right", but the student still doesn't see. I also put other topics, no change, cleaned the cache too, nothing has changed. What could be the conflict?
  • Picture of Arthur Engalychev
    Wed, May 18, 2016, 3:31 PM
    the plugin is under my version moodle
  • Picture of Arthur Engalychev
    Wed, May 18, 2016, 3:59 PM
    I tried to put the default roles, but also no change
  • Picture of Arthur Engalychev
    Wed, May 18, 2016, 5:27 PM
    can you give me your personal e-mail? i'll send screenshot for you.
  • Picture of Leonardo Zambaldi
    Sat, May 21, 2016, 2:40 AM
    Hi Frédéric, first of all thank you for the amazing plugin.

    I really wanted to award my students based on their activity grades, but I know it's not possible. However I think i found a "not ideal "solution but it should work. Here it goes:

    1)I can set the conclusion criteria of an activity to be "grade > 70%"
    2)I can assign a badge criteria to be "when an activity is completed".
    3)I can track when a badge is awarded and give points for that.

    The problem is that i can't create a rule that tracks a badge being awarded.
    I tried so many things, such as: name component equals "core/event/badge_awarded"

    If I look at my general log from site administration i can see that the event was triggered.

    Do you know how to solve that?

    Thank you for any help!
  • Picture of Frédéric Massart
    Mon, May 23, 2016, 11:01 AM
    Hi Leonardo,

    Interesting method, that's clever. Now the problem that you're facing is that the badge awarded event is of type "Teaching" and will therefore not be used to attribute XP points to a user. Also, the context of the event may not be inside a course which would be another factor preventing it from counting.

    Sorry I can't be of any help.
  • Picture of Gilberto Reyna
    Sun, Jun 19, 2016, 8:12 AM
    Hello. I tried to use this plugin under moodle 3.1. Everything works fine except the page for setting the rules (/blocks/xp/rules.php). The server just returns an HTTP error 500 and just says "The page doesnt works. The page cannot process this request now."
    I hope theres a fix for this because I really want to try the block on my courses.
  • Picture of Frédéric Massart
    Sun, Jun 19, 2016, 1:54 PM
    Hi Gilberto, would you be able to check your logs and raise an issue on the bug tracker: I am not presently aware of any issues. Could you also check your PHP version? Thanks!
  • Picture of Javier Flaqué
    Wed, Jul 13, 2016, 10:35 PM

    Great job with this block!

    One question, Can I put a condition to give points a quiz if approved?

    Thank you
  • Picture of Frédéric Massart
    Thu, Jul 14, 2016, 10:33 AM
    Hi, I'm afraid not, at the moment it is based on students' actions not how they perform. Cheers!
  • Picture of Marko Dehmel
    Thu, Jul 21, 2016, 7:37 PM
    is there an opportunity to disable the default rules?
    Thank you!
1 2 3 4 5 6 7 8 9 10
Please login to post comments