Overview

This plugin provides the ability to output some text and/or a graphic, with significant control of the formatting and display properties (the basic parameters of which are defined on the Response tab). Optionally, an alert may be set up to automatically trigger based on Lua pattern-matching against incoming messages on chat channels (the basic parameters of which are defined on the Trigger tab). For automatic triggering, I highly recommend that users read about Lua Patterns in the Lua 5.1 manual, especially if you want to use captures from the pattern-matching in other parts of the alert definition. Additionally, both the triggering and sophisticated aspects of the output of alerts, can be extended with custom Lua code on the Custom Lua tab. For quick setup of alerts, or for backup/archival/sharing/collaboration, an Import/Export capability is provided on the rightmost tab. Lastly, a number of GenOut functions (save, delete, manually trigger, etc.) can be invoked directly from the LOTRO client command-line, so that these can be incorporated into shortcuts, integrated with other plugins, or in situations where display constraints don't allow access to the actions buttons of the GenOut setup GUI.

(Click on screen elements to jump to the descriptions)

The Language selection only affects the plugin's GUI and is only provided to make usage easier for FR and DE clients This is the selection list for editing alerts. This is the name of the alert. Unchecking this box will disable an alert without deleting the definition so that it can be re-enabled at a later date. Checking this box will save the alert definition in a global file so that it is accessible to all characters on all servers. This is the text that will be displayed in the alert in response to the matching trigger. Select a state to see whether the alert is active in that state. Select any and all channels that should be matched for the incoming message pattern. This defines one or more Lua Patterns which will be compared to incoming messages in the specified channels. Clicking this button saves the alert definition. This button will allow you to test the Response settings, bypassing the Trigger settings. This displays the chat log window. This displays the window for any alerts that have been triggered. Again, pretty self-explanatory, clicking this button deletes the alert definition. Settings related to automatic triggering of alerts. Settings related to the output of alerts Lua code which extends triggering and/or output logic Panel which allows importing/exporting of alerts via copy/paste

Alert definitions

Language: The Language selection only affects the plugin's GUI and is only provided to make usage easier for FR and DE clients.

Alert: This is the selection list for editing alerts. To edit an existing alert, simply select it from the list. To copy an existing alert, select it from the list and then select . To create a new alert, simply select .

Label: This is the name of the alert.

Enabled: Unchecking this box will disable an alert without deleting the definition so that it can be re-enabled at a later date.

Shared: Checking this box will save the alert definition in a global file so that it is accessible to all characters on all servers. WARNING, Unchecking this box on any character will remove the global definitioin and save the alert only for that character so all others will lose access to the alert.

Message: This is the text that will be displayed in the alert in response to the matching trigger. If you specified any captures in the Pattern field, you can reference the captured text using %1, %2, %3, etc for first, second, third, etc capture. There are a couple of other special fields:

%C represents the chat channel number

%S is the Sender argument from the chat message - unfortunately Lua usually specifies this as the local user even though the message came from an external source

%M represents the original message text

Trigger Tab

State: Select a state to see whether the alert is active in that state. The options are Normal, Delayed and Suppressed. Normal alerts will fire normally. Delayed alerts will be delayed until you are no longer in that state. Suppressed alerts will simply be cancelled.

Channel: This is pretty self explanatory, select any and all channels that should be matched for the incoming message pattern. The plugin is slightly more efficient if it can match against fewer channels when comparing incoming messages so the more restrictive you can be the less impact the plugin will have on client performance. If you do not know the channel that you are trying to match, I suggest you use the Show Chat Log button to display raw incoming messages with their channels to locate the correct channel that you wish to match. If the channel is not listed, you can enter the channel number in the Custom Channel field.

Custom Channel: This field is available for users to specify a channel by its number which may be necessary for some FR/DE specific channels as well as channels that are added since the most recent plugin update.

Pattern(s): This defines one or more Lua Patterns which will be compared to incoming messages in the specified channels. Multiple patterns can be provided, one per line. If one of the Patterns is found in the message, the trigger criteria will be satisfied. At this point, if the Trigger Lua field is not empty, the Trigger Lua code will be called. If the Trigger Lua field is blank or the code returns a non-false value when executed, the alert is fired causing the Response to be generated. See below for more info on the Trigger Lua field. NOTE: the patterns are attempted in order until all are tried, or a match is made. The ordering of the patterns may have an effect on which captures are made, which in turn may affect the Message, the Image path, or the result of any Trigger Lua function.

Response Tab

(Click on screen elements to jump to the descriptions)

This is the time that the alert will be displayed in seconds. This is the interval for flashing alerts. This is the minimum delay between instances of this alert. This is an optional time delay before the alert will be fired. When checked, this will override the positioning of the alert and display it at the current mouse location. These define the position of the alert. This is the color for the text of the alert. This is a selection list for the font for the alert. This is the opacity of the alert. This is an optional background image for the alert. Can choose among images using captures. When checked, the alert will slowly scroll up the screen within the bounds of the alert window This set of fields defines a quickslot for a skill, item, alias (chat command), hobby, pet or emote When checked, this will dismiss the alert after the user clicks on the alert/quickslot When checked, makes the entire output area function as the quickslot. When checked, this will save an entry in a custom log file This set of fields defines a quickslot for a skill, item, alias (chat command), hobby, pet or emote This set of fields defines a quickslot for a skill, item, alias (chat command), hobby, pet or emote

