Skip to main content

Moodle 5.0

Release date: 14 April 2025

Here is the full list of fixed issues in 5.0.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 4.2.3 or later.
  • PHP version: minimum PHP 8.2.0 Note: minimum PHP version has increased since Moodle 4.5. PHP 8.3.x and 8.4.x are supported too. See PHP for details.
  • PHP extension sodium is required. See Environment - PHP extension sodium.
  • 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
PostgreSQL14 (increased since Moodle 4.5)Latest
MySQL8.4 (increased since Moodle 4.5)Latest
MariaDB10.11.0 (increased since Moodle 4.5)Latest
Microsoft SQL Server2017Latest

Please note that Oracle Database is no longer supported from Moodle LMS 5.0.

Database prefixes

Since Moodle 4.3, the maximum length for the database prefix ($CFG->prefix) is 10 characters. Installation or upgrade won't be possible with longer prefixes.

Client requirements

Browser support

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

Desktop:

  • Chrome
  • Firefox
  • Safari
  • Edge

Mobile:

  • MobileSafari
  • Google Chrome

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

Major UX improvements

New centralised course overview page

  • MDL-83873 - Create a "human date" output classes
  • MDL-83872 - Add on-demand overview tables to the overview page
  • MDL-83892 - Migrate Feedback activity index to course overview integration
  • MDL-83871 - Create a basic course activities overview page
  • MDL-84469 - Set the fallback overview report for activities without integration
  • MDL-84555 - Add purpose colour to activity icons in course activities overview and default activity completion form
  • MDL-83888 - Migrate Assign index to course overview integration
  • MDL-83901 - Migrate Workshop activity index to course overview integration
  • MDL-83869 - Create a generic collapsable section output component
  • MDL-84602 - Add alert counting to activity overview items
  • MDL-84346 - Make the completion button styles more generic

Other major features

AI new features and improvements

Implement Open Badges 3.0

  • MDL-83909 - Remove the image author's fields in badges
  • MDL-83884 - Move form files from badges to badges/classes/form
  • MDL-84577 - Review the badge creation form, to reorganise the fields and remove/improve tooltips
  • MDL-82905 - In the badges report, display criteria as a list only if there are multiple items
  • MDL-82904 - Display empty column in the badges report when no criteria is set

SMS notification provider & initial notifications

  • MDL-81015 - Add support for sending SMS notifications asynchronously
  • MDL-83518 - SMS notifications: Implement SMS as a new notification method and set up for assignment notifications
  • MDL-79329 - Implement Modica SMS gateway plugin

Enhance icons utilising Font Awesome 6

  • MDL-83087 - Replace the more actions menu in course/index.php with ellipsis
  • MDL-83639 - Update custom icons
  • MDL-83933 - Switch import and export icons
  • MDL-82460 - Deprecate unused pix icons

