Thread Tools Display Modes
10/04/23, 01:33 AM   #1
Rex87
Join Date: Oct 2023
Posts: 6
Request - Hide Chat Bubble Icon

hi, I wanna hide this white chat bubble icon, it's part of the controller UI, personally I would just make blank texture and replace it to just hide it this way but sadly it's not as easy, I don't know how to code in Lua to create AddOn that does just that so I'm asking for help, I hope that it's possible to hide this icon permanently because it's really distracting and there are no option in game and in the config file that hides it, personally I like the simplistic Console UI and I prefer it over the PC UI so that's why I'm trying to hide it
Attached Thumbnails
Click image for larger version

Name:	1.jpg
Views:	211
Size:	615.1 KB
ID:	1626  Click image for larger version

Name:	2.jpg
Views:	209
Size:	637.3 KB
ID:	1627  
  Reply With Quote
10/04/23, 06:09 AM   #2
DakJaniels
AddOn Author - Click to view addons
Join Date: Mar 2021
Posts: 31
Originally Posted by Rex87 View Post
hi, I wanna hide this white chat bubble icon, it's part of the controller UI, personally I would just make blank texture and replace it to just hide it this way but sadly it's not as easy, I don't know how to code in Lua to create AddOn that does just that so I'm asking for help, I hope that it's possible to hide this icon permanently because it's really distracting and there are no option in game and in the config file that hides it, personally I like the simplistic Console UI and I prefer it over the PC UI so that's why I'm trying to hide it
Lua Code:
  1. ZO_GamepadTextChatChatBubble:SetAlpha(0)

hmm, doesn't stay if you tab out to another screen.

  Reply With Quote
10/04/23, 08:01 AM   #3
Baertram
Super Moderator
 
Baertram's Avatar
WoWInterface Super Mod
AddOn Author - Click to view addons
Join Date: Mar 2014
Posts: 4,989
You can try

/script RedirectTexture("EsoUI/Art/HUD/Gamepad/gp_HUDNotification_notification.dds", "")

-> Found here: https://github.com/esoui/esoui/blob/...L45C66-L45C123

Or add that line into any other addon's EVENT_ADD_ON_LOADED callback function (without the /script)

But this will make the bubble disappear game wide then, wherever it was used.


Or try this:
Lua Code:
  1. SecurePostHook(GAMEPAD_CHAT_SYSTEM, "Minimize", function()  
  2.     local self = GAMEPAD_CHAT_SYSTEM
  3.         if self.newChatFadeAnim and self.newChatFadeAnim:IsPlaying() then self.newChatFadeAnim:Stop() end
  4.         self.chatBubble:SetAlpha(0)
  5. end)
Should make it invisible as the chat minimizes.


This is the OnChatMaximize code then, which should show it again:
https://github.com/esoui/esoui/blob/...314C58-L314C69



Put that code in any addon's EVENT_ADD_ON_LOADED callback like this:
Lua Code:
  1. local function OnAddonLoaded(event, name)
  2.    if name == "MyAddonName" then
  3.        EVENT_MANAGER:UnregisterForEvent("MyAddonName", EVENT_ADD_ON_LOADED)
  4.  
  5.       SecurePostHook(GAMEPAD_CHAT_SYSTEM, "Minimize", function()  
  6.          local self = GAMEPAD_CHAT_SYSTEM
  7.          if self.newChatFadeAnim and self.newChatFadeAnim:IsPlaying() then self.newChatFadeAnim:Stop() end
  8.          self.chatBubble:SetAlpha(0)
  9.       end)
  10.    end
  11.  
  12.  --Or strip the above code and add the RedirectTexture here to remove the chat bubble texture in total -> ESO game wide!
  13. end
  14. EVENT_MANAGER:RegisterForEvent("MyAddonName", EVENT_ADD_ON_LOADED, OnAddonLoaded)

Last edited by Baertram : 10/04/23 at 08:13 AM.
  Reply With Quote
