For the online learning world

Elearning WorldLMSMoodleTechnical

Moodle LMS Plugins: Step-by-Step Guide to Installation and Activation

Out of the box, Moodle LMS is a powerful learning management system that allows you to deliver courses to learners through all types of classes such as live online classes, self-paced classes, off-line classes and is even useful for in-person classes. But did you know that you can customize your online courses, the look and feel of your site, and streamline administrative and development tasks? This month, we take a look at how to install, configure and activate a variety of add-ons called plugins.

Adding a plugin to Moodle is a simple 2 to 4-step process:

  1. Choosing and downloading a plugin.
  2. Installing the plugin.
  3. Configuring the plugin – if applicable.
  4. Activating the plugin – only required by some plugins.

Choosing and Downloading a Moodle LMS plugin

First, you will need to find the perfect plugin for your Moodle site. Think of it like dating: you need to find a plugin that’s compatible with your site, shares your interests and doesn’t hog all the attention. Luckily, there are thousands of Moodle plugins to choose from places like (listed in the order you should look):

  • Moodle LMS (free) – Yes, I’m talking about your site. Did you know that there are over 400 plugins that come included with your Moodle LMS but not all of them are enabled? This should be your first stop as a solution might just involve enabling a plugin that you already have.
  • The Moodle Plugin Repository (free) – It includes thousands of plugins.
  • GitHub (free) – Not every author publishes their plugins in the Moodle repository. There are plugins and themes which are only available directly on GitHub, GitLabs and BitBucket. Unfortunately, there is no managed directory of these so ones that are not listed in the Moodle plugin directly tend to be a harder to find.
  • Commercial vendors (not free) – Again, there is no centralized directory of all commercial vendors of Moodle LMS plugins. Commercial plugins usually come with some level of support for your money. That said, maintainers of some free plugins are extremely responsive to fixing bugs.

You are sure to find a few that catch your eye. If you can’t find what you are looking for, ask around in Moodle forums to get some suggestions. Should all of these sources fail you, the open-source architecture of Moodle LMS makes it possible for you, or someone you hire, to develop a custom plugin to meet your specific requirements.

Some critical criteria for choosing a plugin

When choosing a plugin for your Moodle site…

Does the plugin do what you need it to do? There is no point in considering it if it is not moving your Moodle site in a positive direction. If you are a developer, finding a plugin with similar functionality and then customizing it to your needs can be a great time saver.

Does it work with your version of Moodle. Your version of Moodle should be listed as compatible with the plugin. This is easy to see on Moodle.org right near the top of the plugin’s page:

If you don’t see your release of Moodle listed under the Release line (1), click the Versions link (2) and check there.

Some plugins have not been updated for many years and may not include your version of Moodle in their compatibility list. This does not necessarily mean that it is not compatible, just that it has not been tested yet with your release of Moodle. Test the plugin on a local or non-production site first and read through the list of open issues to see if there are any compatibility issues which would prevent it from meeting your needs. In Moodle 4.1, I’ve used plugins listed as compatible with Moodle up to 3.2 and they still worked fine.

Plugins which become incompatible more frequently tend to include themes, course formats and quiz question types in more recent releases of Moodle. If you are considering one of these, look for plugins which are updated more or less with each major release of Moodle. Others plugin types may become incompatible over time depending on how they were created so it is always important to test a plugin before installing it in on your production site.

Does the plugin support all of the same languages as your Moodle LMS site does? Click on the Translations link of the plugin to find out. Keep in mind that, just because a plugin is not 100% translated into your language does not necessarily mean that it will not meet your needs. Some plugins don’t display text and therefore do not require any translations. Even a plugin which is 25% translated may do fine if 100% of the user facing text that you will be showing learners is translated. And of course, additional translations are always welcome by submitting these through the AMOS Translation site. Not only will these translations become available to you and everyone around the world, you will feel good about contributing back to the internationalization of Moodle. Note that this site is maintained by volunteers. As such, translations may take a few days before Moodle sites are updated around the world.

Installing the Plugin

Great, you found one or more plugins that are going to be life-changing or at least make life a little easier for you as a Site Administrator, your Moodle Manager, Teachers or Students, for your support staff or developers.

If you just need to enable a plugin that is already included with Moodle, you can skip to the section on Enabling plugins.

The installation files for a 3rd party plugin come in a ZIP file. If someone just gives you a bunch of files, ask them for the ZIP file or look for a way to download the plugin as a ZIP file

Some plugins, such as elaborate themes, may have dependencies on other plugins that also need to be installed. This is a more advanced topic which is not covered in this article. If this is your case, refer to the README.md file or other documentation that was provided to you with the plugin for more information.

