Skip to content

Shows ingame text notification on configurable events.

Notifications You must be signed in to change notification settings

tera-toolbox-mods/battle-notify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

battle-notify

A TERA Toolbox module to show ingame text notifications on configurable in-game events. Original mod by wuaw (https://github.com/wuaw/battle-notify).

Preview

Click me to view a preview of a battle-notify event. (Boss enraged)

Configuration

The config folder has all the files necessary to customize the events that are shown.

Styling options

The file ./config/common_styling.js contains the default styling options that will be prepended to each event.

These options may be overridden, per event, by using style tags in the message field of the event.

This example shows the default style tags:

"{chat}{alert}{red}"

Notification Types

  • {chat} Display a message via the "Warning" chat channel.
  • {alert} Display a message in the center of the screen.
  • {notice} Display a message in the center of the screen, with a sound. (This option uses the party notice chat channel, but please note that the notice will only be visible on your client)

Colors

You can specify colors via style tags.

colors preview

Here is an image showing the preset color tags.

You can:

  • Use preset colors. {red}
  • Use custom hex codes. {#ff0000}
  • Use multiple color tags in the same message. {red}this text is red {blue}this text is blue

Abnormality Events

This is an example of an abnormality event:

	// Enrage Expiring, notify at 12 and 6 seconds remaining
,	{
		type: 'expiring',
		target: 'MyBoss',
		abnormalities: 8888888,
		message: 'Enrage {duration}',
		time_remaining: [12, 6]
	}

type

The type field can be any of the following (case-insensitive):

  • 'Added' An abnormality was added to the target.
  • 'AddedOrRefreshed' An abnormality was added, or refreshed on the target.
  • 'Refreshed' An abnormality was refreshed on the target.
    • Both Refreshed types have extra arguments: required_stacks (Default: 1)
    • Specifying required_stacks of 5 would mean that the module only notifies you once the abnormality is refreshed with stacks of 5 or higher. This field only takes an integer as an argument.
  • 'Expiring' An abnormality is expiring on the target.
    • This type has extra arguments: time_remaining (Default: 6)
    • Specifying a time_remaining of 6 would mean that when 6 seconds are left on the buff or debuff, the notification for this event is shown.
    • Specifying a time_remaining of [6, 12], in an array, works in a similar manner but for both 6 and 12 seconds. There is no limit on how many integers you can specify.
  • 'Removed' An abnormality was removed from the target.
  • 'Missing' All of the specified abnormalities are missing from the target.
  • 'MissingDuringCombat' Similar to Missing, but only triggers when you are in combat.
    • Both Missing types have extra arguments: rewarn_timeout (Default: 5)
    • Specifying a rewarn_timeout of 5 would mean that you are notified every 5 seconds while the conditions for the event are met. This prevents spam. This field only takes an integer as an argument.

target

The target field can be any of the following (case-insensitive):

  • 'Self' Your character.
  • 'MyBoss' The boss that you are attacking.
  • 'Party' Any party member, excluding yourself.
  • 'PartyIncludingSelf' Any party member, including yourself.

abnormalities

The abnormalities field specifies the ID of the buff or debuff (known in the game as an abnormality) that you want to track.

You can find a list of buffs and debuffs in the hotdot file for your region in the TeraDpsMeterData repository. Here is a link to the list of abnormalities for NA region. The leftmost column indicates the abnormality ID.

You can specify multiple abnormalities in an array [11111, 22222] or a single abnormality on it's own 11111.

Since the game does not normally have an abnormality ID for enrage, it is hard-coded in the module as ID 8888888. The module estimates how long the entity should stay enraged for, and when the next enrage should be, using the generally known 36-second rule. This is not accurate for all bosses, however, so be warned should you encounter some inaccuracies.

message

The message field specifies the message to be shown on the in-game notification when the event triggers. It should be a string.

You can use the following text in your string and the module will replace it with the relevant information:

  • {duration} Display the remaining duration of the abnormality. Will not work with 'Missing' or 'Removed' type events. (Displays in seconds, e.g. 36s)
  • {stacks} Display the number of stacks that the abnormality has on the target. (Displays an integer, e.g. 6)
  • {name} The in-game name of the target that was specified.
  • {nextEnrage} The HP percentage that the target is expected to enrage at next. Only works with bosses. See note above in the abnormalities section about inaccuracies of enrage prediction. (Displays a percentage, e.g. 55%)
  • {icon} The icon of the abnormality in question. (Note that Enrage does not have an icon by itself, so I am using focused niveot icon instead)

Argument fields

Extra arguments should be supplied for some event types. You can find details about them in the type section of this readme.

Cooldown Events

Skill cooldown events should only be used in class-specific config files (i.e. anything but config/common.js), to avoid conflicts skill IDs between classes.

Item cooldown events may be used in any config file.

This is an example of a cooldown event:

	// Fire Avalanche is coming off cooldown in 10 seconds
,	{
		type: 'Expiring',
		skills: 80100,
		message: '{icon} {duration}',
		time_remaining: 10
	}

This is an example of a skill reset event:

	// Blade Draw Reset
,	{
		type: 'Reset',
		skills: [290100, 370100], // normal & deadly gamble version of blade draw
		message: '{icon} Reset'
	}

type

The type field for a cooldown event can be any of the following:

  • 'Expiring' A cooldown is expiring in a specified amount of time.
  • 'ExpiringDuringCombat' As above, plus you are in combat.
  • 'ExpiringDuringEnrage' As above, plus the boss is enraged.
    • All of the above 'Expiring' type events have extra arguments: time_remaining (Default: 6)
    • A time_remaining of 5 would mean that you are notified when 5 seconds are left on the cooldown of the skill or item.
    • You can specify multiple values in an array [5, 10] to be notified at multiple times, 5 and 10 seconds in this case.
  • 'Ready' The item or skill in question is off cooldown.
  • 'ReadyDuringCombat' As above, plus you are in combat.
  • 'ReadyDuringEnrage' As above, plus the boss is enraged.
    • All of the above 'Ready' type events have extra arguments: rewarn_timeout (Default: 5)
    • A rewarn_timeout of 5 would mean that you are notified every 5 seconds while the conditions for the event are met. This prevents spam.
  • 'Reset' The skill's cooldown was reset by a glyph.

Please note! Ready type events will also be triggered by skill resets. There should be no cases in which you need a Ready event and a Reset event for the same skill. Should you configure it as such, you would be notified twice when a skill reset happens.

skills

The skills field for a skill reset event specifies the skill IDs that you would like to track.

You can find a list of skills in the skills file for your region in the TeraDpsMeterData repository. Here is a link to the list of skills for NA region. The leftmost column indicates the skill ID.

You can specify a single skill ID 290100 or multiple skill IDs in an array [290100, 370100].

Skills trigger an event by their respective group, rather than the raw skill ID that you supply. So, 290100 would hook group 29. This is done so that you do not need to supply the skill ID for each level of the skill. However, sometimes a skill has a different group in certain conditions (See warrior blade draw with & without deadly gamble buff, or slayer OHS with ICB). In these cases you must provide the base skill ID and the buffed skill ID, as shown above for warrior's blade draw.

items

The items field specifies the item ID(s) that you want to track.

You can find a list of item IDs at this website, under Database -> Items: TeraLore (note: You should not use this site to get skill IDs. Only use this site for item IDs).

You can specify a single item ID 98267 or multiple item IDs in an array [98267, 98260].

You may specify items and skills under the same event, but they must still be separated by their respective types.

	skills: 80100,
	items: [98267, 98260]

When you specify multiple skills, items, or both, they will be processed individually. This means that the script will not wait for all of the skills/items to meet the conditions that you specify, it will check if each of them meets the condition individually and notify you as such.

message

The message field specifies the message to be shown on the in-game notification when the event triggers. It should be a string.

You can use the following text in your string and the module will replace it with the relevant information:

  • {duration} Display the time remaining on the cooldown, in seconds. (e.g. 5s)
  • {icon} Display the icon of the skill or item in question.

Planned Features

  • Boss mechanic events (e.g. P3 Vergos debuffs)
  • In-game commands (on, off, ...)

About

Shows ingame text notification on configurable events.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published