Skip to main content

Moodle 3.5

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: 17 May 2018

Here is the full list of fixed issues in 3.5.

See our New Features page for a more user-friendly introduction to Moodle 3.5 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 and operating systems up-to-date.

  • Moodle upgrade: Moodle 3.1 or later
  • PHP version: minimum PHP 7.0.0 Note: minimum PHP version has increased since Moodle 3.3. PHP 7.1.x and 7.2.x are supported too. See Moodle and PHP for details.
  • PHP extension intl is required since Moodle 3.4 (it was recommended in 2.0 onwards)
  • (Recommendation only) If you use MySQL or MariaDB, make sure your database supports full UTF-8 (utf8mb4) if you install a new instance of Moodle. CLI script may be used to convert to utf8mb4 if you're upgrading. You may choose to keep using 'utf8_*', but then a warning will show that the database isn't using full UTF-8 support and suggest moving to 'utf8mb4_unicode_ci'. See MySQL full unicode support for details. If you do enable utf8mb4 you must use the Barracuda file format.

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
PostgreSQL9.311.x - note that 12.x is not yet supported (MDL-67414)
Microsoft SQL Server2008Latest
Oracle Database10.2Latest

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
  • Internet Explorer


  • MobileSafari
  • Google Chrome

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

Note: Legacy browsers with known compatibility issues with Moodle 3.5:

  • Internet Explorer 10 and below
  • Safari 7 and below

Major features


  • MDL-61275 - GDPR Consenting of Minors and Managing, Versioning and Tracking Privacy Policies and User Consents

  • MDL-61292 - A new admin tool to manage policy documents

  • MDL-61423 - Add age and location verification to identify minors

  • MDL-61302 - Workflow to allow users to agree to all policies

  • MDL-61301 - Report of user agreed policies and their versions

  • MDL-61705 - Bulk accept of policies on behalf of users

  • MDL-61864 - Include policy tool in core

  • MDL-62286 - Add policy link to the site footer

  • MDL-61306 - GDPR Data Requests and Data Registry

  • MDL-59718 - A process to send a request to the data protection officer

  • MDL-59720 - Delete personal data when it is no longer required

  • MDL-61307 - Create a new privacy subsystem

  • MDL-61362 - Ability to create data categories and purposes

  • MDL-61486 - Data registry with purpose and retention period

  • MDL-61489 - Report of plugin/components implementing the Privacy API

  • MDL-61499 - Ability to set default purpose and retention periods for context levels

  • MDL-61785 - Ability to review and confirm which expired data can be deleted

  • MDL-61899 - Include data privacy tool in core

  • MDL-61935 - Ability to specify the lawful bases for the collection of personal data

Question bank tagging improvements

  • MDL-61066 - Expanded tagging functionality for question bank
  • MDL-61133 - New modal to add/edit/remove tags on questions
  • MDL-61135 - Filter questions by tag
  • MDL-61138 - Show the list of questions in the 'Add a random question' dialog
  • MDL-61363 - Ability to add question tags at a course level in the edit question form
  • MDL-61364 - Manage tags at a question and course context level
  • MDL-61380 - Allow filtering/adding random questions by tag for quizzes
  • MDL-61410 - Add import/export support for course level question tags
  • MDL-61444 - New capabilities for tagging questions

UX: Usability improvements

  • MDL-62021 - Boost 4.0 Migration
  • MDL-56511 - Update bootstrap 4 to final release
  • MDL-61657 - Add images to the course cards on the dashboard

LTI Advantage support

  • MDL-60416 - Add support for LTI Advantage 1.1

RecordRTC for Atto

  • MDL-60848 - Implement RecordRTC Atto plugin as core feature
  • MDL-61973 - Update RecordRTC Atto plugin buttons

Messaging database tables

  • MDL-61254 - Merge messaging database tables
  • MDL-36941 - Create new tables for messaging
  • MDL-61255 - Ad-hoc task to upgrade messages to merged table

See also Message API#Changes in Moodle 3.5

Other Highlights

Functional changes

  • MDL-2051 - Inform student whether and how their selected choice will display
  • MDL-32585 - SCORM: option to force new attempts
  • MDL-53226 - Add Moodle DB search engine
  • MDL-55491 - Use cohort as badge criteria
  • MDL-56246 - Add site wide default for grade export: include feedback
  • MDL-59875 - Allow badges as criteria for other badges
  • MDL-60119 - Feedback - Multiple choice (rated) - remove weights from answer
  • MDL-61203 - Allow uploading of profile picture to be used as badge criteria
  • MDL-61601 - Allow cohort themes
  • MDL-61651 - LTI: line item definition within link to return gradable LTI links
  • MDL-60811 - Bulk delete self-registered enrolments on participants page
  • MDL-60682 - Ability to set date/time to nearest minute
  • MDL-60441 - Ability to add a link to glossary entries
  • MDL-58411 - Ability to apply file type restrictions for essay question type
  • MDL-56945 - Add easy return path from PDF grading screen to list of submissions
  • MDL-52811 - Add force language capability to course settings
  • MDL-41090 - Allow teachers to embed files when manually grading questions

Security issues

  • MSA-18-0007 Calculated question type allows remote code execution by Question authors
  • MSA-18-0008 Users can download any file via portfolio assignment caller class
  • MSA-18-0009 Portfolio forum caller class allows a user to download any file
  • MSA-18-0010 User can shift a block from Dashboard to any page
  • MSA-18-0011 User who did not agree to the site policies can see the site homepage as if they had full site access
  • MSA-18-0012 Portfolio script allows instantiation of class chosen by user

For developers

  • MDL-61307 - All plugins must implement Privacy API to be compliant with GDPR requirements. They must implement the API to report on, export and delete stored user data
  • MDL-56511 - Bootstrap is upgraded to final release of version 4
  • MDL-61869 - Infer rendering of templatables with no render method
  • MDL-61298 - Boost: use navigation node icon

Upgrading plugins

1. Check for changes in core APIs

Read lib/upgrade.txt to check for the deprecations and core API changes, make sure you applied them to your plugin. Note that entries there are not sorted by priority but rather by integration time. Below is the list of upgrade.txt files that contain information about upgrading from Moodle 3.4 to Moodle 3.5 (note that if you upgrade from earlier versions there may be more files):

2. Check for changes in the API of your plugin type

Below is the list of plugin types that had API changes between Moodle 3.4 and 3.5:

3. Check for changes in the depended plugins

If your plugin depends on another plugin or calls methods from another plugin, read upgrade.txt in this plugin directory (if it exists). Below is the list of standard plugins that had changes between Moodle 3.4 and 3.5:

tool_mobile, tool_usertours, mod_assign, mod_feedback, mod_quiz, mod_scorm, theme_boost

4. Do a smoke test of your plugin with developer debugging mode

Make sure to check on both Boost and Clean themes. Bootstrap was upgraded in Moodle 3.5

5. Run all behat and phpunit tests