Activities ::: mod_mootyper
Maintained by AL Rachels
MooTyper implements a typing practice/instruction functionality into Moodle.
Latest release:
653 sites
44 fans
Moodle 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11

BEFORE YOU UPGRADE NOTE! This previous version of MooTyper changed the lesson file layout! Depending on your version, after your upgrade, an admin may need to click on the Edit gear icon and select, Import lesson / KB layout. Depending on the speed of your server, this can take a while.

In the past, if you have created any lesson files of your own, you may need to modify them to be compatible with the new Lesson file format in this MooTyper version. Comparison with a file from this version will show you that each exercise is followed by the exercise name using the same sequence of keystrokes, /**/, as a delimiter.

MooTyper is an Activity module. A course admin, manager, or teacher creates the activity and prepares it for use by selecting the keyboard layout and lessons to use.  It can be set up to present a series of exercises from a lesson or to present one selected exercise from a lesson as a typing exam. Once set up, students can then start to type the current exercise. When a student finishes an exercise his achievement is saved into a database, so the teacher can then view grades.

The following keyboard layouts are available in this MooTyper release: Arabic, Armenian, Belgium(Dutch), Bulgarian, Croation, Czech, Danish, Dvorak(US), English (UK), English(US), EnglishWKeypad(USV6), Estonian, French, FrenchWKeypad(FRV6), German(Swiss), German, GermanWKeypad(V6), Greek, Hebrew, Hungarian, Icelandic, Italian, Norwegian, numberKeypadOnly, Portuguese(Brazil), Portuguese(Portugal), PortugueseWKeypad(PortugalV6), Romanian, Russian, Serbian, Slovenian, Spanish, SpanishWKeypad(V6), Swedish, Telugu, Thai, Turkish, Ukrainian, Uyghur, and Vietnamese.

You can visit the website URL listed down below, create an account, and try any of the listed layouts. If there is a layout not listed, that you would be interested in trying, please make a request in the comments below, or at the github Source control URL location.

For this MooTyper release, immediately after you upgrade, you may need to go to one of your MooTyper activities and in it's Administration block, click on, Import lesson / KB layout, so you will get versions of all the new keyboard layouts and lessons. Depending on how you do the upgrade, your old keyboard files may be erased. In that case you will get an error that can be cleared by going to Setup for each MooTyper, and select a keyboard layout to use. Old keyboard versions are not necessarily compatible with the styles.css file included in this version. In some cases, this version includes multiple layouts.

Recent New Features - note that the page was getting so long, I have removed previous version, New Features, lists.

  • Removed cron from lib.php and created cron_task.php
  • Dropped googleapi for jsquery and switched to internal Moodle jsquery
  • Added capability to edit Lesson names in the database.
  • Added the capability to edit exercise names in the database.
  • Added the capability to add exercise names when creating/editing and exercise.
  • Added Exercise names to the info displayed on the view.php page.
  • Added a simple exercise name to each exercise in each included lesson sample.
  • Added more sample lessons.
  • Added more keyboard layouts and upgraded some more to version 5.
  • Fixed the bug in, owngrades.php, where the grade table right side border does not render in some browsers.
  • Fixed a bunch of minor HTML errors in the keyboard layout files.
  • Added a bunch of V5 and a couple of V6 keyboard layouts.
  • Fixed missing link to suspicion check in atchk.php file, that was making both the attempts and checks table to fill up with orphaned entries.
  • MooTyper now will allow you to use the Moodle Grade system. Should only be used for Exam mode.
  • MooTyper now will allow you to use the Moodle Rating system. Works best for Practice and Lesson modes.
  • Mean, Median, Mode, and Range statistics are listed below the grade tables.

Other recently added features:

  • Added new security and log events.
  • Tweaked some keyboard layouts to ensure proper rendering.
  • Added Groups to the View all grades page.
  • Added buttons to make navigating between MooTyper pages easier.
  • If student does not make any mistakes, the results will show as 0: No mistakes, instead of Undefined.
  • Currently, the Actions menu item, Export/edit exercises, is hidden if you cannot edit the lesson of the current MooTyper activity.
  • Currently, the Settings button, is hidden if you cannot edit the lesson of the current MooTyper activity.
  • Mistake details are shown to the student in real time in the space between the status bar and the text to type.
  • Mistake details are shown in the Mistakes column when a teacher, manager, or admin goes to, View all grades.
  • Mistake details are shown in the Mistakes column when a student goes to, View my grades.
  • Mistake details are included in the Mistakes column of the CSV file when a teacher, manager, or admin selects, Export to .csv.
  • The former link, Export to .csv, is now a button.
  • New key top text color setting
  • New time limit setting that works with all three modes, Lesson, Exam, and Practice
  • New required WPM settingthat works with all three modes, Lesson, Exam, and Practice
  • Capability to set time limit, precision, and WPM rate to zero, so you can mix-and-match requirements for all three modes
  • Added a Cancel button on the Settings page
  • Add information regarding time limit, precision, and WPM to, View all grades, View my grades, and csvexport file.
  • Fixed a bug that limited Exams to exercise 1
  • Added Lesson ID to the link for adding additional exercises on exercises.php page
  • Fixed bug that was showing edit and delete icons when the lesson/exercise was NOT editable by the viewing person
  • plus a few others
  • Added new events for logging exam_completed, exercise_completed, and lesson_completed.
  • Started changing various links into buttons.
  • New Cancel buttons when editing or adding a new exercise.
  • New Cancel button when creating a new Lesson category.
  • Some new log events, plus some with more information.
  • The statistics bar is now full width to accommodate longer labels in some foreign language that were causing a line break forming three lines of text, instead of the desired two.
  • Fixed a bug that was preventing selecting a mode other than the site default mode.
  • Added Lesson/Category name just above the status bar, between the Mode and Exercise X of X.
  • Made SQL code change so that keyboard layout lists are in alphabetical order in the three places they can be seen.
