/event-trigger

Comprehensive FFXIV Overlays, Triggers, Dot Tracker, Log Analysis, and more in an easy-to-use tool

Primary LanguageJava

Dragonsong's Reprise (aka Dragonsong War/Dragonsong Ultimate) Trigger Status: Basically done with the whole fight

Code documentation (auto-generated) is now available here (replace master in the URL with the branch you are using).

There is also a website for Triggevent now!

Triggevent

Triggevent is a comprehensive FFXIV addon that provides triggers, overlays, log analysis, and more. Triggers can even have custom configuration GUIs and overlays.

Want to have a multi target DoT tracker without going through all the manual setup pain of Hojoring/Special Spell Timer (SpeSpe)?

Maybe you just want a Titan Gaol plugin that actually works?

Want to make triggers without dealing with regex, which was never the right tool for the job in the first place?

You've come to the right place!

Even if you don't plan to actually use it, its log analysis and replay functions can be invaluable for making other addons and triggers.

Most documentation is in the app, or on the Wiki.

How to Download/Install

READ THIS: See Installation

Short version: Install OverlayPlugin in your ACT, then start OverlayPlugin WSServer from within ACT.

Features

Overlays

There are several overlays built in. Perhaps the most interesting is a multi-target DoT tracker, since nothing else seems to have good multi-target support. It even has tick display built-in if you want to optimize:

image

Cooldown Tracker

CD Tracker

Shows remaining cooldown and active time. You can have two separate overlays - one for party, one for personal.

Jail Plugin

Triggevent has by far the most powerful Titan Jail plugin. You choose a priority by dragging and dropping jobs - no typing names. It supports both automark and personal callouts, so you don't have to configure two plugins separately.

Jail Plugin

Triggers

Triggers can be written as code (like Cactbot) or with a simple point-and-click interface. Both options let you write clear conditions, rather than stuffing everything into a hard-to-understand regex.

For example, consider this small bit of code here:

image

The conditions are all easier to read than a regex - it triggers on a buff application, with an ID of 0xACA, where the target is the player, and it is not a buff refresh. Then, we want to switch our callout based on the number of stacks of the buff.

On top of that, it puts configurable callouts on the UI: will result in you having four easily configurable callouts, which support both on-screen text and TTS:

image

You can also make triggers using simple conditions - no regex required! No more worrying about future patches breaking regexes, since everything is parsed for you:

image

You can even right click an event and select "Make Easy Trigger", and it will try to fill out the data for you:

image

In addition, any trigger attached to an event with a duration (buffs, castbars) can easily display a countdown until the event takes place, if you have the on-screen callout overlay:

image

Callouts can be further customized, as they support Groovy expressions:

image

Analysis

Easy access to combatants and events data

Overview

Makes it easier to create and test reliable, extensible overlays and triggers. Even if you're developing triggers for a different plugin like Cactbot or Triggernometry.

Replay Support

You can import a previous session, or an ACT log. You can even force-on overlays to see what your overlays would have looked like at that point. FFLogs is also supported to some degree. This is a great way to rapidly test new triggers - if fflogs exposes enough data, you don't even need to have the log file!

To open a replay, simple run triggevent-import.exe instead of triggevent.exe, and then choose a file or FFLogs URL. Note that FFLogs support requires you to supply your own API key - I don't have a way of securely distributing a key.

image

Future Features

See Feature Ideas for what I plan to implement down the line.

Why Would I Use This? (Short Version)

For Normal Users

  • Lots of built-in features - jail plugin that doesn't suck, multi target dot+tick tracking, and a lot more
    • Ever wanted to put your entire mit plan, with icons, on a timeline? Now you can.
  • Better customizability of callouts without needing to edit triggers
  • Extremely easy to make basic triggers - making triggers doesn't require any knowledge of log lines nor regular expressions (and shouldn't - because it was never the right tool for the job!)
    • Most of it can be done by right clicking on the event you want to make a trigger from, and selecting "Make Easy Trigger". It's not perfect all the time, but you can edit the trigger if anything is off.

For Developers and Power Users

  • Better tools for creating and testing triggers
    • Certain types of triggers can be tested without a log file - you can use an FFLogs report instead!
    • You can write test cases for triggers
  • Zero regex means much more readable conditions and triggers
  • Much better abstraction of incoming data out of the box
    • Specifically, log lines are parsed into rich objects that can be queried as needed
    • Everything is converted to appropriate data types, both in terms of primitive values (i.e. no more worrying about hex/dec conversions), as well as rich types (such as combatants and abilities)
    • Events can be further abstracted into more refined events - for example, Titan Jails have their own event, so anyone wanting to provide more forms of Jail plugins need only listen for that specific event.
    • The trigger shouldn't need to worry about any low-level details - it should be abstracted to that absolute minimum (e.g. call out "Raidwide" when ability 0x123 starts casting
  • Plugins can have their own custom configuration GUIs (see the jail config GUI for a great example)
  • Run scripts within the app, for any purpose:
    • Prototyping code that will go inside the app
    • Log analysis
    • Bulk changing of settings and the like