Download
(14 Kb)
Download
Updated: 12/19/22 11:53 AM
Pictures
File Info
Compatibility:
Firesong (8.2.5)
Lost Depths (8.1.5)
High Isle (8.0.0)
Ascending Tide (7.3.5)
Deadlands (7.2.5)
Waking Flame (7.1.5)
Blackwood (7.0.5)
Greymoor (6.0.5)
Updated:12/19/22 11:53 AM
Created:04/15/22 09:38 AM
Monthly downloads:98
Total downloads:4,800
Favorites:7
MD5:
Categories:Raid Mods, Combat Mods, Game Controller
AOEHelper
Version: 1.2.2
by: m00nyONE [More]
AOEHelper



Ever had the Problem that you can not see an AOE on the floor because the environment and/or ground colors change from trial to trial? This addon will help you!

It allows you to customize the colors of enemy and friendly AOEs "differently for each trial, dungeon and boss", as well as their brightness values.
You can save these and they will be loaded automatically when you enter the trial/dungeon.


Video Tutorial

You can find the source code here https://github.com/m00nyONE/AOEHelper

Any help with translations to other languages is very appreciated
## 1.2.2
- bump api to 101036 101035

## 1.2.1
- bump api to 101035 101034

## 1.2.0
- rearrange some buttons to make it more clear what they do

## 1.1.1
- fixing some glitches

## 1.1.0
- allow changing colors for every boss individually

## 1.0.1
- internal code refactoring

## 1.0.0
- adding translations for english and german
Optional Files (0)


Archived Files (5)
File Name
Version
Size
Uploader
Date
1.2.1
14kB
m00nyONE
10/28/22 03:44 PM
1.2.0
14kB
m00nyONE
04/18/22 06:10 PM
1.1.0
14kB
m00nyONE
04/17/22 08:50 PM
1.0.0
8kB
m00nyONE
04/16/22 01:13 PM
0.9.1
7kB
04/15/22 09:38 AM


Post A Reply Comment Options
Unread 12/04/23, 05:07 AM  
SlippyCheeze
AddOn Author - Click to view AddOns

Forum posts: 53
File comments: 272
Uploads: 1
Normally I'm not a big fan of addons messing with the ZOS game settings, but I spent a long time trying to work out what I was doing wrong that this didn't work.

Turns out that the "custom color" option for AOE needs to be "on", and I had it "off" in settings.

Since the entire purpose of this addon is to manage those colors, I think it'd be appropriate to also manage the
Lua Code:
  1. COMBAT_SETTING_MONSTER_TELLS_ENABLED
setting: force it on, if the color is being applied.
Report comment to moderator  
Reply With Quote
Unread 04/17/22, 08:52 PM  
m00nyONE
 
m00nyONE's Avatar
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 48
Uploads: 11
Originally Posted by DohNotAgain
Awesome Idea.
This is something I have been trying to find for a while.

I'd love to use this in any encounter, not just trials.
I often find myself taking damage from a ground debuff from a WB or whatever.
Since I don't see it, I take damage and can't see the shortest distance to get out.

And clearly seeing ground buffs, also, would help me find best position to stand.

I can't log in right now, but will try this later.
Done in Update 1.1.0 ;-)
Report comment to moderator  
Reply With Quote
Unread 04/17/22, 08:38 PM  
m00nyONE
 
m00nyONE's Avatar
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 48
Uploads: 11
Originally Posted by Baertram
Nice idea, thanks for that! This will come in handy

