FMCorz / moodle-block_xp

A gamification plugin for Moodle allowing students to gain experience points and level up.
https://levelup.plus/?ref=github
149 stars 41 forks source link

Label with completion awards points even when competed previously #162

Open Gamewise opened 10 months ago

Gamewise commented 10 months ago

Hi there. Cool plugin!

I've found that Level up XP awards points if I simply toggle a label with manual completion on and off repeatedly. Level up seems to award extra points for both turning a completed label OFF, and again for ON (marking it as complete).

Could you make it so that once a label has been marked as complete it can no longer award more points? Or make it so it takes away the points if a student toggles completion off? That way students can't cheat and get bonus points for just clicking...

Thanks!

FMCorz commented 10 months ago

Hi @Gamewise,

Thank you for your feedback. I believe we responded to the comment you left on on moodle.org, here is what we said:

That is true that when students are able to change the completion status of an activity, they could potentially get rewards more than once. This is because the event course_module_completion_updated is triggered and matches the default "update" rule. Turning on the cheat guard in the settings should prevent students from spam clicking the completion button. Alternatively, XP+ has a separate rule for activity completion that checks that the activity is completed, and that completion points were not previously awarded.

We will look at improving the default rules to mitigate the scenario that you are describing.

Gamewise commented 10 months ago

Hi FMCorz, thanks for getting back to me.

I've turned on cheat guard and still this problem persists. Is this a bug in the free version perhaps?

FMCorz commented 10 months ago

It shouldn't be, unless students have realised how to circumvent the cheat guard from the free version. The alternative would be to create a rule matching the event course_module_completion_updated (event name contains course_module_completion_updated) to gives 0 points, and place that rule above all other ones.

Gamewise commented 10 months ago

Sorry to be dense FMCorz, but won't making course_module_completion_updated give 0 points mean that no points at all are given? The thing is I do want manaul completion to award points, but only the first time.

FMCorz commented 10 months ago

You are correct, that would prevent any points from being attributed. These issues are the reason why XP+ has built-in support for activity completion. The alternative would be to use automatic completion on view, or something like that, so that students wouldn't be able to retrigger the completion, but that is not available for labels.

Gamewise commented 10 months ago

Update: I think my team might even be willing to pay for XP+ after all. I thought we didn't have the budget earlier, but that might be about to change. So with XP+ am I right in thinking it will just automatically check and not award points for multi-clicking the same label completion?

We also have a bunch of moodle courses on 2 sites, am I right in thinking we can customise the rules for points etc. on a course-by-course basis? And even have the level up on some courses and not others?

FMCorz commented 10 months ago

Hi @Gamewise,

So with XP+ am I right in thinking it will just automatically check and not award points for multi-clicking the same label completion?

Without changing any of your rules, XP+ cheat guard will check whether previous similar events happened within the indicated time frame and will block the reward if they did. However, the better way to set these label completion would be to create a new "Activity completion" rule as it is designed to do what you are expecting on its own. More on this here

am I right in thinking we can customise the rules for points etc. on a course-by-course basis? And even have the level up on some courses and not others?

Correct. In fact, XP works either this way, or site-wide. By default it works per course, where each course is 100% isolated from others by points, levels, leaderboard, etc. When used site-wide, there is only one set of rules, one set of points, and one set of levels, etc. More on this here

Gamewise commented 1 week ago

Thanks for this @FMCorz. I couldn't figure out how to do the 'activity completion' rule, as it looks like this method is outdated or something? For reference, currently I just have the default CRUD conditions in place like this: image

However, students seem to be getting points from just loggin on to the course or something... Is there a way I can set it up so that studenets only get points from activities and/or labels not just from clicking around the course?

Also, is it possible to update levels when students are halfway through a course? I have a situation where a bunch of students have already maxed out their levels even though they're only supposed to be a few levels in, so I'm wondering if I can simply adjust the distance between the levels on the fly as a temporary fix while I figure out how to set up the levelUp rules properly.

Thanks for any ideas you may have!

FMCorz commented 1 week ago

Hi @Gamewise,

I would suggest to remove all the default rules if points are being given unexpectedly.

Activity completion is availble with XP+ either:

You can certainly change the levels at any time.

Gamewise commented 5 days ago

Ok thanks FMCorz.