Skip to main content

Moodle 4.2

Unsupported Moodle Version
This version of Moodle is no longer supported for general bug fixes.
You are encouraged to upgrade to a supported version of Moodle.

Release date: 24 April 2023

Here is the full list of fixed issues in 4.2.0.

If you are upgrading from a previous version, please see Upgrading in the user docs.

Server requirements

These are just the minimum supported versions. We recommend keeping all of your software and operating systems up-to-date.

  • Moodle upgrade: Moodle 3.11.8 or later.
  • PHP version: minimum PHP 8.0.0 Note: minimum PHP version has increased since Moodle 4.1. PHP 8.2.x is supported too (since Moodle 4.2.3). See PHP for details.
  • PHP extension sodium is required. See Environment - PHP extension sodium.
  • PHP extension exif is recommended.
  • PHP setting max_input_vars must be >= 5000. For further details, see Environment - max input vars.
  • PHP variants: Only 64-bit versions of PHP are supported. Note: Changed since 4.1.

Database requirements

Moodle supports the following database servers. Again, version numbers are just the minimum supported version. We recommend running the latest stable version of any software.

DatabaseMinimum versionRecommended
PostgreSQL13 (increased since Moodle 4.1)Latest
MySQL8.0 (increased since Moodle 4.1)Latest
MariaDB10.6.7 (increased since Moodle 4.1)Latest
Microsoft SQL Server2017Latest
Oracle Database19Latest

Client requirements

Browser support

Moodle is compatible with any standards compliant web browser. We regularly test Moodle with the following browsers:


  • Chrome
  • Firefox
  • Safari
  • Edge

Note: Moodle 4.2 does NOT support Internet Explorer.


  • MobileSafari
  • Google Chrome

For the best experience and optimum security, we recommend that you keep your browser up to date.

Major UX improvements


  • MDL-77030 - Display feedback in the Grader report
  • MDL-76149 - Implement "records per page" selector in the Grader report
  • MDL-75274 - Ability to collapse/expand items (columns) in the Grader report
  • MDL-76147 - Implement dropdown menu for the header actions in the Grader report table
  • MDL-77029 - Revamp the column sorting in the Grader report
  • MDL-77032 - Collapsible grade categories in the Gradebook setup
  • MDL-76143 - Implement search functionality in the Grader report
  • MDL-77033 - Indicators when the state of a grade item or category is changed in the Gradebook setup
  • MDL-76150 - General styling improvements to the Grader report
  • MDL-76146 - Move grade actions (hide, show, lock, grade analysis) to dropdown menu in the Grader report table
  • MDL-77031 - General styling improvements to the Gradebook setup
  • MDL-76139 - Implement a new group selector in the Grader report

Database activity

  • MDL-76360 - Improve the look and feel of the Database fields page
  • MDL-76357 - Make sticky footer more prominent and noticeable
  • MDL-75498 - Add ##otherfields##, [[FIELD#name]] and [[FIELD#description]] tags to the database templates
  • MDL-75337 - Change Delete buttons' style on Database to 'danger' button

Course hierarchy

  • MDL-76990 - Recover move right/left functionality removed/hidden for 4.0
  • MDL-76997 - Add an option for admins to reset indentation for courses on the site
  • MDL-76992 - Apply indentation on the course index
  • MDL-76991 - New course format setting to enable/disable course indentation in Weeks and Topics

Other Major features

TinyMCE 6 improvements and setting as the default editor

  • MDL-76866 - Make TinyMCE the default editor
  • MDL-77308 - Remove the legacy TinyMCE editor from core (editor_tinymce)
  • MDL-76867 - Allow Moodle TinyMCE plugins to be disabled
  • MDL-76520 - Add a TinyMCE link plugin

MoodleNet integration - phase 1

  • MDL-75316 - Implement LMS foundation for sharing content to MoodleNet (share activities)
  • MDL-75650 - Add OAuth 2.0 Authorization Server Metadata support to issuers and create MoodleNet issuer

Bulk course activity editing

  • MDL-76783 - The basic bulk section and activity selection UI
  • MDL-76850 - Add bulk duplicate activity action
  • MDL-76893 - Add bulk activity move action
  • MDL-76848 - Add bulk availability edit action
  • MDL-76894 - Add bulk section move
  • MDL-76895 - Add fast selections to the bulk editing
  • MDL-76851 - Add bulk delete action
  • MDL-74989 - Migrate delete activity course tools to the new reactive actions
  • MDL-74987 - Migrate duplicate activity course tools to the new reactive actions


  • MDL-74664 - Option to restrict recording formats viewable by everyone
  • MDL-75753 - Add support for SHA256 (and longer) to BigBlueButton
  • MDL-76551 - Option to show profile pictures of participants in BBB sessions
  • MDL-75334 - Create a set of test courses which include BigBlueButton activities

Quiz and questions

  • MDL-35745 - There must be a way to get a "Never submitted" quiz attempt back to the "In progress" state
  • MDL-74609 - Quiz: allow the displayed question numbers to be customised
  • MDL-71261 - Quiz user override should only get enrolled users