NOTE: If you are like me and have numerous instances of MooTyper in your courses, you can switch to one of the new keyboard layouts much faster by changing the setting in the database. First go to one MooTyper and import the new keyboard layouts so they are added to the database. Check the mdl_mootyper_layouts table to see what is in the ID field of the keyboard you want to use. Go to the mdl_mootyper, and change the layout field to the ID number of your desired keyboard layout.

For any additional information please visit us on GitHub or post in MooTyper's forum topic.


Screenshot #0
Screenshot #1
Screenshot #2
Screenshot #3
Screenshot #4
Screenshot #5
Screenshot #6
Screenshot #7
Screenshot #8
Screenshot #9


AL Rachels (Lead maintainer)
Jaka Luthar: Original author
Yerb Khan: Original concept
Please login to view contributors details and/or to contact them

Comments RSS

Show comments
  • Wed, Oct 28, 2020, 1:32 AM
    For anyone interested, if you would like to see the English, Spanish, or German keyboard layouts with the number key pad on the right, go to the Website URL link list above, then go to each of the same named courses.
  • Tue, Jan 5, 2021, 7:39 PM
    Mootyper does not work for me with moodle 3.9 function check_database_tables_row_format throws error/invalidmysqlnativetype
  • Thu, Jan 7, 2021, 4:54 AM
    Hi Victor,
    What version of MooTyper are you using, which PHP version, and what database type? Ned to know so I can try to duplicate.
  • Mon, Mar 29, 2021, 12:20 AM
    Anyone interested in being able to edit lesson names? Or adding/editing exercise names? Go check this forum entry for details.
  • Fri, Apr 9, 2021, 4:14 PM
    Hi Al Rachels and all,

    I'm getting the below error when I click on setup :

    Debug info: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
    SELECT * FROM mdl_mootyper_exercises WHERE lesson=
    [array (
    Error code: dmlreadexception

    Stack trace:
    line 486 of /lib/dml/moodle_database.php: dml_read_exception thrown
    line 1273 of /lib/dml/mysqli_native_moodle_database.php: call to moodle_database->query_end()
    line 181 of /mod/mootyper/classes/local/lessons.php: call to mysqli_native_moodle_database->get_records_sql()
    line 383 of /mod/mootyper/mod_setup.php: call to mod_mootyper\local\lessons::get_exercises_by_lesson()

    This plugin was running fine all the while. I'm facing this issue when I tried to translate my own lesson in this plugin. I deleted the lesson and even tried to uninstall and deleted the database, yet the same issue persists when I reinstall the plugin.

    Anyone else faced the same issue?
  • Sat, Apr 10, 2021, 1:55 AM
    For me to possibly be able to help, I need to know your MooTyper version, your Moodle version, your php version and your database type and version.
  • Mon, Apr 12, 2021, 9:48 AM
    Hi AL Rachels,

    MooTyper version
    I was using 3.9.1+ (Build: 2020070801), then when I had this error, I tried to uninstall, delete from DB, and re-install version 3.9.6 (Build: 2021032000), yet the error still persists.

    Moodle version - 3.9

    PHP version - 7.4.13

    Database type and version - mySQL / 5.5.3
  • Mon, Apr 12, 2021, 10:33 PM
    I think you need to try and totally remove MooTyper and start over and make sure all seven of the MooTyper database tables are removed.
    When you tried to translate you own lesson, were you doing it in the MooTyper built in lesson editor? Or, were you using an external text editor, such as Notepad++?
  • Tue, Apr 13, 2021, 6:19 AM
    Getting set to release a new MooTyper v4.0.0. It is already on the demo site at for anyone interested. Main things that are new is the capability to give exercises a name, edit exercise names, and edit lesson names. Exercise names will now be part of a lesson file export and import which means I had to change the file format for lesson files. Still testing on older versions of Moodle, but should be release, soon.
  • Tue, Apr 13, 2021, 4:19 PM
    Thanks, AL Rachels,

    I manage to sort it out by deleting all the tables and re-installing the plugin.
  • Wed, Apr 14, 2021, 1:00 AM
    Thanks for posting your feedback.
  • Mon, May 24, 2021, 6:26 PM
    Good morning.
    We are using moodle 3.0 version
    The server environment is
    php 7.2,
    I use mysql.

    Students want to use the Safe Exam Browser to take exams.
    Korean cannot be entered in the single-stage test
    I am trying to use MooTyper keyboard layout.

    Is there a way to use it with Korean MooTyper?


    * My email :
  • Tue, May 25, 2021, 4:22 AM
    Sorry, no MooTyper Korean keyboard layout available at this time. MooTyper uses Unicode Character set, with one character per character position in a word. Korean words have multiple characters in one character space which breaks MooTyper.
  • Mon, Aug 16, 2021, 10:20 AM
    Hi AL Rachels,

    I'm having a problem here. I've made a typing test activity. When I click on the activity, the page automatically scrolls down to the paragraph, skipping over the information above. This only occurs on specific devices. When I try it on a desktop, it does not automatically scroll down, but it does on a laptop. Do you have any suggestions for this problem?
  • Tue, Aug 17, 2021, 8:54 AM
    What kind of laptop? What operating system? What version of Moodle? What version of MooTyper? Truthfully, I only have two old laptops and four tablets left from my teaching days, and cannot get any of them to do what you describe.
    On one of the problem laptops, right click on MooTyper and select, Inspect, then click on the, Console, tab and see if it gives you any helpful information.
1 2 3 4 5 6 7 8
Please login to post comments