Skip to content

Filters

Filters are used in updateWhere operations to select entities for bulk updates without knowing specific IDs. Filters let you target entities based on attribute values, ranges, or flag membership.

SyntaxYAML ExampleMeaning
Exact matchcategory: axecategory == "axe"
Range (inclusive)requiredLevel: 60..7060 <= requiredLevel <= 70
Multi-value (any-of)rareGrade: [0, 1, 2]rareGrade IN (0, 1, 2)
Flags includesrequiredClass: warriorrequiredClass includes warrior flag

Multiple filter keys use AND logic — all conditions must match:

items:
updateWhere:
- filter:
category: axe # AND
requiredLevel: 60..70 # AND
rareGrade: [0, 1] # all must match
changes:
sellPrice: 500

All schema attributes are filterable by default. The filter syntax available for each attribute depends on its type:

TypeSupported filters
intexact, range, any-of
decimalexact, range, any-of
stringexact, any-of
boolexact only
enumexact, any-of
flagsexact, any-of, includes

For the complete list of attributes available on each schema, see Schemas.

For flags enums like requiredClass, use includes to check if a specific flag is set:

items:
updateWhere:
- filter:
requiredClass: warrior # items usable by warrior class
changes:
sellPrice: 150
  • Ranges use .. separator: 60..70 means 60 to 70 inclusive
  • Quoted strings like "60..70" are treated as exact match, not range
  • Ranges work on numeric types (int, decimal)