During the installation of a new plugin, Moodle will perform several checks to make sure things go smoothly during the installation. This includes verifying that:

  • The contents of the ZIP file is actually a Moodle plugin.
  • The LMS has permission to add the plugin to your Moodle site. If this is a problem for you, it may be related to file system permissions. You will need to contact your server administrator and ask them to complete the installation of the plugin files manually.
  • The server environment meets the plugin’s system requirements.
  • All dependencies are met including things like: the minimum and maximum compatible version of Moodle, ensuring that you are not attempting to downgrade a plugin and verifying any dependency on other plugins.

IMPORTANT: Some check failures can actually prevent you from proceeding with the installation of the plugin and, in some cases, even prevent your Moodle LMS from working. It is therefore recommended that you always first try to install a new plugin on a local or non-production instance of Moodle LMS running the same version of Moodle as your live production site so that you are familiar with the steps and prepared with any information you might need when the time comes to install the plugin on your live site. More information is available on how to Experiment with Moodle LMS Risk-Free.

To install a plugin, login to your Moodle site as a Site Administrator. Then navigate to Site Administration > Plugins (tab) > Install plugins.

Next, you will be asked to add the .zip file containing the plugin. You can either:

  • Install the plugin from the Moodle plugin directory (not covered here);
  • Use the Choose a file… button followed by Upload a File (left navigation) and then Choose a file button to select the ZIP file containing the plugin from your computer; or
  • Simply drag and drop the ZIP file into the You can drag and drop files here to add them box.

IMPORTANT: Do not click the Install plugin from ZIP file button until the progress bar has completed the upload. Once it disappears, click the Install plugin from ZIP file button.

Your Moodle site will then check the ZIP to make sure that it actually contains a Moodle plugin, that the required files are in the right place and that any dependencies and system requirements are met. If it passes this validation, click the Continue button to proceed with the installation.

Next, Moodle will perform a check of the environment. This is a good time to make sure that your server still meets Moodle’s environment requirements. For example, some plugins require additional PHP extensions. Ideally, the status of each component should indicate OK and there should be no warning messages. If there is anything missing, or that needs to be changed or upgraded, resolve these issues before you click the Continue button.

Tip: If you get stuck here unexpectedly, you may still be able to access parts of your Moodle site by going to your https://campus.example.com/my/ (replacing https://campus.example.com with the URL of your site) but eventually Moodle will notice the pending installation and come back to this page.

In the next step, Moodle will check to ensure that all of the required dependencies have been met.

You may find that there are other plugins listed which have updates available. Sometimes you can upgrade these plugins from within Moodle, sometimes not. Either way, unless there is a required dependency, you do not need to upgrade all your plugins at this time. Again, I recommend testing out plugin upgrades on a local or non-production instance of Moodle first to ensure that it isn’t going to break your site. Click the Upgrade Moodle Database Now button.

The next page will display the results of the upgrade. As long as there are no errors that require your attention, simply click Continue to move onto the next step.

Configuring the Plugin

The final step of installing a Moodle plugin is to review the default settings. Some plugins don’t have any settings, in which case this step will be skipped while other plugins can have a few or many settings. The purpose of these settings varies from one plugin to the next but they are often to enable or disable features of the plugin or to set configurable settings such as colours, required credentials and things like that.

When you are finished reviewing and making changes, click the Save button at the bottom of the page.

You can always go back and make more changes to the settings by going to Site Administration > Plugins (tab) and clicking on the link for your particular plugin. Note that the settings for some plugins may be located in other tabs of Site Administration. If you are having trouble finding a particular setting, use the Site Administration search engine.

Activating a Plugin

