GenOut is short for Generic Outputter. It's a fork of Garan's "Alerter" plugin, version 1.08, but with several new, important features, and a shift in emphasis to the output ("Response") side. The plugin inherits from Alerter a means to output text and/or graphic material in a highly-customizable way -- size, position, aspect ratio, duration, flashing, text color/font, scrolling, etc. -- as well as Alerter's ability to put a "quickslot" in the output, making it interact-able to execute skills, use items, etc.
GenOut retains Alerter's ability to trigger automatically, based on pattern-matching against incoming chat messages, and in fact expands this capability by allowing multiple patterns to be defined for a single alert, thus reducing the number of alerts required for certain use cases, and without custom Lua coding. But, GenOut also adds the ability to manually trigger an alert from the LOTRO client command-line ("/genout trigger <alert>"), thus enabling it to be invoked via a shortcut, or potentially integrated with other plugins such as SequenceBars.
Image-file Variable Select
In terms of graphical output, the ability has been added for a single alert to select among multiple graphic images, based on "captures" from the text which automatically triggered it. An example would be different graphics for the various colors which are mentioned by the Fireworks Announcer in the Anniversary fireworks-launching quest. In addition to the pattern-matching itself, these captures can be further manipulated by custom Lua code.
A per-alert import/export facility has been added by GenOut. This allows for alerts to be exported in the form of text blocks, for archival/backup purposes, or for collaboration/sharing. The blocks can then be imported, via the copy/paste mechanism, by other accounts/users, to quickly create working alerts in a matter of seconds.
Canned Use Cases
Leveraging the import/export capability, I’ve developed 4 use cases, containing several different import blocks to help folks quickly get up and running with them. Summary descriptions of the use cases are below. Fuller descriptions, and import blocks, on my Author Portal, under Content. Also, files containing the imports are contained in the plugin package itself, under the Imports directory structure. Watch this space for additional use cases to be added, over time, as they are identified or requested.
While GenOut can be used as a prototyping tool for other plugin authors, to test out different forms of text/graphic output, it is also for ordinary users, who may want to import one or more of the canned use cases, and potentially tweak or customize it to their liking.
The documentation from Alerter has been updated with the new GenOut features, in both Rich Text (.rtf) and web (.html) formats, under the "Docs" directory.
A video which introduces GenOut, along with demos of 2 of the use cases (Wine Glass Overlay and Unhelpful Hounds Timely Alert): https://www.youtube.com/watch?v=7EGR8l-xagg
The Treasure Bugan use case (version 1.01) has an instructional video at https://www.youtube.com/watch?v=76WXW8Nfobo
. "Quickstart" for the Farmer's Faire use cases -- Bounder Rounds and Fat Mayor -- on YouTube
). Videos on additional use cases, and other aspects of GenOut, should follow in the next weeks or months.
- More granular control of text output, to more conveniently accommodate graphic-only scenarios, or potentially to output text as a “caption” of a graphic.
- Resizability of main configuration window, potentially auto-sizing according to screen resolution or aspect-ratio changes
- The ability to parameterize image-file selection according to current resolution/aspect-ratio?
- A convenient way to parse /loc coordinates in order to select from multiple images, e.g. for location-aware maps? (could potentially be done in custom Lua code, but would be cumbersome).
- In-game, context-sensitive help
- Ability to display multiple images in sequence, for a given alert (?) This wouldn’t be granular enough for animation, but may be able to provide a “storyboard” capability.
- An “export all alerts” option (?)
- Ability to pass “captures” as parameters to manually-triggered alerts (?)
- Streamline the interface by removing the Custom Lua tab and instead, have popup windows for Trigger Lua or Response Lua code, launchable from those respective tabs.
- Add "enable alert" as a possible response. This would allow chaining of alerts, e.g. the message text indicating that a particular quest has been accepted, might then enable another alert which watches for messages indicating the accomplishment of quest objectives. Otherwise, the second alert might stay dormant, so that it doesn't impact performance or produce any false positives.
Canned Use Cases
Wine Glass Overlay
This use case places a graphic over the table containing wine glasses for the Midsummer Festival repeatable quest To the Last Drop. This aids in the selection of the correct wine glass for the quest, and saves time. The output of this alert is manually triggered, typically using a shortcut. There are 2 images for this use case – one with the view zoomed completely in, and one with the view zoomed completely out. Each of those has a config import for 16:9 aspect ratio, and the zoomed-out version has a config import for 4:3 aspect ratio. At 4:3 aspect ratio, the table gets cut off when zoomed in, which makes portrayal of certain wine glasses impossible, so there’s no point in having a config for that.
Fireworks Launcher Assist
Inspired by, and similar to the work b4 is doing on the Festival Buddy plugin, this config automatically triggers from the Firework Announcer utterances of the Anniversary fireworks quest, and either emits a simplified version of the command (e.g. “not blue”) or a graphic which represents which firework colors can be launched, and which cannot. There is one config that are entirely “codeless”, which is preferred for a graphical output, but where text output may be awkward (e.g. “besides yellow”). Also provided is a “minimal coding” version which fixes up the text (e.g. “is red” or “is not green”). There is an experimental config which outputs Sindarin (why? Because I can :-). Note that the patterns only match English announcements – if someone wants to take on a German or French version, it would be appreciated.
This config looks for level-up messages on the Advancement channel, and responds when a level is attained that permits a new reforge of legendary items. The output can be either text or a graphic.
Unhelpful Hounds Timely Alert
This use case provides immediate visual feedback when the correct hound is clicked for the Unhelpful Hounds quest during the Midsummer Festival. The quest messages from the game itself aren't necessarily timely, because the "successful" message may be queued up behind one or more "unsuccessful" ones. If text is preferred over a graphic, the user can choose to output anything they want, including messages in languages other than the ones supported by the LOTRO client (i.e. something other than English, French or German)
Treasure Bugan Follow
In this use case, a graphic of a bugan appears when triggered by the message which indicates the spawn of a Treasure Bugan during the event. The graphic is a quickslot, which executes a "/follow" when clicked, thus providing a convenient way for melee characters to put the bugan on follow, which reduces the time necessary to defeat it, hopefully within the timer.
Farmer's Faire Bounder Rounds Quest
A graphic output is triggered by "drunk" sayings from hobbits in Bywater, along with some terse text to search for in the chat bubbles. Available in English, French and German (feedback always appreciated, especially for French/German, since I'm not a native speaker). See Version 1.03 CHANGELOG entry for link to "quickstart" of this use case.
Farmer's Faire Fat Mayor Quest
A graphic output is triggered by sayings from Mayor Will Whitfoot in Bywater, unless the text indicates that you shouldn't bring him anything. There are two versions of this use case: a) show only an icon representing the consumable that the Mayor requires, and b) a full image of the table, with the desired consumable circled. The orientation of the image is fixed; an arrow points towards the relative position of the Mayor so that it can be lined up properly. Also available in English, French and German (feedback appreciated on this one too). See Version 1.03 CHANGELOG entry for link to "quickstart" of this use case.
BUGFIX: Fixed edge case for Export (strings with embedded single-quotes). Please re-export any alerts that meet that criterion.
BUGFIX: Delay and Cooldown fields that were blanked out, after being numeric, weren't saving properly.
WORKAROUND: The French client throws in UTF-8-encoded non-breakable-spaces, which couldn't be match via GenOut patterns. For now, I'm just forcing those to regular ASCII spaces.
CONTENT: Use cases for Bounder Rounds and Fat Mayor quests in Farmer's Faire. See a "quickstart" for the Farmer's Faire use cases on YouTube)
1.02 BUGFIX: version 1.01 import version-checking was too strict (was rejecting version 1.00 import files). This is relaxed now.
1.01 Added Treasure Bugan use case, and fixed a bug where dragging across a quickslot could cause the shortcut to be reset.
1.00 Initial release