10/04/23, 06:02 PM   #4
Rex87
Join Date: Oct 2023
Posts: 6
thank you all for the help I had trouble figuring out how to make this work and with help of someone, I got this, it makes the icon completely dissappear but appears again when my companion says something even when subtitles are turned off, it's very random tho, and doesn't go away after that, I don't know why this happens, reloading UI fixes that but will reappear anyway
Code:
deleteIcon={}
deleteIcon.name="GamepadChatIconBegone"
function deleteIcon.begone() 
GAMEPAD_CHAT_SYSTEM.chatBubble:SetAlpha(0)
EVENT_MANAGER:UnregisterForEvent(deleteIcon.name,EVENT_ADD_ON_LOADED)
SecurePostHook(GAMEPAD_CHAT_SYSTEM, "remove", function()
GAMEPAD_CHAT_SYSTEM.chatBubble:SetAlpha(0)
end) 
end
EVENT_MANAGER:RegisterForEvent(deleteIcon.name,EVENT_ADD_ON_LOADED,deleteIcon.begone)
as I said this is just temporary fix still
  Reply With Quote
10/05/23, 06:10 AM   #5
Baertram
Super Moderator
 
Baertram's Avatar
WoWInterface Super Mod
AddOn Author - Click to view addons
Join Date: Mar 2014
Posts: 4,989
I never heard of the function
GAMEPAD_CHAT_SYSTEM, "remove"

nor KEYBOARD_CHAT_SYSTEM, nor the base ZO_ChatSystem does provide that function
So I'm not sure if your hook here ever works "normal".

btw: Better set a local up in front of deleteIcon please, or else you will overwrite other addon's using this variable already.
The name is not unique enough to eb global!
Or rename that to a more unique global variable like GamepadChatIconBegone


Question:
When exactly do you want the bubble to disappear?

Always: Then try my RedirectTexture hack!