About boss dependent colors: Most bosses are nt providing a uniqueID so you can only identify them by dungeon/zoneId + their name :-(
There was a library LibBossFight or LibBoss* which was providing some info about the bosses so you do not have to multi-translate the boss names again and again, but I think it is discontinued currently and missing a lot of the newer bosses.

Some trials got other zoneIds inside the trials, so you are able to see in which part of the trial you are (and what boss it may be). But not all provide that info.

Maybe the name of the current map texture is helping here. The texture's .dds filename is not language dependent and might show you where you are in some dungeons/trials. But depening on the size of a mpa and the number of boses on the same map it would neither help you here.


From LibZones:
Lua Code:
  1. --Get the current map's zoneIndex and via the index get the zoneId, the parent zoneId, and return them
  2. --+ the current zone's index and parent zone index
  3. --> Returns: number currentZoneId, number currentZoneParentId, number currentZoneIndex, number currentZoneParentIndex, number mapId, number mapIndex
  4. function lib:GetCurrentZoneIds()
  5.     local currentZoneIndex = GetCurrentMapZoneIndex()
  6.     local currentZoneId = GetZoneId(currentZoneIndex)
  7.     local currentZoneParentId = GetParentZoneId(currentZoneId)
  8.     local currentZoneParentIndex = GetZoneIndex(currentZoneParentId)
  9.     local mapId = GetCurrentMapId()
  10.     local mapIndex = GetCurrentMapIndex()
  11.     return currentZoneId, currentZoneParentId, currentZoneIndex, currentZoneParentIndex, mapId, mapIndex
  12. end
  13.  
  14. --Get the zone and subZone string from the given map's tile texture (or the current's map's tile texture name)
  15. --> Returns: string zoneName, string subZoneName, string mapTileTextureNameLowerCase, string mapTileTextureNameUnchangedComplete
  16. function lib:GetZoneNameByMapTexture(mapTileTextureName, patternToUse, chatOutput)
  17.     chatOutput = chatOutput or false
  18. --[[
  19.     Possible texture names are e.g.
  20.     /art/maps/southernelsweyr/els_dragonguard_island05_base_8.dds
  21.     /art/maps/murkmire/tsofeercavern01_1.dds
  22.     /art/maps/housing/blackreachcrypts.base_0.dds
  23.     /art/maps/housing/blackreachcrypts.base_1.dds
  24.     Art/maps/skyrim/blackreach_base_0.dds
  25.     Textures/maps/summerset/alinor_base.dds
  26. ]]
  27.     mapTileTextureName = mapTileTextureName or GetMapTileTexture()
  28.     if not mapTileTextureName or mapTileTextureName == "" then return end
  29.     local mapTileTextureNameLower = mapTileTextureName:lower()
  30.     mapTileTextureNameLower = mapTileTextureNameLower:gsub("ui_map_", "")
  31.     --mapTileTextureNameLower = mapTileTextureNameLower:gsub(".base", "_base")
  32.     --mapTileTextureNameLower = mapTileTextureNameLower:gsub("[_+%d]*%.dds$", "") -> Will remove the 01_1 at the end of tsofeercavern01_1
  33.     mapTileTextureNameLower = mapTileTextureNameLower:gsub("%.dds$", "")
  34.     mapTileTextureNameLower = mapTileTextureNameLower:gsub("_%d*$", "")
  35.     local regexData = {}
  36.     if not patternToUse or patternToUse == "" then patternToUse = "([%/]?.*%/maps%/)(%w+)%/(.*)" end
  37.     regexData = {mapTileTextureNameLower:find(patternToUse)} --maps/([%w%-]+/[%w%-]+[%._][%w%-]+(_%d)?)
  38.     local zoneName, subzoneName = regexData[4], regexData[5]
  39.     if chatOutput == true then
  40.         d("["..libraryName.."]GetZoneNameByMapTexture\nzone: " ..tostring(zoneName) .. ", subZone: " .. tostring(subzoneName) .. "\nmapTileTexture: " .. tostring(mapTileTextureNameLower))
  41.     end
  42.     return zoneName, subzoneName, mapTileTextureNameLower, mapTileTextureName
  43. end

Maybe these Ids and indices help you. Attention: better use the IDs to identify stuff not the indices! IDs should not change.



Originally Posted by m00nyONE
Originally Posted by Baertram
What exactly is the difference to the vanilla game settings to color the aoe and friendly (heal) fields on the ground in the normal game settings?

Edit:
Does it allow to change the AOE colors depending on the trials/dungeons one is in?
Yes, it excatly allowes you to do this. So for example in Icereach on the final boss the ground is very snowy. If you have trouble too see your AOE's there, you can change it and save it. it wil be automatically loaded for you when you enter this dungeon again.

Thanks for the Info :-)

i did it the other way around a few hours ago ;-) Just need some testing before uploading. i do not like tinkering with IDs & indices because it's a lot of maintainance. I like the idea that even when i should stop playing ESO, another mod author can pick up my code with ease and start continuing my work. I used the EVENT_BOSSES_CHANGED Event to listen for changes and just loop over the unitTags of the bosses when that happends to check if a boss is really there. If so, the user can save a setting while in range of the boss & its saved in a table. The name of the boss is the key of the dictionary and the colors are the values. easy as that ;-) it maintains itself

