More Efficient Way That a Bunch of Booleans?

The most memory efficient way would be a flag based approach, maybe through an enum bitmask, but not sure if that’s fully doable in blueprint

I would suggest looking into gameplay tags, and give each animal a gameplay tag container, and add a tag for each status
You can then query the container very easy to see if a status is active
This is also a very easily expandable and readable way to go about it