Only after chat minimizes and there are no new messages, until new messages come in: Then use my SecurePostHook(GAMEPAD_CHAT_SYSTEM, "Minimize", function() idea.

If you do not want the chat bubble to reappear you need to disable the chat tab options for chat channels like NPC talk.
As gamepad mode does not provide that switch to keyboard mode, right click the most left chat tab, choose preferences and disable the chat channel for NPC talk e.g.
Then switch back to gamepad mode.

It should no longer show you and NPCs text in the chat then, and only messages from zone/say/yell etc. (the channels YOU have configured for that chat tab) will be shown in chat and should raise the bubble to reappear again (if not using the RedirectTexture hack which should it hide always), to show you there are new messages.

Last edited by Baertram : 10/05/23 at 06:17 AM.
  Reply With Quote
10/05/23, 10:47 AM   #6
Rex87
Join Date: Oct 2023
Posts: 6
I tried this and works, it makes it fully hidden even when the chat is visible but even while NPCs text in chat is invisible it will reappear whenever they talk, I can hide it manually by opening the chat and waiting till it hides, is there a way to make it hide all the time? or something that could check if the icon is showing and if it's showing it would hide it automatically without manually opening the chat to hide it? I wanna hide it permanently like RedirectTexture does but the other way creates other issues and many other UI elements become invisible not just the chat bubble icon which is very upsetting
Code:
local function OnAddonLoaded(event, name)
   if name == "GamepadChatIconBegone" then
       EVENT_MANAGER:UnregisterForEvent("GamepadChatIconBegone", EVENT_ADD_ON_LOADED)
 
      SecurePostHook(GAMEPAD_CHAT_SYSTEM, "Minimize", function()  
         local self = GAMEPAD_CHAT_SYSTEM
         if self.newChatFadeAnim and self.newChatFadeAnim:IsPlaying() then self.newChatFadeAnim:Stop() end
         self.chatBubble:SetAlpha(0)
      end)
   end
 

end
EVENT_MANAGER:RegisterForEvent("GamepadChatIconBegone", EVENT_ADD_ON_LOADED, OnAddonLoaded)
  Reply With Quote
10/05/23, 12:50 PM   #7
Baertram
Super Moderator
 
Baertram's Avatar
WoWInterface Super Mod
AddOn Author - Click to view addons
Join Date: Mar 2014
Posts: 4,989
Code:
local function OnAddonLoaded(event, name)
   if name == "GamepadChatIconBegone" then
       EVENT_MANAGER:UnregisterForEvent("GamepadChatIconBegone", EVENT_ADD_ON_LOADED)
 
     RedirectTexture("EsoUI/Art/HUD/Gamepad/gp_HUDNotification_notification.dds", "")
   end
 end
EVENT_MANAGER:RegisterForEvent("GamepadChatIconBegone", EVENT_ADD_ON_LOADED, OnAddonLoaded)
This should make the texture go away for all stuff in the game, so no matetr if it shws or not, it will just be invisible.
If you see a white square now instead we need to find a see-through texture and replace "" above with that name then.

Other UI elements will not get invisible that way as we only replace the 1 texture "EsoUI/Art/HUD/Gamepad/gp_HUDNotification_notification.dds"
And according to esui source code of the game it's ONLY used here, at gamepad and console stuff:


Originally Posted by Rex87 View Post
I tried this and works, it makes it fully hidden even when the chat is visible but even while NPCs text in chat is invisible it will reappear whenever they talk, I can hide it manually by opening the chat and waiting till it hides, is there a way to make it hide all the time? or something that could check if the icon is showing and if it's showing it would hide it automatically without manually opening the chat to hide it? I wanna hide it permanently like RedirectTexture does but the other way creates other issues and many other UI elements become invisible not just the chat bubble icon which is very upsetting
Code:
local function OnAddonLoaded(event, name)
   if name == "GamepadChatIconBegone" then
       EVENT_MANAGER:UnregisterForEvent("GamepadChatIconBegone", EVENT_ADD_ON_LOADED)
 
      SecurePostHook(GAMEPAD_CHAT_SYSTEM, "Minimize", function()  
         local self = GAMEPAD_CHAT_SYSTEM
         if self.newChatFadeAnim and self.newChatFadeAnim:IsPlaying() then self.newChatFadeAnim:Stop() end
         self.chatBubble:SetAlpha(0)
      end)
   end
 

end
EVENT_MANAGER:RegisterForEvent("GamepadChatIconBegone", EVENT_ADD_ON_LOADED, OnAddonLoaded)

Last edited by Baertram : 10/05/23 at 12:53 PM.
  Reply With Quote
10/05/23, 01:10 PM   #8
Rex87
Join Date: Oct 2023
Posts: 6
it works, it's not showing up at all but this creates some issues in other parts of the UI
Code:
local function OnAddonLoaded(event, name)
   if name == "GamepadChatIconBegone" then
       EVENT_MANAGER:UnregisterForEvent("GamepadChatIconBegone", EVENT_ADD_ON_LOADED)
 
     RedirectTexture("EsoUI/Art/HUD/Gamepad/gp_HUDNotification_notification.dds", "")
   end
 end
EVENT_MANAGER:RegisterForEvent("GamepadChatIconBegone", EVENT_ADD_ON_LOADED, OnAddonLoaded)
is there way to just replace this texture with blank texture? maybe this way it will be finally hidden, this shouldn't make other things invisible like that too
Attached Thumbnails
Click image for larger version

Name:	invisible.jpg
Views:	177
Size:	426.6 KB
ID:	1628  
  Reply With Quote
10/05/23, 02:19 PM   #9
Baertram
Super Moderator
 
Baertram's Avatar
WoWInterface Super Mod
AddOn Author - Click to view addons
Join Date: Mar 2014
Posts: 4,989
I'm not sure if this is related to the chat bubble here... Please disable ALL addons except your chat bubble redirect texture.
Does it still look the same?

Cuz the chat bubble is a totally different UI part and another scene than inventory (not connected by any means).

Last edited by Baertram : 10/05/23 at 02:39 PM.
  Reply With Quote
10/05/23, 02:52 PM   #10
Rex87
Join Date: Oct 2023
Posts: 6
just the RedirectTexture, no other mods, still happening, not just the background is missing but also the chat helper line is missing, so I don't know when and where I'm typing in the chat, can't we edit the file that contains the texture and replace it this way? I see that textures are in DDS files, other UI mods have such files but I don't know where the game contains these texture files to edit them
Attached Thumbnails
Click image for larger version

Name:	invisible.jpg
Views:	171
Size:	742.2 KB
ID:	1629  
  Reply With Quote
10/06/23, 02:34 AM   #11
Baertram
Super Moderator
 
Baertram's Avatar
WoWInterface Super Mod
AddOn Author - Click to view addons
Join Date: Mar 2014
Posts: 4,989
I'll see if I can find a see-through .dds somewhere in esoui default textures so the size remains the same.
Edit:
Found one

RedirectTexture("EsoUI/Art/HUD/Gamepad/gp_HUDNotification_notification.dds", "/esoui/art/icons/heraldrycrests_misc_blank_01.dds")

Last edited by Baertram : 10/06/23 at 02:43 AM.
  Reply With Quote
10/08/23, 07:49 PM   #12
Rex87
Join Date: Oct 2023
Posts: 6
thank you, this time this actually worked, RedirectTexture this time didn't made other elements invisible like before, decided to leave rest of the code to make sure that it will stay invisible even if it's not really needed, I hope that future requests gonna be easier and not as time consuming as this was
Code:
local function OnAddonLoaded(event, name)
   if name == "GamepadChatIconBegone" then
       EVENT_MANAGER:UnregisterForEvent("GamepadChatIconBegone", EVENT_ADD_ON_LOADED)
 
      SecurePostHook(GAMEPAD_CHAT_SYSTEM, "Minimize", function()  
         local self = GAMEPAD_CHAT_SYSTEM
         if self.newChatFadeAnim and self.newChatFadeAnim:IsPlaying() then self.newChatFadeAnim:Stop() end
         self.chatBubble:SetAlpha(0)
      end)
   end
 
RedirectTexture("EsoUI/Art/HUD/Gamepad/gp_HUDNotification_notification.dds", "/esoui/art/icons/heraldrycrests_misc_blank_01.dds")
end
EVENT_MANAGER:RegisterForEvent("GamepadChatIconBegone", EVENT_ADD_ON_LOADED, OnAddonLoaded)
Originally Posted by Baertram View Post
I'll see if I can find a see-through .dds somewhere in esoui default textures so the size remains the same.
Edit:
Found one

RedirectTexture("EsoUI/Art/HUD/Gamepad/gp_HUDNotification_notification.dds", "/esoui/art/icons/heraldrycrests_misc_blank_01.dds")
  Reply With Quote
10/09/23, 02:14 AM   #13
Baertram
Super Moderator
 
Baertram's Avatar
WoWInterface Super Mod
AddOn Author - Click to view addons
Join Date: Mar 2014
Posts: 4,989
You are welcome, glad it worked now

btw, I'd remove these extra code lines by commenting them:

Lua Code:
  1. --[[
  2. SecurePostHook(GAMEPAD_CHAT_SYSTEM, "Minimize", function()  
  3.          local self = GAMEPAD_CHAT_SYSTEM
  4.          if self.newChatFadeAnim and self.newChatFadeAnim:IsPlaying() then self.newChatFadeAnim:Stop() end
  5.          self.chatBubble:SetAlpha(0)
  6.       end)
  7. ]]

That way you still got them in and can spy them but they are not used (they are simply not needed and every non needed but run code slows down the game, and might create problems, so better strip it).
  Reply With Quote

ESOUI » AddOns » AddOn Search/Requests » Request - Hide Chat Bubble Icon


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off