
PlayerGroup lets students autonomously form their own groups directly from the activity page — no teacher intervention needed. It replaces manual group assignment with a self-service experience that works for any course format: create or join a group (open, password-protected, or invite-only), see who is in it, and let the gradebook and completion tracking follow along automatically.
👥 Who it is for: teachers running project-based learning, labs with limited seats per group, or any course where peer team selection matters — with or without the PlayerHUD gamification ecosystem.
📋 Requirements
- Moodle 4.5 or later; PHP 8.2 or later.
- Standalone activity — no other PlayerGames plugin is required to use it.
✨ Features
- 👥 Group Creation: students create groups with a custom name, description and emoji badge — no teacher intervention needed.
- 🔐 Privacy Levels: open, password-protected, or invite-only.
- 📨 Invite System: peer invitations via Moodle's native notifications, gated by course participant visibility rules.
- 👀 View Members: a read-only member list per group, with the founder marked as leader, on web and mobile.
- ⚙️ Configurable Limits: teachers set minimum and maximum members per group.
- 🗂️ Automatic Grouping: a Moodle grouping is created automatically — no manual setup required.
- 🔒 Concurrency-Safe: group creation, joining and invites are serialised per activity, so simultaneous requests can never exceed a group's member limit.
- 🏆 Gradebook Integration & Completion: grade awarded automatically on joining or creating a group, plus a custom activity completion rule.
- 📊 Teacher Reports: activity log and a groups-and-members roster, both exportable to CSV and Excel.
- 🔗 Groups API: full integration with Moodle's native groups/groupings, plus a public read-only API other plugins can query.
- 📱 Mobile App: native support in the official Moodle app — create, join, leave, invite, and manage your group on the go.
🕹️ PlayerGames Ecosystem
PlayerGroup is part of the PlayerGames gamification ecosystem, though it works standalone too:
Explore the full ecosystem at jeanlucio.github.io/en/playergames.
🚀 Getting started
- Install PlayerGroup in
mod/playergroup and complete the Moodle upgrade.
- Add a PlayerGroup activity to any course — every setting is configured per instance, no site-level settings needed.
- Set the privacy level, member limits, and (optionally) the grouping to use.
- Students create or join a group directly from the activity page; gradebook and completion tracking follow automatically.
🔐 Security & Compliance
- Capability-based access control for creating, viewing, and managing groups and invites.
- Every group operation is scoped by activity instance — an ID from another activity or course is always rejected.
require_sesskey() protection on all state-changing operations; AJAX validated by Moodle's core/ajax dispatcher.
- Group creation, joining and invite acceptance are serialised per instance, closing a race that could otherwise exceed a group's member limit.
- Group passwords are stored with
password_hash() and never returned to the client.
- Full Privacy API implementation, plus backup/restore support with safe ID remapping.
📚 Documentation and support
Full documentation — features, educational purpose, the PlayerGames ecosystem, usage guide, the full test suite, and security details — is at jeanlucio.github.io/moodle-mod_playergroup. Found a bug or have a question? Open an issue on the issue tracker.
📄 License
This project is licensed under the GNU General Public License v3 (GPLv3).
Copyright: 2026 Jean Lúcio