Report builder

  • MDL-77056 - Add relative date filter option to select dates before given period
  • MDL-74145 - Create API for report bulk actions
  • MDL-76154 - Add files to custom blog reporting
  • MDL-77062 - Add more filters/conditions fields in course_completion entity
  • MDL-77201 - Allow report column callbacks to define how aggregated data is displayed
  • MDL-76479 - Custom report time filter should support last/current/next hour
  • MDL-76933 - Create "User badges" custom report source

Content bank and H5P

  • MDL-67789 - Add support to "Save content state" in mod_h5pactivity
  • MDL-77049 - Customise H5P styles via Raw SCSS theme setting


  • MDL-45301 - Option to set PDF font in course settings for generated PDF files
  • MDL-55929 - Messaging from Assignment

Usability improvements

  • MDL-75596 - Adding new activities should be possible anywhere in a section
  • MDL-62839 - Deselect "Accept grades from this tool" by default for new LTI instances
  • MDL-75908 - Links added in the navbar should receive focus/active behaviour (custommenuitems) on the Boost theme
  • MDL-31235 - Support text format for marking guide criteria and levels
  • MDL-40600 - Add ability to duplicate a course section
  • MDL-74465 - Display block configuration form in a popup
  • MDL-68347 - Add a way to find which users were created during course restore process
  • MDL-76377 - Improve links to / (course creators/teachers)
  • MDL-76418 - Have a way to get the permalink to a course section

Other Highlights

Functional changes

  • MDL-74272 - Reassess the inclusion of the plugin name on the course page
  • MDL-77291 - Show text and media elements (aka labels) in the course index also in non edit mode
  • MDL-75594 - Change course module creation to support parameter for inserting modules at any place in the section
  • MDL-77387 - Copy course UI - enrol a user such as editingteacher in the copied course
  • MDL-76312 - Subscribers list should ordered by name
  • MDL-76386 - Provide option to have group count before names when adding users to group
  • MDL-77130 - Add cohort custom fields functionality
  • MDL-70226 - Default tab in the activity chooser should be recommended activities

For administrators

  • MDL-68093 - Membership in some groups should be hidden from some roles for FERPA/ADA compliance
  • MDL-77406 - Log every time a user adds a file to a draft area
  • MDL-73503 - Add filtering by section to report_progress
  • MDL-65471 - Optionally allow CLI PHP upgrade.php --no-outage
  • MDL-77370 - New setting for the "Services and support" URL
  • MDL-74874 - Mark readonly sessions as no longer experimental
  • MDL-61789 - Allow to choose custom profile fields from OAuth 2 field mappings
  • MDL-70975 - Add new options to admin/cli/adhoc_task.php and from admin web UI
  • MDL-77385 - CLI Script to enable or disable the emailstop flag
  • MDL-64153 - Allow administrator to override sqlsrv connection options
  • MDL-72775 - Add a new status check for the cron task API to watch very long running tasks


  • MDL-70687 - Redis session lock expiration should default shorter than session timeout
  • MDL-77232 - Optimize LTI 1.3 gradesync task
  • MDL-72559 - The core plugin_functions cache should be allowed to be stored locally
  • MDL-77186 - Add a keep-alive setting to admin/cli/cron.php
  • MDL-76129 - Improve upgrade/install performance relating to capabilities and settings
  • MDL-75667 - Improve speed of admin/blocks.php by combining db counts

Security improvements

  • MDL-76722 - Add encrypted mobile notifications support (also see MDL-77893)
  • MDL-76755 - Improve default coverage of "cURL blocked hosts list" by including

For developers

  • MDL-76135 - Import the Guzzle library in LMS
  • MDL-76989 - Upgrade Font Awesome to 6.3.0
  • MDL-76219 - Switch from Box/Spout to OpenSpout/OpenSpout
  • MDL-73144 - Allow use of dartsass for scss compilation
  • MDL-76134 - Build a reusable filter output component
  • MDL-71096 - All APIs should be listed in code
  • MDL-77714 - Remove Travis support from core
  • MDL-72609 - Convert pendingPromise to native Promise
  • MDL-76583 - Move lib/externallib.php to namespaced classes and fix coding style, etc

Migration away from YUI3

  • MDL-77172 - Migrate moodle-tool_capability-search to ESM
  • MDL-77171 - Migrate moodle-core-tooltip and moodle-core-popuphelp to ESM
  • MDL-77009 - Replace moodle-tool_monitor-dropdown with ESM or generic
  • MDL-58615 - Remove YUI CDN support
  • MDL-77007 - Remove auth-passwordunmask YUI module
  • MDL-69164 - Convert question/qengine.js to AMD modules

Web service additions and updates

  • MDL-77643 - Return via tool_mobile_get_config site location settings to properly display the user time zone in the app

Core plugins removed

  • MDL-72350 - Remove Assignment 2.2 (mod_assignment) from core
  • MDL-77163 - Remove cachestore_mongodb from core
  • MDL-77161 - Remove cachestore_memcached from core


  • MDL-52805 - Final deprecation of legacy log store
  • MDL-76898 - Quiz: final deprecations for things deprecated before 3.10

Component API updates