While many plugins become active as soon as they are installed, some may require that you enable them. Let’s take a look at the different types of Moodle plugins that need to be enabled after installation.

  1. Activity or resource plugins: Activity plugins are used to add interactive elements to your courses, such as assignments, quizzes, forums, or surveys. After installation, activity plugins need to be manually enabled in the Site Administration > Plugins (tab) > Manage Activities page.
  2. Admin tools plugins: Admin tools plugins are used to manage and maintain your Moodle LMS site, such as user or course management. This type of plugin cannot usually be enabled or disabled, just installed and uninstalled. Some Admin Tools may include plugin-specific settings to enable or disable their functionality.
  3. Antivirus plugins: Antivirus plugins are used to check files uploaded to the LMS and will prevent their access if they contain viruses or malware. Moodle LMS does not come with ClamAV antivirus but does have a setting to enable it if the software is installed on your server. You will find the configuration settings for antivirus plugins by going to Site Administration > Plugins (tab) > Manage Antivirus Plugins.
  4. Authentication plugins: These plugins are used to authenticate users on your Moodle site using external systems, such as LDAP, SAML, OAuth2 or Shibboleth. After installation, activity plugins need to be manually enabled in the Site Administration > Plugins (tab) > Manage Authentication. These plugins also often require additional configuration to connect to the external system, such as setting up SSL certificates or configuring the authentication protocol.
  1. Course Format plugins: Course formats affect the way Moodle courses are laid out and organized, its navigation and its appearance. You can control its availability to course creators by navigating to Site Administration > Plugins (tab) > Manage Course Formats. Some course formats may have custom settings.
  2. Custom Field type plugins: Moodle Custom Field type plugins allow Site Administrators to create custom fields to collect or store additional information in user profiles, courses, or other entities in Moodle for use in various contexts throughout the site. Go to Site Administration > Plugins (tab) > Manage Custom Field Types and click on the “eye” icon to enable or disable a custom field type.
  3. Enrolment plugins: These plugins are used to enrol users in courses in Moodle. To make a new enrolment method available to students requires that you first enable the enrolment method by going to Site Administration > Plugins (tab) > Manage Enrol Plugins. It may require additional configuration to work properly. For example, the PayPal enrolment plugin requires the configuration of a PayPal account and API credentials to process payments. Adding a new enrolment method to existing courses requires that you add it manually to each course. However, most enrolment plugins have an Add Instance to New Courses setting that you can enable.
  4. Filter plugins: Filter plugins are used to modify the text or HTML output of your Moodle LMS site, such as replacing certain words with links, controlling the language of course content or adding custom formatting such as turning links to videos into video players. After installation, filter plugins need to be manually enabled in the Site Administration > Plugins (tab) > Manage Filters section of the Moodle LMS site. You may also need to change the order of the filters so that they are applied to strings of text and avoid conflicts or so that the output of one filter can be processed by another filter. If the filter should also process strings in headings, be sure to change the Apply to field for the plugin to Content and Headings.
  1. Local plugins: Local plugins are used to add custom functionality to your Moodle LMS site. This type of plugin cannot usually be enabled or disabled, just installed and uninstalled. Some Local plugins may include plugin-specific configurable settings which affect their functionality.
  2. Media player plugins: Media player plugins are used to play multimedia content, such as videos or audio files, within Moodle LMS. After installation, media player plugins need to be manually enabled in the Site Administration > Plugins (tab) > Manage Media Players page of the Moodle LMS site.
  3. Question Type plugins: Question Type plugins are used to add new question types to your quizzes or exams, such as matching or multiple-choice. After installation, Question type plugins need to be manually enabled in the Site Administration > Plugins (tab) > Manage Question Types page.
  4. Report plugins: Report plugins are used to generate custom reports on user activity or course data within Moodle LMS. This type of plugin cannot be enabled or disabled, just installed and uninstalled. Some Reports may include plugin-specific settings to configure their functionality.
  5. Repository plugins: Repository plugins are used to access and manage files from external sources, such as Google Drive, One Drive or Dropbox. After installation, repository plugins need to be manually enabled and configured in the Site Administration > Plugins (tab) > Manage Repositories page of the Moodle LMS site. On this same page, you can also change the order of appearance for the repositories.
  6. Theme plugins: Theme plugins are used to change the appearance of your Moodle LMS site, and may require manual enabling after installation. To enable a new theme, go to Site Administration > Appearance (tab) > Theme Selector. Click the Change Theme button in the Default section, and click the Use Theme button next to the theme’s name.
  1. Web Services plugins: Web services plugins are used to allow external applications to access and interact with Moodle LMS data. After installation, Web Services plugins need to be manually configured in the Site administration > Server > Web Services. Not that you may also need to enable Web Services in Site Administration > General (tab) > Advanced Features.

Hope you found the information in this article useful. With this simple guide in hand, you can take your Moodle experience to the next level, simplify administrative tasks, and provide your learners with a learning environment that is both informative and enjoyable.

Post a comment to tell us about your favourite Moodle LMS plugin.

See you next month!

Michael Milette

Michael Milette
Follow me

Michael Milette

Michael Milette is the owner and an independent consultant with TNG Consulting Inc. in Canada. He works with government, non-profit organizations, businesses and educational institutions on Moodle-related projects. Michael writes about implementing Moodle LMS, developing in Moodle, Moodle administration, using the FilterCodes plugin (his own project), creating multi-language Moodle implementations and courses, and WCAG 2.1 accessibility.

One thought on “Moodle LMS Plugins: Step-by-Step Guide to Installation and Activation

  • Great overview of using plugins in Moodle !
    I would just add, that when looking at a plugin to use, as well as the functionality and version compatibility, you MUST look at the release cycle, and developer. There is nothing worse that installing a plugin, building your site / course operation around this, to find that when you want to upgrade Moodle you can’t – because that plugin is no longer maintained 🙁
    I’ve seen some Universities and other large Moodle installations becoming years out of date because they adopted a plugin that didn’t;t then get upgraded.
    And this biggest impact with staying on an old and compatible version of Moodle means missing out on all the new features of Moodle core.


Add a reply or comment...