Logical disjunction have lower precedence than logical conjunction.
Therefore the script in your post would be equivalent to (playerwhoholded.Name == owner.Name and OwnerCache.Eggs.Value > Price) or OwnerCache.Eggs.Value == Price.
if (playerwhoholded.Name == owner.Name and OwnerCache.Eggs.Value > Price) or (OwnerCache.Eggs.Value == Price) then
end
You can use parentheses to connect “and” and “or” statements together. I’m not sure how you want it, but this is just an example in case the “and” or “or” are interfering with each other. (Sorry I’m not good at describing it)