       continue unless thangType = _.find thangTypes, (m) -> m.get('name') is spriteName
       continue unless sound = AudioPlayer.soundForDialogue message, thangType.get('soundTriggers')
       AudioPlayer.preloadSoundReference sound
-    @session.updateKeyValueDb(e.keyValueDb) if @level.isType('game-dev')
+    if @level.isType('game-dev', 'hero', 'course')
+      @session.updateKeyValueDb(e.keyValueDb)
 
   # Real-time playback
   onRealTimePlaybackStarted: (e) ->

    @$('#how-to-play-game-dev-panel').addClass('hide') if @level.isType('game-dev')
    @$el.removeClass 'real-time'
    @onWindowResize()
    @session.saveKeyValueDb() if @level.isType('game-dev')
    if @world.frames.length is @world.totalFrames and not @surface.countdownScreen?.showing and not @realTimePlaybackWaitingForFrames
      _.delay @onSubmissionComplete, 750  # Wait for transition to end.
    else

    @level?.get 'slug'

  onRunCode: ->
    @updateKeyValueDb()
    store.commit('game/incrementTimesCodeRun')
