tipo vc alterou coisas que n tem a minima necessidade 
  
tipo seu code  
 
InventorySlotStyles = {
 [inventorySlotHead] = "HeadSlot",
 [inventorySlotNeck] = "NeckSlot",
 [inventorySlotBack] = "BackSlot",
 [inventorySlotBody] = "BodySlot",
 [inventorySlotRight] = "RightSlot",
 [inventorySlotLeft] = "LeftSlot",
 [inventorySlotLeg] = "LegSlot",
 [inventorySlotFeet] = "FeetSlot",
 [inventorySlotFinger] = "FingerSlot",
 [inventorySlotAmmo] = "AmmoSlot"
}
ferramentasWindow = nil
ferramentasPanel = nil
ferramentasButton = nil
function init()
 connect(LocalPlayer, { onferramentasChange = onferramentasChange })
 connect(g_game, { onGameStart = refresh })
 g_keyboard.bindKeyDown('Ctrl+1', toggle)
 ferramentasButton = modules.client_topmenu.addRightGameToggleButton('ferramentasButton', tr('ferramentas') .. ' (Ctrl+1)', '/images/topbuttons/ferramentas', toggle)
 ferramentasButton:setOn(true)
 ferramentasWindow = g_ui.loadUI('ferramentas', modules.game_interface.getRightPanel())
 ferramentasWindow:disableResize()
 ferramentasPanel = ferramentasWindow:getChildById('contentsPanel')
 refresh()
 ferramentasWindow:setup()
end
function terminate()
 disconnect(LocalPlayer, { onferramentasChange = onferramentasChange })
 disconnect(g_game, { onGameStart = refresh })
 g_keyboard.unbindKeyDown('Ctrl+1')
 ferramentasWindow:destroy()
 ferramentasButton:destroy()
end
function refresh()
 local player = g_game.getLocalPlayer()
 for i=InventorySlotFirst,InventorySlotLast do
   if g_game.isOnline() then
  onInventoryChange(player, i, player:getInventoryItem(i))
   else
  onInventoryChange(player, i, nil)
   end
 end
end
function toggle()
 if ferramentasButton:isOn() then
   ferramentasWindow:close()
   ferramentasButton:setOn(false)
 else
   ferramentasWindow:open()
   ferramentasButton:setOn(true)
 end
end
function onMiniWindowClose()
 ferramentasButton:setOn(false)
end
-- hooked events
function onInventoryChange(player, slot, item, oldItem)
 if slot >= InventorySlotPurse then return end
 local itemWidget = inventoryPanel:getChildById('slot' .. slot)
 if item then
   itemWidget:setStyle('Item')
   itemWidget:setItem(item)
 else
   itemWidget:setStyle(InventorySlotStyles[slot])
   itemWidget:setItem(nil)
 end
end
 
  
no onferramentasChange vc ta declarando a função mas na função mesmo ta o nome diferente 
  
volta tudo do começo e so edita oque eu falei no outro post so no otmod e ja era