Blocks ::: block_stash
Maintained by Adrian Greeve, Frédéric Massart ⭐
Add an inventory of items to your course and let your students find items by exploring the activities. #game #gamification
Latest release:
1322 sites
95 fans
Current versions available: 2

The stash block is a good way to encourage more interaction with activities and is invaluable for teachers looking to gamify their course.

This plugin introduces a block that shows students items that they have picked up through the course.

The teacher can create items and then place them in activities and resources for students to find.

Items can be set to be collected once and encourages exploration of the course material. It is also possible to set an item to have an unlimited supply from a set location. This could encourage  students to return to specific areas to collect more items. 

You can also check out this video:

Quick start

We've crafted a sample course for you to try, it is the best way to see what this plugin has to offer. Please accurately follow those steps:

1/ Get your hands on a Moodle installation
2/ Install the three following plugins (without exception)
3/ Enable conditional access, named enableavailability under "Site administration > Advanced features"
4/ Restore this backup file as a new course

5/ Enrol a student in the new course
Now, login as that student and try the course

Important note

In order to make this plugin easier to use and fully featured, please also install:

They are highly recommended.


This plugin is part of sets Stash, Gamification.


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


Adrian Greeve (Lead maintainer)
Frédéric Massart ⭐: (The real lead maintainer)
Please login to view contributors details and/or to contact them

Comments RSS

