Introduction to Moodle Plugin types and description for beginners #Moodle

June 21st, 2016

Moodle – The acronym for Modular Object-Oriented Dynamic Learning Environment, allows for extending and tailoring learning environments using community sourced plugins. The easiest and most maintainable way to add new functionality to Moodle is by writing new Moodle plugin.

Introduction to Moodle Plugin types and description for beginners #MoodleAs covered in this post, Moodle is now having more than 1200 plugins which shows the increasing popularity and extension of Moodle capabilities. Moodle has got a wide variety of plugin types which can extend the functionality but since there is not a single unique kind of plugins so it creates some confusion among new Moodle administrators.

Site administrators needs to install the Moodle plugin in respective directories for correct installations otherwise the plugin installation page will show an error with the expected location of the plugin.

Till date, these are the multiple plugin types supported by Moodle mentioning the Moodle Path and Versions:

Plugin typeMoodle pathDescriptionMoodle versions
Activity modules/modActivity modules are essential types of plugins in Moodle as they provide activities in courses. For example: Forum, Quiz and Assignment.1.0+
Antivirus plugins/lib/antivirusAntivirus scanner plugins provide virus scanning functionality using third-party virus scanning tools in Moodle. For example: ClamAV.3.1+
Assignment submission plugins/mod/assign/submissionDifferent forms of assignment submissions2.3+
Assignment feedback plugins/mod/assign/feedbackDifferent forms of assignment feedbacks2.3+
Book tools/mod/book/toolSmall information-displays or tools that can be moved around pages2.1+
Database fields/mod/data/fieldDifferent types of data that may be added to the Database activity module1.6+
Database presets/mod/data/presetPre-defined templates for the Database activity module1.6+
LTI sources/mod/lti/sourceLTI providers can be added to external tools easily through the external tools interface see Documentation on External Tools. This type of plugin is specific to LTI providers that need a plugin that can register custom handlers to process LTI messages2.7+
LTI services/mod/lti/serviceAllows the implementation of LTI services as described by the IMS LTI specification2.8+
Quiz reports/mod/quiz/reportDisplay and analyse the results of quizzes, or just plug miscellaneous behaviour into the quiz module1.1+
Quiz access rules/mod/quiz/accessruleAdd conditions to when or where quizzes can be attempted, for example only from some IP addresses, or student must enter a password first2.2+
SCORM reports/mod/scorm/reportAnalysis of SCORM attempts2.2+
Workshop grading strategies/mod/workshop/formDefine the type of the grading form and implement the calculation of the grade for submission in the Workshop module2.0+
Workshop allocation methods/mod/workshop/allocationDefine ways how submissions are assigned for assessment in the Workshop module2.0+
Workshop evaluation methods/mod/workshop/evalImplement the calculation of the grade for assessment (grading grade) in the Workshop module2.0+
Blocks/blocksSmall information-displays or tools that can be moved around pages2.0+
Question types/question/typeDifferent types of question (e.g. multiple-choice, drag-and-drop) that can be used in quizzes and other activities1.6+
Question behaviours/question/behaviourControl how student interact with questions during an attempt2.1+
Question import/export formats/question/formatImport and export question definitions to/from the question bank1.6+
Text filters/filterAutomatically convert, highlight, and transmogrify text posted into Moodle.1.4+
Editors/lib/editorAlternative text editors for editing content2.0+
Atto editor plugins/lib/editor/atto/pluginsExtra functionality for the Atto text editor2.7+
TinyMCE editor plugins/lib/editor/tinymce/pluginsExtra functionality for the TinyMCE text editor.2.4+
Enrolment plugins/enrolWays to control who is enrolled in courses2.0+
Authentication plugins/authAllows connection to external sources of authentication2.0+
Admin tools/admin/toolProvides utility scripts useful for various site administration and maintenance tasks2.2+
Log stores/admin/tool/log/storeEvent logs storage back-ends2.7+
Antivirus plugins/lib/antivirusInfrastructure for scanning and detecting viruses in user uploaded files3.1+
Availability conditions/availability/conditionConditions to restrict user access to activities and sections.2.7+
Calendar types/calendar/typeDefines how dates are displayed throughout Moodle2.6+
Messaging consumers/message/outputRepresent various targets where messages and notifications can be sent to (email, sms, jabber, ...)2.0+
Course formats/course/formatDifferent ways of laying out the activities and blocks in a course1.3+
Data formats/dataformatFormats for data exporting and downloading3.1+
User profile fields/user/profile/fieldAdd new types of data to user profiles1.9+
Reports/reportProvides useful views of data in a Moodle site for admins and teachers2.2+
Course reports/course/reportReports of activity within the courseUp to 2.1 (for 2.2+ see Reports)
Gradebook export/grade/exportExport grades in various formats1.9+
Gradebook import/grade/importImport grades in various formats1.9+
Gradebook reports/grade/reportDisplay/edit grades in various layouts and reports1.9+
Advanced grading methods/grade/grading/formInterfaces for actually performing grading in activity modules (eg Rubrics)2.2+
MNet services/mnet/serviceAllows to implement remote services for the MNet environment (deprecated, use web services instead)2.0+
Webservice protocols/webserviceDefine new protocols for web service communication (such as SOAP, XML-RPC, JSON, REST ...)2.0+
Repository plugins/repositoryConnect to external sources of files to use in Moodle2.0+
Portfolio plugins/portfolioConnect external portfolio services as destinations for users to store Moodle content1.9+
Search engines/search/engineSearch engine backends to index Moodle's contents.3.1+
Plagiarism plugins/plagiarismDefine external services to process submitted files and content2.0+
Cache store/cache/storesCache storage back-ends.2.4+
Cache locks/cache/locksCache lock implementations.2.4+
Themes/themeChange the look of Moodle by changing the the HTML and the CSS.2.0+
Local plugins/localGeneric plugins for local customisations2.0+
Legacy assignment types/mod/assignment/typeDifferent forms of assignments to be graded by teachers1.x - 2.2
Legacy admin reports/admin/reportProvides useful views of data in a Moodle site, for admins only.Up to 2.1 (for 2.2+ see Reports)

If you would like to check out the plugin types for your Moodle version then you can use this script through CLI.

Have you ever faced problem while installing Moodle plugins because of incorrect directory? Do share your experience with us in the comments below.