EDIT: testing done, works like a charm
Last edited by m00nyONE : 04/17/22 at 08:41 PM.
Report comment to moderator  
Reply With Quote
Unread 04/17/22, 08:31 PM  
m00nyONE
 
m00nyONE's Avatar
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 48
Uploads: 11
Originally Posted by Phinix
@m00nyONE - This may not help, but would it not be possible to set a default global override for "hostile AOE" and "friendly AOE" and let users configure that, then if they have settings for a specific encounter also have those override the default?

You could have a "use global default options" toggle that enabled these settings for everything, but only if the users enabled it. Specific dungeon/trial settings would still override this. Might be easier than trying to do specific configuration for tons of stuff.

Cool addon idea BTW!

this is what this addon does. the "global default" is saved when the player first starts the addon & everything that is not defined wil use those values
Report comment to moderator  
Reply With Quote
Unread 04/17/22, 07:41 AM  
DohNotAgain

Forum posts: 1
File comments: 110
Uploads: 0
Originally Posted by m00nyONE
Originally Posted by DohNotAgain
I have watched videos where the buff and debuff ground colors are bright and quite visible; almost opaque.
They are solid circles, not translucent rings.
Of course there are some very obvious area of affect visuals, but others are quite hard to see for me.
What I see in game are nowhere near as solid, bright, and visible as I've seen in some videos.
My vanilla game settings are nowhere near as visible.
I think I've seen that very visible circle in some Hack The Minotaur videos...maybe.

Shoot.
I didn't even know the snake adds at one WB had area debuff rings until I saw them in a video.
As the snakes moved toward people you could see the bright ring of debuff moving with them.
Never saw that using game settings.
I have grass and such off always.
I wish I knew what addon does that.

I am hoping this addon will be able to do that effect.
Small, simple addon that changes the visibility.
it is not an addon, you just need to turn up your brightness values to 50 in the base game. With this addon you can use even higher vales to make the circles truely solid. But keep in mind that you can not see AOEs in AOEs very well when the cirles are solid.
/facepalm
Sometimes the obvious is the hardest thing to see.

Thank you.
Report comment to moderator  
Reply With Quote
Unread 04/17/22, 06:14 AM  
Baertram
Super Moderator
 
Baertram's Avatar
ESOUI Super Moderator
AddOn Author - Click to view AddOns

Forum posts: 4912
File comments: 5990
Uploads: 78
Nice idea, thanks for that! This will come in handy

