Triggevent, an FFXIV Addon

Triggevent is a comprehensive addon for FFXIV that provides cooldown and multi-target DoT tracking, easy triggers, a titan jail plugin, and more.


Project maintained by xpdota Hosted on GitHub Pages — Theme by mattgraham

The Events Tab

The events tab is where you can go to see everything that has happened since opening the program and connecting to ACT (or since opening a replay):

Combat Log Events Mostly Unfiltered

Here, you see lines roughly equivalent to what you’d see in ACT, but in a more human-readable format.

Note that if you are playing a replay, it will not play through the events until you tell it to do so via the “Play” button at the top, or the “Play to Next Matching” button.

Columns

From left to right, the columns are:

Controls

Filters

Freeform

The freeform field supports Groovy expressions. To use it, first click the “Show/Hide Freeform” button, then enter a query in the box that appears below.

Here are some examples:

You can also use the Groovy tab to define a filter function, then reference it. For example, make a new script, check the “Run on Startup” box, put this in, then save and run it:

def isNpc(XivCombatant combatant) {
    return combatant.type == CombatantType.NPC || combatant.type == CombatantType.FAKE || combatant.isEnvironment()
}
globals.noPlayerAbilities = event -> {
    if ((event instanceof HasAbility || event instanceof HasStatusEffect) && event instanceof HasSourceEntity) {
        if (!isNpc(event.source)) {
            return false
        }
    }
    if (event instanceof StatusEffectList && !isNpc(event.target)) {
        return false
    }
    if (event instanceof TickEvent) {
        return false
    }
    if ((event instanceof HasTargetEntity || event instanceof HasSourceEntity) && event.target.type == CombatantType.PET) {
        return false
    }
    if (event instanceof StatusEffectList && (event.target.name == null || event.target.name.isEmpty())) {
        return false
    }
    return true
}

Now, you’ll be able to use noPlayerAbilities(event) (or noPlayerAbilities event as a filter). This will filter out most player-initiated actions, as well as actions involving a pet (which would otherwise be considered an NPC).

Diving Further into Events and their Properties

To poke around with a particular event in order to make filters for it, right click it and select “Save As Temp Variable”.

Then, in the Groovy scratch console, run a script with nothing but that variable name:

Groovy Event Poking 1

The list at the bottom will show you all the properties you can use on that events.

You can poke further into these:

Groovy Event Poking 2

Now, armed with this knowledge, let’s filter to only damaging abilities that hit players who were standing on the East side of the arena (the center is typically 100,100):

Custom Queries