Skip to main content

25 docs tagged with "Plugins"

View All Tags

Advanced grading API

Advanced grading was introduced in Moodle 2.2 for grading of assignments. It is intended to be used for grading of other types of activities in the later versions.

Antivirus plugins

Integrate your preferred Antivirus tool to with Moodle to automatically check new file uploads.

Block plugins

Block plugins allow you to show supplemental information, and features, within different parts of Moodle.

Common files

This page describes the common files which may be present in any Moodle subsystem or plugin type. Some of these files are mandatory and must exist within a component, whilst others are optional.

Course format

Course formats are plugins that determine the layout of course resources.


A description of the plugin scheduled task configuration file

Defaults for new questions

A way for question types to remember a user's preferred settings for creating questions of a given type.

Enrolment plugins

Moodle provides a number of ways of managing course enrolment, called enrolment plugins. Each course can decide its enabled enrolment plugins instances and any enrolment plugin can define a workflow the user must follow in order to enrol in the course.

Filter plugins

Filters are a way to automatically transform content before it is output. Filters may be used to:


CSS3 standard introduced the possibility to specify custom fonts, see CSS web fonts tutorial.

Images and icons in themes

One of the theme features is the ability to override any of the standard images within Moodle when your theme is in use. At this point, let's explore how to utilize your own images within your theme and how to override the images being used by Moodle.


All themes are required to define the layouts they wish to be responsible for as well as create; however, many layout files are required by those layouts. If the theme is overriding another theme then it is a case of deciding which layouts this new theme should override. If the theme is a completely fresh start then you will need to define a layout for each of the different possibilities.

Local plugins

The recommended way to add new functionality to Moodle is to create a new standard plugin (for example, activity, block, authentication, enrol). The local plugin-type is mostly suitable for things that do not fit into these standard plugin types.

Migrating 3.11 formats

The new course editor introduced n Moodle 4.0 reimplements most of the previous webservices, AMD modules, and internal logic of the course rendering. However, all formats since 3.11 will use the previous libraries by default until its final deprecation in Moodle 4.3. This document collects the main adaptations any 3.11 course format will require to continue working when this happens.

Plugin types

Moodle is a powerful, and very extensible, Learning Management System. One of its core tenets is its extensibility, and this is primarily achieved through the development of plugins.

Plugin Upgrades

The Upgrade API is a core API which allows your plugin to manage features of its own installation, and upgrade. Every plugin includes a version which allows the Upgrade API to apply only the required changes.

Question bank plugins

Question bank plugins allow you to extend the functionality of the Moodle Question bank.

Question type plugins

Question type plugins implement the different types of question that the core Question subsystem can handle.

Repository plugins

Repository plugin allow Moodle to bring contents into Moodle from external repositories.


Let's begin by exploring the various locations within Moodle from which CSS can be included:


A description of the library tag.php file, describing what plugins have tags where their callbacks are located.

Theme plugins

A Moodle theme allows users to customize the appearance and functionality of their Moodle site, from overall design to specific activities. Users can create their own themes or modify existing ones, leveraging CSS and JavaScript for customization. The theme architecture ensures smooth fallbacks for minimal changes, fostering flexibility and ease of use.


A description of the plugin version.php file, describing the various features

Writing a new service

This documentation covers the creation of a new external service for use in a web service of a fictional local plugin, local_groupmanager.