Index: lang/en/scorm.php
===================================================================
--- lang/en/scorm.php	(revision 1273)
+++ lang/en/scorm.php	(revision 1276)
@@ -117,6 +117,7 @@
 $string['eventscolaunched'] = 'Sco launched';
 $string['eventtracksviewed'] = 'Tracks viewed';
 $string['eventuserreportviewed'] = 'User report viewed';
+$string['eventattemptscored'] = 'Attempt scored, completed, or passed';
 $string['everyday'] = 'Every day';
 $string['everytime'] = 'Every time it\'s used';
 $string['exceededmaxattempts'] = 'You have reached the maximum number of attempts.';
Index: locallib.php
===================================================================
--- locallib.php	(revision 1273)
+++ locallib.php	(revision 1276)
@@ -540,6 +540,21 @@
         $scorm = $DB->get_record('scorm', array('id' => $scormid));
         include_once($CFG->dirroot.'/mod/scorm/lib.php');
         scorm_update_grades($scorm, $userid);
+        
+        
+        // Trigger attempt_scored event
+        $cm = get_coursemodule_from_instance('scorm', $scormid);
+        $track->id = $id;
+        $event = \mod_scorm\event\attempt_scored::create(array(
+             'other' => array('attemptid' => $id),
+             'context' => context_module::instance($cm->id),
+             'relateduserid' => $userid
+        ));
+        $event->add_record_snapshot('scorm_scoes_track', $track);
+        $event->add_record_snapshot('course_modules', $cm);
+        $event->add_record_snapshot('scorm', $scorm);
+        $event->trigger();        
+        
     }
 
     return $id;
Index: classes/event/attempt_scored.php
===================================================================
--- classes/event/attempt_scored.php	(revision 0)
+++ classes/event/attempt_scored.php	(revision 1276)
@@ -0,0 +1,103 @@
+<?php
+// This file is part of Moodle - http://moodle.org/
+//
+// Moodle is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Moodle is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
+
+/**
+ * The mod_scorm attempt deleted event.
+ *
+ * @package    mod_scorm
+ * @copyright  2014 onwards Ben Johnson
+ * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+
+namespace mod_scorm\event;
+defined('MOODLE_INTERNAL') || die();
+
+/**
+ * The mod_scorm attempt deleted event class.
+ *
+ * @property-read array $other {
+ *      Extra information about event properties.
+ *
+ *      - int attemptid: Attempt id.
+ * }
+ *
+ * @package    mod_scorm
+ * @since      Moodle 2.7
+ * @copyright  2014 onwards Ben Johnson
+ * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+class attempt_scored extends \core\event\base {
+
+    /**
+     * Init method.
+     */
+    protected function init() {
+        $this->data['crud'] = 'c';
+        $this->data['edulevel'] = self::LEVEL_PARTICIPATING;
+    }
+
+    /**
+     * Returns non-localised description of what happened.
+     *
+     * @return string
+     */
+    public function get_description() {
+        return "The user with id '$this->userid' completed or was scored for the attempt with id '{$this->other['attemptid']}' " .
+            "for the scorm activity with the course module id '$this->contextinstanceid'.";
+    }
+
+    /**
+     * Returns localised general event name.
+     *
+     * @return string
+     */
+    public static function get_name() {
+        return get_string('eventattemptscored', 'mod_scorm');
+    }
+
+    /**
+     * Get URL related to the action
+     *
+     * @return \moodle_url
+     */
+    public function get_url() {
+        return new \moodle_url('/mod/scorm/report.php', array('id' => $this->contextinstanceid));
+    }
+
+    /**
+     * Replace add_to_log() statement.
+     *
+     * @return array of parameters to be passed to legacy add_to_log() function.
+     */
+    protected function get_legacy_logdata() {
+        return array($this->courseid, 'scorm', 'attempt scored', 'report.php?id=' . $this->contextinstanceid,
+                $this->other['attemptid'], $this->contextinstanceid);
+    }
+
+    /**
+     * Custom validation.
+     *
+     * @throws \coding_exception
+     * @return void
+     */
+    protected function validate_data() {
+        parent::validate_data();
+
+        if (empty($this->other['attemptid'])) {
+            throw new \coding_exception('The \'attemptid\' must be set in other.');
+        }
+    }
+}
