A few asks for the addon community - ESOUI
Thread Tools Display Modes
10/16/21, 09:12 PM   #1
HSBS_User's Avatar
Join Date: Feb 2021
Posts: 7
A few asks for the addon community

I have three specific changes I'd like to find a way to implement:

1.) No keybind text/move keybind text.
Just what it says, looking for a way to hide the bindings and scoot the ability bars down flush with the bottom of the screen. I know fancy action bar has this functionality but from what I gather it *always* displays both bars, I like the option of hiding the second bar.
2.) Translucent map upon char movement.
In Cyrodiil for example, I often check the map while riding, after countless deaths by falling/ incurring the wrath of goblins/ bouldering incidents- I'd kill for a way to make the map 50-80% opacity *while* moving. Still totally new to lua and eso's triggers etc... so I'm unsure if there is even such a function like: ischaractermoving or similar
3.) Color self differently in guild roster.
Having removed myself from guild(s) by attempting to teleport to another player in the same zone- said player being *me* and the resultant dropdown menu providing the option "leave guild" I need a way to change the color of my own name in the guild roster. This would resolve any unintended guild departures.

Lastly I have a more general question about better font clarity in eso. From what I've been told there are pretty slim options when it comes to modifying ingame font aesthetics. That being said, has anyone met with success getting crisp outlines on their fonts? Problematically, when looting any number of items with a bright white(ish) icon such as cotton the relevant item count text is nearly lost against the white backdrop of the icon for example. In other addons I've opted for an outline or thick shadow. However, in eso the native outline seems to add quite a bit of spread to the length of text. So- the goal would be to have a fixed width outline, even a monochrome like effect. To what degree is this possible in eso? Are there any resources that explain how fonts work in eso?
  Reply With Quote
10/17/21, 06:19 AM   #2
Super Moderator
Baertram's Avatar
WoWInterface Super Mod
AddOn Author - Click to view addons
Join Date: Mar 2014
Posts: 3,753
As your questions are related to lua coding, and not addons that fullfill your requests, I have moved the thread to the lua/XML forum.

The controls showing the bottom keybinds are called the keybind strip: https://github.com/esoui/esoui/blob/...ybindstrip.lua
The class used to create it is named ZO_KeybindStrip and is assigned to an object KEYBIND_STRIP here: https://github.com/esoui/esoui/blob/...dstrip.lua#L60

If fancy action bars provides this you should learn the code used there and chaneg it/adopt it to not always show both bars, leave it just like vanilla code does and only change they keybind strip at the bottom. You would need to find out which code relates to the keybind strip. So search in the code if you are able to see/find it KEYBIND_STRIP or ZO_KeybindStrip changes and try to understand what it does, and how it does it. Come back with more detailed questions if you get stuck there, and we will try to help.

The given API functions you could search for "does this IsCharMoving exist" can be found here:
Check the linked API documentation txt files and download the one of the current APIVersion at the live server (or PTS if you code there).
btw: most functions are not char or account related but "unit" related. A unit is either you, a group member or an enemy NPC etc.
So DoesUni* or IsUnit* functions often apply, where "player" is the unitTag for your own character and groupN (where N is a nuber) is either you or a group member e.g.
And there also exists the function
* IsPlayerMoving()
** _Returns:_ *bool* _moving_

But I think there is no event given which fires as you start to move. You'd have to register an update function checking every n seconds if you are moving, once you have opened the map, and unregister again once the map is closed.
You can use EVENT_MANAGER:RegisterForUpdate for this e.g. See the wiki: https://wiki.esoui.com/Running_LUA-C...isterForUpdate
If you want to know if the map is shown you could either use the map's scene "worldMap" (you can get the scene's pointer via SCENE_MANAGER:GetScene("worldMap") ) (see function ZO_WorldMap_ShowWorldMap as reference in esoui/ingame/map/worldmap.lua) and register a callback to the StateChanged like described here: https://wiki.esoui.com/Scene_Manager:_On_scene_change
Or the fragment WORLD_MAP_FRAGMENT e.g. with the same StateChange callback: https://wiki.esoui.com/Fragments_in_...t_state_change

Maybe LibGuildRoster can help here, not sure. Have a look over there.
Or check the guild roster esoui lua code at github:
Search for something like "isLocalPlayer" or "player" or "own" or similar, maybe it is described where the own row is build.
I think it was in the data table of each guild roster row, and the entry was something like "isLocalPlayer"
Edit - Found it: https://github.com/esoui/esoui/blob/...hared.lua#L185
So the BuodMasterList function will create the list of the object GUILD_ROSTER_MANAGER
You might be able to hook into this, or the row function creating the output visual list of that row then somehow:
ZO_KeyboardGuildRosterManager:SetupRow(control, data)
You'd need to hook into:
GUILD_ROSTER_KEYBOARD, function SetupRow(control, data)
SecurePostHook(GUILD_ROSTER_KEYBOARD, "SetupRow", function(control, data)
if data.isLocalPlayer then
--change control:SetColor or similar to your desired colord
--You can inspect the control via merTorchbug and zgoo if you make it global like myAddon = {} myAddon._rowControl= control

Fonts in ESO are explained here (but not all aspects you have asked for, I guess. I never used more than explained here, maybe someone else can answer your question about the monochrome font style etc.):

Last edited by Baertram : 10/17/21 at 06:42 AM.
  Reply With Quote

ESOUI » Developer Discussions » Lua/XML Help » A few asks for the addon community

Thread Tools
Display Modes

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