The weapons weren't actually even getting the ammo.. So I created a new .lua, just to keep separate from the distribution file, and added a new function. I looked through all the files looking for some way of getting the PrimaryHandItem. I found it. I also looked through(with some help from Aricane) stormy's reloading code. Hook.Attack.Add. That was the code I used to trigger on attack. So the code I ended up with was... function checkInvForAmmo(character, chargeDelta) local weapon = character:getPrimaryHandItem(); local inventory = character:getInventory(); if weapon:getType() == "bow0" then if inventory:contains("Bolts") then character:DoAttack(chargeDelta); inventory:RemoveOneOf("Bolts"); else character:setPrimaryHandItem(nil); character:say("I'm out of ammo for that weapon!"); end endendHook.Attack.Add(checkInvForAmmo);