Bom, você não podia coloca o end depois do removeItem, não tinha um IF para isso.
E da exp voce esqueceu do (Config.) ou seja, config.expgain.
local config = {
animationColor = TEXTCOLOR_LIGHTBLUE, --[[Cor da animação | Padrão = Azul Claro]]
textType = TALKTYPE_ORANGE_1, --[[Cor do Texto | Padrão = Verde]]
expGain = 300 -- quanto vai ganhar de exp
}
function onUse(cid, item, fromPosition, itemEx, toPosition)
doPlayerAddExp(cid, config.expGain)
doSendAnimatedText(getThingPosition(cid), config.expGain, config.animationColor)
doPlayerSendTextMessage(cid, config.textType, "Voce recebeu ".. config.expGain .." experience")
doRemoveItem(item.uid, 1)
return TRUE
end