It seems to me, that GetItemCount might not register the starting inventory of an actor, but can it really be so?
I tested this by starting a fresh new game with nothing but the following script attached to Sven/Faendal after exiting the Helgen cave, in order to keep track of their inventory:
Spoiler
ScriptName InventoryCheck extends ActorKeyword Property VendorItemArrow autoKeyword Property VendorItemWeapon autoKeyword Property WeapTypeBow autoKeyword Property WeapTypeSword autoKeyword Property WeapTypeDagger autoEVENT OnItemAdded(Form akBaseItem, int aiItemCount, ObjectReference akItemReference, ObjectReference akSourceContainer) CheckInventory()endEVENTEVENT OnItemRemoved(Form akBaseItem, int aiItemCount, ObjectReference akItemReference, ObjectReference akDestContainer) CheckInventory()endEVENTFUNCTION CheckInventory() string S = "Inventory check:" S = S + "\nArrows " + Self.GetItemCount(VendorItemArrow) S = S + "\nWeapons " + Self.GetItemCount(VendorItemWeapon) S = S + "\nBows " + Self.GetItemCount(WeapTypeBow) S = S + "\nSwords " + Self.GetItemCount(WeapTypeSword) S = S + "\nDaggers " + Self.GetItemCount(WeapTypeDagger) debug.MessageBox(S)endFUNCTION
At no time did it register anything but zero on all displayed items, until I enlisted one of them as a follower, and then it displayed correctly the bow and 12 arrows provided by the DialogueFollower quest. And any additional items I manually hand to them correctly change the numbers. But Faendal's initial bow and 12 arrows, or the dagger that both NPCs initially have never registered. If I trade the dagger away from them, the script shows a count of -1 for that category.
I find it hard to believe, that this can really be the case, and I hope some mistake on my side could explain it, but...
I would very much appreciate it, if somebody could try to replicate the effect.