About boss dependent colors: Most bosses are nt providing a uniqueID so you can only identify them by dungeon/zoneId + their name :-(
There was a library LibBossFight or LibBoss* which was providing some info about the bosses so you do not have to multi-translate the boss names again and again, but I think it is discontinued currently and missing a lot of the newer bosses.

Some trials got other zoneIds inside the trials, so you are able to see in which part of the trial you are (and what boss it may be). But not all provide that info.

Maybe the name of the current map texture is helping here. The texture's .dds filename is not language dependent and might show you where you are in some dungeons/trials. But depening on the size of a mpa and the number of boses on the same map it would neither help you here.


From LibZones:
Lua Code:
  1. --Get the current map's zoneIndex and via the index get the zoneId, the parent zoneId, and return them
  2. --+ the current zone's index and parent zone index
  3. --> Returns: number currentZoneId, number currentZoneParentId, number currentZoneIndex, number currentZoneParentIndex, number mapId, number mapIndex
  4. function lib:GetCurrentZoneIds()
  5.     local currentZoneIndex = GetCurrentMapZoneIndex()
  6.     local currentZoneId = GetZoneId(currentZoneIndex)
  7.     local currentZoneParentId = GetParentZoneId(currentZoneId)
  8.     local currentZoneParentIndex = GetZoneIndex(currentZoneParentId)
  9.     local mapId = GetCurrentMapId()
  10.     local mapIndex = GetCurrentMapIndex()
  11.     return currentZoneId, currentZoneParentId, currentZoneIndex, currentZoneParentIndex, mapId, mapIndex
  12. end
  13.  
  14. --Get the zone and subZone string from the given map's tile texture (or the current's map's tile texture name)
  15. --> Returns: string zoneName, string subZoneName, string mapTileTextureNameLowerCase, string mapTileTextureNameUnchangedComplete
  16. function lib:GetZoneNameByMapTexture(mapTileTextureName, patternToUse, chatOutput)
  17.     chatOutput = chatOutput or false
  18. --[[
  19.     Possible texture names are e.g.
  20.     /art/maps/southernelsweyr/els_dragonguard_island05_base_8.dds
  21.     /art/maps/murkmire/tsofeercavern01_1.dds
  22.     /art/maps/housing/blackreachcrypts.base_0.dds
  23.     /art/maps/housing/blackreachcrypts.base_1.dds
  24.     Art/maps/skyrim/blackreach_base_0.dds
  25.     Textures/maps/summerset/alinor_base.dds
  26. ]]
  27.     mapTileTextureName = mapTileTextureName or GetMapTileTexture()
  28.     if not mapTileTextureName or mapTileTextureName == "" then return end
  29.     local mapTileTextureNameLower = mapTileTextureName:lower()
  30.     mapTileTextureNameLower = mapTileTextureNameLower:gsub("ui_map_", "")
  31.     --mapTileTextureNameLower = mapTileTextureNameLower:gsub(".base", "_base")
  32.     --mapTileTextureNameLower = mapTileTextureNameLower:gsub("[_+%d]*%.dds$", "") -> Will remove the 01_1 at the end of tsofeercavern01_1
  33.     mapTileTextureNameLower = mapTileTextureNameLower:gsub("%.dds$", "")
  34.     mapTileTextureNameLower = mapTileTextureNameLower:gsub("_%d*$", "")
  35.     local regexData = {}
  36.     if not patternToUse or patternToUse == "" then patternToUse = "([%/]?.*%/maps%/)(%w+)%/(.*)" end
  37.     regexData = {mapTileTextureNameLower:find(patternToUse)} --maps/([%w%-]+/[%w%-]+[%._][%w%-]+(_%d)?)
  38.     local zoneName, subzoneName = regexData[4], regexData[5]
  39.     if chatOutput == true then
  40.         d("["..libraryName.."]GetZoneNameByMapTexture\nzone: " ..tostring(zoneName) .. ", subZone: " .. tostring(subzoneName) .. "\nmapTileTexture: " .. tostring(mapTileTextureNameLower))
  41.     end
  42.     return zoneName, subzoneName, mapTileTextureNameLower, mapTileTextureName
  43. end

Maybe these Ids and indices help you. Attention: better use the IDs to identify stuff not the indices! IDs should not change.



Originally Posted by m00nyONE
Originally Posted by Baertram
What exactly is the difference to the vanilla game settings to color the aoe and friendly (heal) fields on the ground in the normal game settings?

Edit:
Does it allow to change the AOE colors depending on the trials/dungeons one is in?
Yes, it excatly allowes you to do this. So for example in Icereach on the final boss the ground is very snowy. If you have trouble too see your AOE's there, you can change it and save it. it wil be automatically loaded for you when you enter this dungeon again.
Last edited by Baertram : 04/17/22 at 06:21 AM.
Report comment to moderator  
Reply With Quote
Unread 04/17/22, 04:26 AM  
Phinix
 
Phinix's Avatar
AddOn Author - Click to view AddOns

Forum posts: 186
File comments: 1779
Uploads: 32
@m00nyONE - This may not help, but would it not be possible to set a default global override for "hostile AOE" and "friendly AOE" and let users configure that, then if they have settings for a specific encounter also have those override the default?

You could have a "use global default options" toggle that enabled these settings for everything, but only if the users enabled it. Specific dungeon/trial settings would still override this. Might be easier than trying to do specific configuration for tons of stuff.

Cool addon idea BTW!
Last edited by Phinix : 04/17/22 at 04:27 AM.
Report comment to moderator  
Reply With Quote
Unread 04/17/22, 03:15 AM  
m00nyONE
 
m00nyONE's Avatar
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 48
Uploads: 11
Originally Posted by Akopian Atrebates
I would like to use this in any encounter as well.

working on that but its very hard. instead of saving colors for each zone, you have to load colors for each boss in the game individually. i can think about maybe adding an extra button to save colors for the current boss you are fighting. But this is not as easy as its sounds I'll look into it and try to figure out if i can do it
Report comment to moderator  
Reply With Quote
Unread 04/17/22, 03:12 AM  
m00nyONE
 
m00nyONE's Avatar
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 48
Uploads: 11
Originally Posted by DohNotAgain
I have watched videos where the buff and debuff ground colors are bright and quite visible; almost opaque.
They are solid circles, not translucent rings.
Of course there are some very obvious area of affect visuals, but others are quite hard to see for me.
What I see in game are nowhere near as solid, bright, and visible as I've seen in some videos.
My vanilla game settings are nowhere near as visible.
I think I've seen that very visible circle in some Hack The Minotaur videos...maybe.

Shoot.
I didn't even know the snake adds at one WB had area debuff rings until I saw them in a video.
As the snakes moved toward people you could see the bright ring of debuff moving with them.
Never saw that using game settings.
I have grass and such off always.
I wish I knew what addon does that.

I am hoping this addon will be able to do that effect.
Small, simple addon that changes the visibility.
it is not an addon, you just need to turn up your brightness values to 50 in the base game. With this addon you can use even higher vales to make the circles truely solid. But keep in mind that you can not see AOEs in AOEs very well when the cirles are solid.
Report comment to moderator  
Reply With Quote
Unread 04/17/22, 03:09 AM  
m00nyONE
 
m00nyONE's Avatar
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 48
Uploads: 11
Originally Posted by Baertram
What exactly is the difference to the vanilla game settings to color the aoe and friendly (heal) fields on the ground in the normal game settings?

Edit:
Does it allow to change the AOE colors depending on the trials/dungeons one is in?
Yes, it excatly allowes you to do this. So for example in Icereach on the final boss the ground is very snowy. If you have trouble too see your AOE's there, you can change it and save it. it wil be automatically loaded for you when you enter this dungeon again.
Report comment to moderator  
Reply With Quote
Unread 04/16/22, 03:55 PM  
DohNotAgain

Forum posts: 1
File comments: 110
Uploads: 0
I have watched videos where the buff and debuff ground colors are bright and quite visible; almost opaque.
They are solid circles, not translucent rings.
Of course there are some very obvious area of affect visuals, but others are quite hard to see for me.
What I see in game are nowhere near as solid, bright, and visible as I've seen in some videos.
My vanilla game settings are nowhere near as visible.
I think I've seen that very visible circle in some Hack The Minotaur videos...maybe.

Shoot.
I didn't even know the snake adds at one WB had area debuff rings until I saw them in a video.
As the snakes moved toward people you could see the bright ring of debuff moving with them.
Never saw that using game settings.
I have grass and such off always.
I wish I knew what addon does that.

I am hoping this addon will be able to do that effect.
Small, simple addon that changes the visibility.
Report comment to moderator  
Reply With Quote
Unread 04/16/22, 03:16 AM  
Baertram
Super Moderator
 
Baertram's Avatar
ESOUI Super Moderator
AddOn Author - Click to view AddOns

Forum posts: 4912
File comments: 5990
Uploads: 78
What exactly is the difference to the vanilla game settings to color the aoe and friendly (heal) fields on the ground in the normal game settings?

Edit:
Does it allow to change the AOE colors depending on the trials/dungeons one is in?
Last edited by Baertram : 04/16/22 at 01:34 PM.
Report comment to moderator  
Reply With Quote
Unread 04/15/22, 06:33 PM  
Akopian Atrebates

Forum posts: 9
File comments: 230
Uploads: 0
I would like to use this in any encounter as well.
Report comment to moderator  
Reply With Quote
Unread 04/15/22, 10:47 AM  
DohNotAgain

Forum posts: 1
File comments: 110
Uploads: 0
Awesome Idea.
This is something I have been trying to find for a while.

I'd love to use this in any encounter, not just trials.
I often find myself taking damage from a ground debuff from a WB or whatever.
Since I don't see it, I take damage and can't see the shortest distance to get out.

And clearly seeing ground buffs, also, would help me find best position to stand.

I can't log in right now, but will try this later.
Last edited by DohNotAgain : 04/15/22 at 10:48 AM.
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: