title: Lua - Attempt to call global (a nil value)
body: <p>When executing this code I get an error "attempt to call global 'forId' (a nil value)”</p>
  
  <pre><code>function execute(args)
      local itemid = 526
      local bone = forId(itemid) -- this is where the error occurs
  end
  
  function forId(bid) 
      local xp = 0.0
      if bid == 526 or bid == 528 or bid == 2530 or bid == 2859 then
          xp = 4.5
      elseif bid == 3179 or bid == 3180 or bid == 3183 or bid == 3185 then
          xp = 5.0
      elseif bid == 530 then
          xp = 53
      elseif bid == 532 or bid == 3125 then
          xp = 15
      elseif bid == 4812 then
          xp = 22.5
      elseif bid == 7839 then
          xp = 30
      elseif bid == 6812 then
          xp = 50
      elseif bid == 536 then
          xp = 72
      end
      local bone = Bone:new(bid, xp)
      return bone
  end
  
  Bone = class(function(b, id, xp)
      b.id = id
      b.xp = xp
  end)
  </code></pre>
  
  <p>Can anyone tell me why?</p>