Quick answer: Unreal Blueprint function modifying a passed array also mutates the caller's array? Blueprint arrays pass by reference by default - use Make Array or Copy node to break the link.

Inventory function pops the first item to use it. Caller's inventory is mysteriously short one item.

Mark input as Pass-by-Value

On the function's input pin details, uncheck Pass-by-Reference. The function receives a copy; the caller's array stays intact.

Or copy explicitly

First node in the function: Set Array Elements into a new local variable. Operate on the local; the input is untouched.

Audit BP function library

Library functions inherit the ref-by-default behavior. Review them in bulk - any function that mutates an array is suspect.

“Blueprint defaults favor performance over predictability. Read the pin tooltip; never assume.”

Establish a naming convention: Compute_ prefix means pure (no mutation), Apply_ means it modifies inputs. Saves a code review per refactor.