I believe this should work:
Using LIEGE as you did in your example is a special case that only works in very few places. Use the previous scope (prev) instead. And tier = X, unlike other triggers, does not mean >= but just equal to. Use the higher_tier_than instead.
Code:
liege = {
NOT = {
any_vassal = {
higher_tier_than = baron
NOT = { opinion = { who = PREV value = 0 } }
}
}
}
Using LIEGE as you did in your example is a special case that only works in very few places. Use the previous scope (prev) instead. And tier = X, unlike other triggers, does not mean >= but just equal to. Use the higher_tier_than instead.