TinyMCE text editor

  • MDL-80953 - Make TinyMCE less strict for onclick JavaScript action (consistent with Atto's handling)
  • MDL-78428 - Improve media adding user experience
  • MDL-84125 - Add TinyMCE Premium accessibility plugin
  • MDL-84126 - Disable plugins by role

Course improvements

  • MDL-83725 - Improve the way activity icons are colourised
  • MDL-83673 - Add throttle to the course page scroll event handling and prevent unnecessary updates
  • MDL-83562 - Remove the "movehere" elements from the course page
  • MDL-82351 - Make social format compatible with the new course editor
  • MDL-82349 - Migrate frontpage to the new course editor

Upgrade Boost theme to use Bootstrap 5.x

  • MDL-84324 - Add jQuery compatibility for Bootstrap 5
  • MDL-81825 - Refactor "Screen reader" classes/functions renamed in Bootstrap 5
  • MDL-80519 - Create a compatibility layer for Bootstrap v4 > v5 SCSS
  • MDL-84450 - Create a compatibility helper for Boostrap v4 > v5 data-attributes
  • MDL-75669 - Upgrade the Boost theme with Bootstrap 5.x

Quiz and Question bank

  • MDL-71378 - Make shared question banks more manageable and usable
  • MDL-77713 - Question version options when previewing - put latest version first
  • MDL-84576 - Give non-editing teacher role the "Use questions" capabilities by default to support shared question banks
  • MDL-83862 - Add question bank filter - Modified time
  • MDL-83861 - Add question bank filter - Question ID number
  • MDL-83860 - Add question bank filter - Question name
  • MDL-83859 - Add question bank filter - Question type
  • MDL-83883 - Add question bank filter - Status
  • MDL-83881 - Add question bank filter - Modifier and Owner
  • MDL-84247 - Improve Missing Question Type handling in question bank
  • MDL-84302 - Improve Missing Question Type handling in quiz
  • MDL-68806 - New quiz attempt states and asynchronous attempt creation
  • MDL-84191 - Add question bank filter - question text and feedback

BigBlueButton

  • MDL-84412 - Change the BigBlueButtonBN activity icon
  • MDL-84245 - Add manual grade functionality to BigBlueButton plugin
  • MDL-83766 - Change order subplugin classes are retrieved by BigBlueButton

Report builder

  • MDL-77270 - Add ability to duplicate a custom report
  • MDL-83552 - Add custom fields to Report builder

Assignment

  • MDL-84387 - Improve assignment submission confirmation by including a list of submitted files
  • MDL-84733 - Enhance assignment notification message customisation with additional data fields available for custom strings
  • MDL-75292 - Add "Graded" option to the status filter on the assignment submissions page

Accessibility improvements

  • MDL-60910 - Drag and drop onto image, using transparent pictures
  • MDL-78453 - Allow users to enter a long description for complex images

Usability improvements

  • MDL-73909 - Notification settings toggle switches should save automatically
  • MDL-83108 - Add new option in the Insert H5P plugin to enable auto-play of embedded H5P content in the app
  • MDL-82944 - Messaging should warn if you try to navigate to another page with an un-sent message
  • MDL-84142 - Homogenise output of the enrolment methods on the course enrolment page
  • MDL-81744 - Improve feedback activity "Template" page UI
  • MDL-84208 - Use collapsable sections in the default activity completion page
  • MDL-81759 - Course import pagelayout is different to the rest of pages

Other Highlights

Feature removals

The following features are removed from Moodle LMS 5.0 onwards. Please see Important changes in the upcoming Moodle 5.0 for more information.

Functional changes

  • MDL-70556 - Increase course fullname database field length beyond 254 characters
  • MDL-75196 - Improve mod_data link processing for backup
  • MDL-83265 - Salutation in Course-Approved-Email
  • MDL-80984 - Implement generic penalties in gradebook
  • MDL-84356 - Include course link variable in the course welcome message
  • MDL-81714 - Make re-grading of course final grades asynchronous
  • MDL-84139 - Add an option to display title for the enrol_fee enrolment
  • MDL-82034 - Make mod_subsection enabled by default
  • MDL-82555 - Section links block should show section names without numbers

For administrators

  • MDL-81780 - Ad-hoc tasks improvements - display fail delay and allow it to be reset
  • MDL-83399 - Allow site admins to login as each other
  • MDL-83850 - Activity Completion Report: Add "Completed date/time" header to the exported spreadsheet
  • MDL-74149 - tool_usertours: Filters to exclude categories and courses
  • MDL-81790 - The "Logs" section at the activity "More" menu should direct users to a dedicated activity logs page
  • MDL-81070 - Display contacts' names in the course search result for admins
  • MDL-82450 - Clarify the scheduled task table "Fail delay" value
  • MDL-83119 - search_solr: Implement check on connectivity, space usage

Performance

  • MDL-84844 - Improve mod_subsection performance in course editing operations
  • MDL-82584 - Workshop get_users_with_capability_sql method optimisation
  • MDL-83718 - Improve report builder table performance by combining count and select

Security improvements

  • MDL-83942 - Allow admins to make a default tag collection not searchable
  • MDL-82958 - User index page errors should be more generic
  • MDL-84011 - Switch from PHP serialization to JSON in Wikimedia repository

Multi-factor Authentication improvements

  • MDL-83516 - Improve MFA admin setup - factor table improvements
  • MDL-79958 - Improve MFA admin setup - default factor and explanations of factors on their settings pages
  • MDL-81551 - Inform user that reading MFA security token was successful during setup
  • MDL-81285 - Provide a clear failure when MFA security key not supported for browsers

For developers

  • MDL-63219 - Add support for Moodle filters to primary/custom menus
  • MDL-79843 - Introduce mechanism for plugin type deprecation
  • MDL-83473 - Replacement of extern_server_course function in course/view.php by hooks API
  • MDL-72526 - Change course format output classes to use protected properties instead of private
  • MDL-81745 - Replace feedback activity drag and drop YUI module with SortableList
  • MDL-82565 - Add support for routing of regular pages
  • MDL-82313 - Contrib database activity field icons should display in field type column

Web service additions and updates

  • MDL-78449 - Support groups in mod_choice_get_choice_results web service
  • MDL-83026 - External functions that return badges should include the course name
  • MDL-82775 - Return total number of attempts in mod_h5pactivity_get_user_attempts web service

Deprecations

  • MDL-77668 - Deprecate grade_edit_tree_column_select class
  • MDL-71472 - Deprecate add_select_with_email
  • MDL-83035 - Deprecate behat_admin_presets custom steps
  • MDL-84657 - Deprecate calendar_add_month()
  • MDL-83477 - Deprecate core:t/collapsedcaret icon
  • MDL-83764 - Deprecate externservercourse.php feature
  • MDL-84449 - Deprecate imagecopybicubic (lib/gdlib.php)
  • MDL-82342 - Deprecate pre-4.0 course editor web services
  • MDL-84673 - Deprecate print_graded_users_selector()
  • MDL-80995 - Deprecate setup_factor (tool_mfa\output\renderer)
  • MDL-82341 - Deprecate the old course JavaScript and YUI modules
  • MDL-84267 - Deprecate unused comment related capabilities in data module
  • MDL-84617 - Deprecation legacy/deprecated calendar functions
  • MDL-78489 - Final deprecation of availability_more amd module and availability::availability_info() method
  • MDL-81328 - Final deprecation of book_get_nav_classes
  • MDL-79434 - Final deprecation of calendar functions deprecated in Moodle 4.3
  • MDL-78926 - Final deprecation of core_course\output\activity_information output class
  • MDL-80116 - Final deprecation of course editing functions deprecated in Moodle 4.4 from the course hierarchy project
  • MDL-81185 - Final deprecation of enrol_self_plugin::get_welcome_email_contact()
  • MDL-83095 - Final deprecation of functions in blocks/tag_youtube/block_tag_youtube.php
  • MDL-76561 - Final deprecation of functions in lib/deprecatedlib.php initially deprecated in Moodle version 4.0 or earlier
  • MDL-75189 - Final deprecation of functions in mod/data/lib.php
  • MDL-79907 - Final deprecation of grade_structure::get_element_type_string(), grade_structure::get_element_header(), grade_structure::get_element_icon(), grade_structure::get_activity_link()
  • MDL-78890 - Final deprecation of gradereport_grader::get_right_avg_row()
  • MDL-81155 - Final deprecation of grouplist in report_log_renderable
  • MDL-77621 - Final deprecation of lib/cronlib.php
  • MDL-75875 - Final deprecation of single_button $primary parameter
  • MDL-81509 - Final deprecation of task_base::is_blocking and set_blocking
  • MDL-78605 - Final deprecation of token_table::col_token()
  • MDL-78090 - Final deprecations in Moodle 5.0 core_question
  • MDL-78304 - Final deprecations in Moodle 5.0 MNet
  • MDL-78118 - Final removal of custom report elements deprecated in 4.3
  • MDL-78711 - Final removal of edit_default_completion()
  • MDL-78780 - Final removal of grade ::get_lang_string helper methods
  • MDL-79214 - Final removal of htmllize_tree() in mod/folder
  • MDL-78635 - Final removal of libxml_disable_entity_loader helpers
  • MDL-79124 - Final removal of old user preference AJAX APIs
  • MDL-78869 - Final removal of OpenSSL encryption library fallbacks
  • MDL-80944 - Final removal of quiz_delete_override and quiz_delete_all_overrides
  • MDL-80430 - Final removal of report builder default table alias support
  • MDL-78706 - Final removal of repository get_file_size
  • MDL-79086 - Final removal of share_activity method in MoodleNet
  • MDL-79162 - Final removal of table badges methods
  • MDL-80491 - Final removal of update_communication method in enrollib
  • MDL-84036 - Finally remove deprecated external functions
  • MDL-76564 - Remove Behat steps deprecated in Moodle versions 4.4 or earlier
  • MDL-81230 - Remove deprecated adhoc tasks in BigBlueButton
  • MDL-83765 - Remove deprecated functions in action_menu class
  • MDL-84742 - Remove empty file enrol/self/bulkchangeforms.php
  • MDL-77107 - Remove grades and grade report Behat steps deprecated in 4.2
  • MDL-82937 - Remove legacy tabs.php file from Lesson module
  • MDL-76566 - Remove old classes renamed in Moodle versions 4.4 or earlier
  • MDL-82825 - Remove php-enum library
  • MDL-80156 - Remove SCSS deprecated in 4.4
  • MDL-76565 - Remove strings deprecated in Moodle versions 4.4 or earlier
  • MDL-61232 - Retire admin/process_email.php
  • MDL-84674 - Trim old deprecations Moodle 4.0 or earlier

Component API updates