Skip to main content

Moodle 3.1

Unsupported Moodle Version
This version of Moodle is no longer supported and will not receive fixes for security risks.
You are encouraged to upgrade to a supported version of Moodle.

Release date: 23 May 2016

Here is the full list of fixed issues in 3.1.

See our New Features page for a more user-friendly introduction to Moodle 3.1 with screenshots.

If you are upgrading from previous version, make sure you read the Upgrading documentation.

Server requirements

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

  • Moodle upgrade: Moodle 2.7 or later (if upgrading from earlier versions, you must upgrade to 2.7.14 as a first step)
  • PHP version: minimum PHP 5.4.4 (always use latest PHP 5.4.x , 5.5.x or 5.6.x on Windows - PHP 7.0.x is supported but has some engine limitations. PHP 7.1.x is not supported.
  • Ghostscript should be installed for pdf annotation.
  • Unoconv should be installed for file conversion used by pdf annotations (new in Moodle 3.1)
  • New requirement for Moodle 3.1 comparing to 3.0: PHP extension xmlreader

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
Microsoft SQL Server2008Latest
Oracle Database10.2Latest

Client requirements

Browser support

BrowserMinimum versionRecommended versionNotes
Google Chrome30.0Latest
Mozilla Firefox25.0Latest
Apple Safari6Latest
Microsoft Internet Explorer9LatestVersion 10 is required for drag-and-drop upload of content from outside the browser into Moodle

Major features




  • MDL-52397 - Feedback for Assignments is not sent if the assignment grade timemodified setting was set to two days ago
  • MDL-52596 - Add a 'maxperpage' site wide setting for grading table size (to mitigate broken grading pages in large courses)
  • MDL-52269 - Not obvious to tell if an assignment is in blind marking if user holds the "mod/assign:viewblinddetails" capabilty
  • MDL-52270 - Difficult to cross reference users with their blind identities
  • MDL-44598 - List student names on 'grant extension' screen
  • MDL-52490 - Download selected assign submissions as a zip file
  • MDL-52290 - EditPDF - Also show the total page number in the pagination
  • MDL-52489 - "Download all submissions as a zip" should maintain the folder structure in students submissions

External tool (LTI)


  • MDL-53738 - Feedback activity module will be enabled by default in new 3.1 installations. If you are upgrading to 3.1 we recommend you to enable it manually.
  • MDL-52094 - Various improvements to UI and bug fixes, including:
    • Performance improvement to download responses as raw data in multiple formats (CSV, Excel, etc.) - now available on "Show responses" page instead of "Analysis"
    • Allow any characters in labels, do not display empty labels
    • Do not display empty pages
    • Map frontpage feedback to multiple courses without leaving the form
    • Improved display of automatic question numbers
    • Disable "Response time" for anonymous feedbacks
    • Use moodleforms to display feedback


  • MDL-45712 - Add Result field to the SCORM Interactions Report
  • MDL-48680 - Add score and status submission events to SCORM activity
  • MDL-42473 - Add group support to SCORM activity


  • MDL-52738 - Quiz attempt/review page should have a previous button to match next
  • MDL-46092 - Add the OU styling of the Quiz navigation into Moodle core as the default
  • MDL-46091 - Rationalise confirmations when you start a quiz
  • MDL-52806 - Show right answers when manually grading automatically marked questions
  • MDL-53304 - Immediate feedback behaviours should not show a disabled check button when you can't use it


Other activity modules


  • MDL-48634 - Option to rescale existing grades when changing max points
  • MDL-52522 - grade_minmaxtouse should be respected for overridden categories
  • MDL-51900 - Tab Down Grade Column in Single View of Gradebook
  • MDL-52309 - Make Grade History report require user to submit parameters before the report starts running


  • MDL-51374 - Do not purge entire databasemeta cache when there are structure changes (esp temp tables).
  • MDL-51603 - Refactor downloading of csv, ods, excel etc files in reports and exports across moodle to stream progressively
  • MDL-34925 - Improve bulk user export performance
  • MDL-50385 - Performance improvement to the grade history report


  • MDL-50851 - Introduce tag collections - ability to separate independent tag areas
  • MDL-52252 - Add tags to modules (Resources and Activities)
  • MDL-25742 - Allow to search wiki pages by tags
  • MDL-51283 - Rename "official" tags to "standard", allow admin to set for each tag area how to use standard tags
  • MDL-16855 - Add tag filtering to "Manage tags" page
  • MDL-52707 - Allow tags to be combined


  • MDL-27628 - Enrol meta: Possible to add multiple courses without leaving the form
  • MDL-51818 - Move the profile 'Message' button to be next to the user picture
  • MDL-52258 - Calendar now shows duration in calendar block
  • MDL-53043 - Move user search box above the students list in the manual enrolments popup
  • MDL-35590 - Navigation block redesign to meet ARIA specification
  • MDL-49963 - Allow to message all participants when there are more than one page in participants list
  • MDL-51354 - Help popup and improved name for events dropdown menu on the course and site logs pages
  • MDL-53026 - Use inplace editable for editing cohort names
  • MDL-51706 - Move plagiarism links to the top of the summary and full text outputs
  • MDL-53382 - "Show all" link on participants page should be moved beneath the page switcher

Other improvements

  • MDL-53057 - Add search feature to the File system repository
  • MDL-48506 - Improve memcached cache store so that it is multi-site safe
  • MDL-50661 - Restyle "Clean" theme to use Logo and Header in Frontpage with smaller logo option in other pages.
  • MDL-36652 - When downloading an Excel spreadsheet of student logs, have the course short name included in the file name.
  • MDL-53207 - Display stock avatar instead of own user picture from messages from fake users
  • MDL-51698 - Markup the crumb trail so search engines understand it and leverage it
  • MDL-53072 - Option to choose whether we include suspended users when auto-creating groups
  • MDL-52869 - Convert inline activity name edit to use the inplace editable element

For administrators

  • MDL-26935 - New capability to control role renaming
  • MDL-28030 - Add config.php settings to allow plugins to rewrite output moodle_urls (eg clean / semantic urls)
  • MDL-52752 - Administrators can specify an alternate URL to use for MathJax
  • MDL-52219 - Completion tracking & availability should default to on for new installs
  • MDL-52990 - Enable all emails to be themed, ie add 4 wrapper mustache templates
  • MDL-53260 - Option to display CLI upgrade messages in English
  • MDL-52386 - Allow to control field for flagging enabled/disabled users in LDAP authentication (useful for Active Directory)
  • MDL-52383 - Calendar "Days to look ahead" should allow intervals up to 1 year
  • MDL-49934 - Admins or managers should be able to retrieve assignments info via get_assignments web service

Security issues

There are no security issues included in this release, please refer to Moodle 3.0.4 release notes

For developers

Significant new areas

Smaller new things

Smaller changes in core APIs

  • MDL-52954 - file_storage class can now convert between office documents (documentation)
  • MDL-53274 - Throw exception (in developer mode) if page context is not set, otherwise it is easily missed in AJAX calls
  • MDL-52826, MDL-52715 - Allow to use moodleforms in AJAX requests (documentation)
  • MDL-51718 - Allow to specify scheme in moodle_url
  • MDL-51700 - Ajax service should clean the return values of the external functions
  • MDL-53962 - Changes to webservices XML-RPC API - it is now critical to specify parameters for XML-RPC calls in the correct order. Previously Zend may have been able to work out the order, our new implementation, at this stage, cannot.

Themeability improvements

  • MDL-50464 - New renderer for RSS Client Block allows themes to customise its look
  • MDL-52013 - Allow mod_assign plugins to add calendar events
  • MDL-48362 - Improve the enrol API to prevent logic in the UI (documentation)
  • MDL-52996 - Allow Atto customisation for special-purpose plugins
  • MDL-52781 - Improved validation on user fields when creating users from external datasources
  • MDL-53304 - Changes to interactive question behaviour may cause the unit tests for your question type to break if you have followed the common patter. You will need to make changes like this.


For full list of deprecations refer to lib/upgrade.txt and upgrade.txt files in the folder where the particular plugin is located. Here are the most major deprecations: