Decorative background for title

Practical Expression Examples

Are you looking to improve your Warcraft Logs Expression game? This article will go through some examples to help you build and use your own filter expressions.

Please join us on Discord if you have suggestions for more examples to add, or questions about filter expressions!

Please note that while this article mainly shows Warcraft Logs examples, the same principles work for other sites and games.

What are Expressions?

Expressions are built using the WCL Expression Language and are intended for experts and programmers who need to build complex queries that can't be handled by the standard query UI. Expression Pins can still be shared with others, however, so you don't have to be an expert to use them!

Make sure you check out the Intro to Expressions article for more in-depth about expressions.

Timestamps

Time is in milliseconds, so if you e.g. wanted to look at the first 30 seconds of a fight, that is 30000 milliseconds.

Example:

timestamp < 30000

Use <, >, >=, <=, to say what part of the fight you want to look at. You can also look at a specific time section of a fight by combining two timestamp expressions.

Example:

timestamp > 30000 AND timestamp < 60000

View the example with a log.

This looks at the time section from 30s to 60s into a fight. You can also look at multiple pulls in a report to only look at that specific section of time (as the example shows).

Ability Filter

You can combine multiple ability names with this below query, to for example look at healing cooldowns and when they are used.

Example: Healing Cooldowns

ability.name IN ("Aura Mastery", "Divine Hymn", "Holy Word: Salvation", "Power Word: Barrier", "Healing Tide Totem", "Spirit Link Totem", "Ancestral Protection Totem", "Revival", "Restoral", "Invoke Yu'lon, the Jade Serpent", "Tranquility", "Flourish", "Rewind", "Darkness", "Rallying Cry")

You could also use ability.id instead of ability.name, and put all the spell IDs. Using English names means you have to translate logs in other languages before the filter will work.

You can also exclude abilities with this by using ability.name NOT IN instead.

Ability Type

Have you ever wanted to look for a specific damage type? For example, you can look at all non-physical damage with this expression:

ability.type != 1

Ability type 1 is physical, != means anything not physical. You can filter for only physical damage with ability.type = 1 too.

You can find the parameter values for all spellschools on the Warcraft Wiki - Combat Log Events page.

Self Damage Removal

This expression removes any self-damaging effects.

source.id != target.id

Spell Reflect

Ever wanted to see your spell reflect damage in the logs?

source.id = target.id

Use this expression and pick 'Enemies' and 'Damage Taken'.

Resources

Here are a few resources to help you on your expression journey. Feel free to join us on Discord if you have any questions too!

Logs and Queries Spreadsheet - Has a lot of information on how to use filters and navigate logs, including data on cooldowns and example queries. Recommended!

If you have any suggestions for more expression examples or resources to add, please don't hesitate to reach out to us over Discord, and if you have any support questions, please reach out to our support team at support@warcraftlogs.com!

Advertisements
Remove Ads