Duration: This is the time that the alert will be displayed in seconds.

Interval: This is the interval for flashing alerts. To display the alert without flashing, enter 0.

Cooldown: This is the minimum delay between instances of this alert. If another matching trigger event is fired during the Cooldown period it is ignored.

Delay: This is an optional time delay before the alert will be fired. This can be handy when responding to skill usage to fire the alert as a reminder when the skill effect is about to expire.

Display at Mouse: When checked, this will override the positioning of the alert and display it at the current mouse location. This is particularly handy for quickslot alerts since it will position the quickslot for easy clicking.

Save to Alert Log: When checked, this will save an entry in a custom log file with the character, date/time, alert label and original message. The log file is saved in the PluginData/AllServers folder with the file name ".plugindata"

Left, Top, Width and Height: These define the position of the alert. Note that when in Setup mode, there is a red and white checkered border that displays at the position where the alert will display. You can drag the checkered borders to reposition/resize the alert.

Color: This is the color for the text of the alert.

Font: This is a selection list for the font for the alert.

Opacity: This is the opacity of the alert. This can help prevent an alert from overpowering the display when in combat.

Image: This is an optional background image for the alert. If you specify a number it is used as a resource ID for one of the built-in image resources. If you specify a non-numeric value it is used as a path&filename for a jpg or tga file under the Resources folder for the plugin (do not specify the Resources folder portion of the path). You can select from multiple images based on captures from the matched pattern, e.g. fireworks/%3%2.tga

Use Scrolling Text: When checked, the alert will slowly scroll up the screen within the bounds of the alert window, completing its scroll by the end of the Duration.

Quickslot:

This set of fields defines a quickslot for a skill, item, alias (chat command), hobby, pet or emote. The easiest way to define the quickslot is to locate the object you wish to activate and drag it to the box to the right of the quickslot data/type fields. The data and type will automatically be filled in for the dropped object. Otherwise you will have to locate the data value manually, by another plugin or via an online source.

Mask:When checked, makes the entire output area function as the quickslot.

Hide after Click: When checked, this will dismiss the alert after the user clicks on the alert/quickslot. If unchecked, the alert will continue to display until the Duration expires.

Custom Lua Tab

One of the newest and most powerful features of the plugin is the ability to specify custom Lua code for Triggers and Responses. Both code snippets are defined on the Custom Lua tab. To define a code snippet, simply type or paste the Lua code that you wish to have executed in the text field and save the alert. There are a couple of simple rules, the first of which is that if either code snippet is not blank, it MUST return a non-false value or the alert will be cancelled. This allows the Lua code to abort an alert altogether in the Trigger snippet or to define a custom response and abort the default response in the Response snippet. The second rule has to do with variable scoping. Each code snippet will be executed in the environment of the plugin with access to all of the non-local variables of the plugin. Additionally, there is an "args" table which contains a number of values that may be of interest to end users. Note that all of the elements of the args table are local copies except the args.captures which is a sub-table and contains the Lua string matching captures from the defined Pattern. If the code snippet alters the contents of the args.captures values, those alterations will be passed on and will be available to the Message that is displayed by the alert using %1, %2, etc. Additionally, when clicking the Test button, the plugin will pass the contents of the Message field as the original message or the Pattern field if the Message field is blank.

Import/Export Tab

Import:The tab will display the label "Import" whenever the selected alert is "<NEW>". Text can be typed/pasted into the panel, and if properly formatted, and a compatible version, it will populate a new alert definition. Make sure to SAVE if you want to keep it.

Export:The tab will display the label "Export" whenever the selected alert is not "<NEW>". The text in the panel is not editable, but can be selected for copy/paste into a file, for backup/archivable, or for sharing/collaboration. NOTE: it is not necessary to use Export/Import for "cloning" alert definitions, since you can simply load one alert and save it with a different label.

Action Buttons

Save Button: Pretty self-explanatory, clicking this button saves the alert definition.

Test Button: This button will allow you to test the Response settings and the Custom Lua code. It will NOT test the Trigger settings. To test the Trigger settings, I recommend clicking the "All" channel option and sending yourself a text message containing the exact text you wish to test. If the message contains special characters or tags you may have to use another plugin such as RainBow Chat to generate the test. Otherwise you will have to get the client to generate the actual message.

Show Chat Log Button: This displays the chat log window. This window can be handy to determine the correct channel and exact underlying chat text for a message you wish to use as a trigger.

Show Alert Log Button: This displays the window for any alerts that have been triggered. This window can be handy to testing trigger conditions.

Delete Button: Again, pretty self-explanatory, clicking this button deletes the alert definition.

CLI (Command-line Interface) aka "Shell" Commands

delete

Delete the currently-loaded alert.

log (start|stop|show)

Starts, Stops or Displays the GenOut Chat Log window.

save

Save the currently-loaded alert, along with any changes that have been made to it via the UI.

setup

Open the configuration window

trigger

Trigger an alert manually, bypassing any configured Trigger logic. Similar to the "Test" button, but something that can be put into a shortcut, integrated with other plugins, etc.