Global script

local types = require('openmw.types')
local I = require('openmw.interfaces')
local core = require('openmw.core')
local world = require('openmw.world')
local async = require('openmw.async')

   I.Activation.addHandlerForType( types.Door, -- or addHandlerForObject if you need it only for one specific container
    async:callback(function(door, actor)  

       if types.Door.isLocked(door) then return end
       
          local item = types.Miscellaneous.records[math.random(1,#types.Miscellaneous.records)]        
          types.Door.setKeyRecord(door, item.id)
        
          types.Door.lock(door,50)
          print(types.Door.getKeyRecord(door).name)       
        
          world.createObject(item.id,1):moveInto(types.Actor.inventory(actor))          
       return false

  end))