Você está tentando pegar o teleport pelo nome do killer, não do target. Outro ponto é que você está tentando usar 0.4 em 1.0 e isso não costuma dar certo. Tá aqui como devia ser:
local tps = {
["Little Corym Charlatan"] = {pos = {x=414, y=91, z=11}, toPos = {x=409, y=93, z=11}, time = 30},
}
function onKill(killer, target)
local tp = tps[target:getName()]
if tp and killer:isPlayer() and target:isMonster() then
local item = Game.createItem(1387, 1, tp.pos)
item:setDestination(tp.toPos)
target:say("A teleport appeared near and will disappear in "..tp.time.." seconds.", TALKTYPE_MONSTER_SAY)
target:say("You have killed the disorder and proved be trustworthy", TALKTYPE_MONSTER_SAY)
killer:setStorageValue(21321, 1)
local function removeTeleport()
item:remove()
Position(tp.pos):sendMagicEffect(MAGIC_EFFECT_POFF)
end
addEvent(item:remove, tp.time * 1000)
end
return true
end