Show comments
  • Wed, Jun 2, 2021, 2:14 PM
    Hello Sébastien, Thanks for your kind words about the plugin. I don't have much detail to go on as to what might be the problem here, so I'll try to explain the process. The trade option works in a similar way to the items. You copy the "Snippet" (it looks like [stashtrade secret="123"]) and paste it in an editor somewhere on the course. The trade object should become visible for both the teacher and the student. If you can't see it as a teacher then you may have to try copy and pasting the snippet again.
  • Thu, Jun 3, 2021, 1:15 AM
    Hi Adrian ! Thanks for feedback, I just found trade snippets thanks to your indications ! Thanks again for your work !
  • Mon, Jun 7, 2021, 7:49 PM
    Great plugin.
    I set up one item to be picked up once (supplies:1) in one location. It appears when the condition is satisfied. But if the item isn't picked up or one day pass, it "disappears" or doesn't appear until I reset it--what I usually do is to set the interval to any time (10 minutes, 1 hour) and then save it.
    The same thing happens if I have a scarce item to be picked once in different locations.
    Thank you for any help.
  • Fri, Jun 18, 2021, 10:11 AM
    Hello Victor Azuaje,
    I'm sorry to hear that you're having problems with items that have a limited supply. I haven't been able to replicate the problem. Are you running a standard install of Moodle or do you have some plugins / themes installed? If you list them then I could install them on my machine and see if they are some how interfering with the stash items. Any further information would be most useful.
  • Wed, Jun 30, 2021, 5:05 AM
    I was able to isolate the problem. This is an item (two or three instances of it) with some two restrictions: pass a test with a certain grade and before a certain date.
    If a student who has not satisfied the restrictions tries to pick the item up, the system allows her to do it. If there is one instance, this is bad for the trade option when only one item is needed to earn another item. If more than one item is needed, the student got the first one, but the other instances "disappear."
    Settings for more than one instance:
    Scarce item: not enabled.
    Supplies:1 (instance per location)
    Collection Interval: 16 weeks (I've trying any combination just to see if this fixes the issue. The student is supposed to pick only one instance during the semester.)
    We're running Moodle 3.8.6 with the Lambda theme. We're moving to 3.10 soon.
    We "solved" the problem by hiding the clickable items and posting non-clickable images in different labels and inverse mirror restrictions. (Images work better for students with disabilities.) When the restrictions are satisfied, the non-clickable image goes away and the pick-up one replaces it.
    The ideal situation: if restrictions are not satisfied, "pick up!" button does nothing.
    Thank you for the help.
    ** My students love the trade option since allows them to choose different forms of evaluations based on their performance. On their behalf, thank you for your hard work.)
  • Fri, Aug 27, 2021, 3:36 PM
    you did a really nice job with the plugin.
    I just tried the plugin and I have the problem that logged in students can change the setup of the plugin, they can add and delete items and they can change which person has which item. So, they can change the settings and they can give themselves the items without doing the work. Do you maybe know what the problem here is?
  • Sat, Oct 2, 2021, 5:05 PM
    This plugin is not working in moodle mobile app. How to make it work?
  • Wed, Apr 20, 2022, 8:10 PM
    Great Plugin, congrats!!
    Will it be released at moodle 4.0?
  • Thu, Apr 21, 2022, 9:46 AM
    I've released a new version that works with Moodle 4.0.
  • Thu, Apr 28, 2022, 9:54 AM
    Hi Adrian: Fantastic plug in for gamification!

    Question about restoring a course--I am trying to help one of my teachers restore his gamified course he his using for AP Physics for his Nuclear unit (preventing a zombie apocalypse!) , but we ran into this error during the restore process:

    Coding error detected, it must be fixed by a programmer: Unexpected property 'pickups' requested.
    More information about this error

    The link goes to this old discussion thread:

    So, I put on my admin hat, and did some troubleshooting--figured out I could restore his course without Stash, but that's no fun!!!

    Turned on debug and these are the error messages:

    ×Debug info:
    Error code: codingerror
    ×Stack trace:
    • line 135 of /blocks/stash/classes/persistent.php: coding_exception thrown
    • line 334 of /blocks/stash/classes/persistent.php: call to block_stash\persistent->set()
    • line 72 of /blocks/stash/classes/persistent.php: call to block_stash\persistent->from_record()
    • line 133 of /blocks/stash/backup/moodle2/restore_stash_stepslib.php: call to block_stash\persistent->__construct()
    • line 137 of /backup/util/plan/restore_structure_step.class.php: call to restore_stash_block_structure_step->process_block_stash_drop()
    • line 121 of /backup/util/helper/restore_structure_parser_processor.class.php: call to restore_structure_step->process()
    • line 178 of /backup/util/xml/parser/processors/grouped_parser_processor.class.php: call to restore_structure_parser_processor->dispatch_chunk()
    • line 109 of /backup/util/helper/restore_structure_parser_processor.class.php: call to grouped_parser_processor->postprocess_chunk()
    • line 148 of /backup/util/xml/parser/processors/simplified_parser_processor.class.php: call to restore_structure_parser_processor->postprocess_chunk()
    • line 92 of /backup/util/xml/parser/processors/progressive_parser_processor.class.php: call to simplified_parser_processor->process_chunk()
    • line 190 of /backup/util/xml/parser/progressive_parser.class.php: call to progressive_parser_processor->receive_chunk()
    • line 278 of /backup/util/xml/parser/progressive_parser.class.php: call to progressive_parser->publish()
    • line ? of unknownfile: call to progressive_parser->end_tag()
    • line 179 of /backup/util/xml/parser/progressive_parser.class.php: call to xml_parse()
    • line 158 of /backup/util/xml/parser/progressive_parser.class.php: call to progressive_parser->parse()
    • line 110 of /backup/util/plan/restore_structure_step.class.php: call to progressive_parser->process()
    • line 181 of /backup/util/plan/base_task.class.php: call to restore_structure_step->execute()
    • line 178 of /backup/util/plan/base_plan.class.php: call to base_task->execute()
    • line 168 of /backup/util/plan/restore_plan.class.php: call to base_plan->execute()
    • line 385 of /backup/controller/restore_controller.class.php: call to restore_plan->execute()
    • line 219 of /backup/util/ui/restore_ui.class.php: call to restore_controller->execute_plan()
    • line 143 of /backup/restore.php: call to restore_ui->execute()

    If you have any tips on how I can get his course restored that would be great, especially since you now have the "Scarce" item feature which is totally great--let's race to pick up the rare lead underpants and radioactive goggles!!!

    Thanks for your help and sharing your great work with the Moodle community!
  • Thu, Apr 28, 2022, 1:32 PM
    Thanks for the report. I'll try and replicate and fix it when I have time.
  • Wed, Jun 15, 2022, 8:11 PM
    The plugin is good for course gamification. Thank you for your contribution.
    Do stash items (coins) can have grade points too?
    Will they save the student grades in gradebook?
    Could I know stash block can do with Level Up points?
    Please let me know.
  • Fri, Aug 12, 2022, 11:38 PM
    Really great plugin ... but same problem as Joseph Liaw. Did you find a solution ?
    Thanks for this plugin.
  • Mon, Aug 15, 2022, 10:21 AM
    Hello Serge,
    I'm sorry, but I have not been able to find a solution. Joseph was kind enough to send me a backup file to try, but it restored with no errors on my system. If you can provide any further clues as to how this problem is replicated, then I would be very happy to spend some time fixing the issue. I'd very much like this plugin to work with no problems.
  • Wed, Sep 21, 2022, 9:52 PM
    Hello Adrian,
    Sorry for late response.
    I noticed that without users data, the restore is correct. I tried to restore with users data on a "clean" Moodle installation and this is OK too. I tried to restore with users data on the same Moodle as the original and it went ok too. I'll soon make upgrade to all instances of Moodle and I'll make another try with users data on a "not so clean" Moodle.
    Thanks again to share this great plugin with the community.
1 2 3 4 5 6 7 8 9
Please login to post comments