Plugin Management
Moodle has a modular architecture built around plugins. Everything from activity modules and themes to authentication methods and text editors is a plugin. This guide covers how to find, install, update, and remove plugins from your Moodle site.
Types of Plugins
Moodle supports over 30 plugin types, including:
- Activity modules (mod): Assignment, Quiz, Forum, etc.
- Blocks (block): Calendar, HTML, Online users, etc.
- Themes (theme): Boost, Classic, and third-party themes
- Authentication plugins (auth): LDAP, OAuth 2, SAML, etc.
- Enrolment plugins (enrol): Self-enrolment, manual, cohort sync, etc.
- Repository plugins (repository): File uploads, Google Drive, Dropbox, etc.
- Question types (qtype): Multiple choice, essay, calculated, etc.
- Course formats (format): Topics, weekly, tiles, etc.
- Filters (filter): Multimedia, MathJax, multi-language, etc.
- Local plugins (local): Custom site-specific functionality
- Admin tools (tool): Log store, recycling bin, MFA, etc.
- Editors (editor): Atto, TinyMCE, etc.
Finding Plugins
The official Moodle plugins directory at moodle.org/plugins hosts thousands of community-contributed plugins. Each plugin listing includes:
- Compatible Moodle versions
- Download links
- Documentation and screenshots
- User ratings and reviews
- Bug tracker links
- Maintenance status
Installing Plugins
Method 1: Web Interface Installation
- Download the plugin ZIP file from the Moodle plugins directory
- Go to Site administration > Plugins > Install plugins
- Upload the ZIP file or drag-and-drop it into the upload area
- Click Install plugin from the ZIP file
- Moodle validates the plugin and shows its details
- Click Continue to complete the installation
- Complete any database upgrades on the notifications page
Note: Web-based installation requires the web server to have write access to the plugin directory. If your server is configured with read-only code directories (recommended for security), use the manual method.
Method 2: Manual Installation
- Download the plugin ZIP file
- Extract the archive into the correct Moodle subdirectory (e.g.,
/var/www/moodle/mod/for activity modules,/var/www/moodle/blocks/for blocks) - Ensure correct file ownership:
chown -R root:root /var/www/moodle/mod/pluginname - Visit Site administration > Notifications to trigger the database upgrade
Method 3: Git Submodules
For sites managed with Git, install plugins as Git submodules:
cd /var/www/moodle
git submodule add https://github.com/author/moodle-mod_pluginname.git mod/pluginname
git submodule update --init
Checking for Plugin Updates
Moodle can automatically check for available plugin updates. Navigate to Site administration > Plugins > Plugins overview to see all installed plugins, their current versions, and available updates. Enable automatic update notifications at Site administration > Server > Update notifications.
Plugin Validation
Before installing a plugin, Moodle performs validation checks including:
- Plugin type and directory structure verification
- Version compatibility check against the current Moodle version
- Dependency checks (required plugins and minimum versions)
- Code structure validation
Uninstalling Plugins
To remove a plugin:
- Go to Site administration > Plugins > Plugins overview
- Find the plugin and click Uninstall
- Confirm the uninstallation — Moodle removes database tables and data associated with the plugin
- Delete the plugin files from the server
Warning: Uninstalling a plugin permanently deletes all associated data. Back up your site before uninstalling plugins that contain user data.
Troubleshooting Plugin Issues
- Plugin not detected: Verify the directory name matches the plugin's frankenstyle name (e.g.,
mod_customcertshould be inmod/customcert/) - Version mismatch: Check that the plugin version is compatible with your Moodle version
- Missing dependencies: Install required dependencies first
- Broken plugin preventing login: Rename the plugin directory to disable it, then access the site