|Go to Page...|
|Thread Tools||Display Modes|
|05/19/20, 09:54 AM||#1|
HowTo: AddOn dependencies/Libs in Subfolder/Removal of LibStub
Dependencies (e.g. libraries) of AddOns
Dependencies are other AddOns or libraries, which must be enabled in-game in order to let your addon in question work properly.
Libraries are a special kind of AddOn. They are re-usable code which can be installed e.g. once so that multiple AddOns are able to benefit from it (e.g. zone information, quest information, item sets, …).
The in-game AddOn manager is a tool provided by the game developers to let you enable/disable the AddOns of your choice.
It lists the addon in a scrollable list, sorted by their name alphabetically.
In the in-game AddOn manager you are able to see the AddOns and the libraries in 2 separated sections.
At the top there are the AddOns (1, see 1st screenshot below),
and at the bottom the libraries, below the headline “Libraries” (3, see 2nd screenshot below).
To use the in-game AddOn manager you got 2 possibilities, after starting and logging in to the game:
1st) At the character selection screen choose the entry Add-Ons at the left menu.
You are able to preset the AddOns for all of your characters, or select a character from the dropdown list to preset them only for
the selected character.
After loading into the game world the addons for the loading character will be used like defined in your list here.
2nd) Choose a character at the character selection screen and as you loaded into the game world press ESC and choose "Add-Ons"
from the menu at the left.
Changing the AddOns here will only change the AddOns and libraries for the currently logged in character!
You are able to combine both ways of changing the AddOn's state.
The checkbox “Allow out of date add-ons” (2, see 1st screenshot above) was removed with the update to Blackwood! The game will just put a notification into your ingame notifications once after an API version change, if you got addons which are considered to be "out of date".
Just as an explanation how it worked and what "Out of date" means:
It was there before to enable those addons at the AddOn manager again, which are “Out of date”, and thus totally disabled (not selectable).
“Out of date” does not mean they are not working anymore!
It’s just a comparison of a value stored in the txt file of the addon/library to the currently internal in-game APIVersion (number comparison).
If the APIversion in the txt file is lower than the current APIversion, the game “assumes” the AddOn is not up2date anymore.
If anything won’t work it’s not because of this checkbox but because of the AddOns itself which might need an update.
Do NOT ask addon authors to update the addons just because they show as "out of date"! You do not know what it needs (time, ressources) to update the addons just because of this stupid version number comparison... Only 1 addon as example:
Update txt files, update lua files, create a new zip archive, upload the zip archive to esoui.com, update the changelog, update the description, update dependencies info, send the request for approval, admins have to scan the file for virus, check teh contents if any executables etc. are included, acept or decline the upload, talk to the devs if something was wrong, finally accept the upload. This all involves several ppl's free and private time, for what? For simply nothing but your own "good feeling"?
-> And now think about having to do this for ~20+ addons some devs maintain?!
Well, if you want your addons to show as not out of date you can go and manipulate the addons txt manifest file locally for yourself and set the proper ## APIVersion: in there which you are able to obtain ingame with this script in your chat edit box:
Disable all addons and give the developers some time (days, weeks) to fix this in their free time, instead of reporting the same error
messages about non-working AddOns, directly after a patch. Thank you.
These dependencies can be optional, or not.
Optional dependency: Another addon or library which might be needed for the addon in question.
If the dependency is missing the addon is still able to work and can be activated in the in-game addon manager.
The AddOn might throw error messages in that case, but must not.
Must dependency: Another addon or library which must be installed and enabled in the in-game
addon manager in order to enable the addon in question at all.
The AddOn will not load in total in that case.
Enabling/Disabling a dependency
Start the game, login, and check the in-game AddOn manager.
You are able to set the checkmark at the checkboxes to the left of the AddOn's name to enable them,
or remove the checkmark in the box to disable it again.
The in-game AddOn manager at the character selection screen got a 3rd state at these checkboxes.
The checkmark will be a filled checkbox, if you have selected the "All characters" entry from the dropdown box.
If the checkbox is filled this means "some characters got it enabled, and some got it disabled".
A missing dependency can have 2 reasons:
It is not installed at all. You need to install it like a normal AddOn as well.
It is installed but not enabled in the in-game AddOn manager.
Where do I see what dependencies an AddOn got?
It usually is written at top of the description page of an addon,
at top/inside of the changelog
or at the comments section (first comment, as sticky post) of the addon.
You can directly check the in-game AddOn manager as well.
It shows you the needed dependencies if you click on the addon name and expand it
(small right arrow icon left of the name):
If a dependency of an AddOn is missing you are able to see it directly in the in-game AddOn manager’s list,
at the right column. The text "Dependency” is indicating it.
The expanded addon will show you the details about the dependencies:
White entries are installed and enabled dependencies.
Red entries are missing dependencies!
-If the dependency is installed the text “(Disabled)” is shown next to the dependency name.
-If the dependency is totally missing (not installed yet) the text line will be simply red w/o the text “Disabled”.
Logout AND close the game ESO!
Dependencies / Libraries might be not working properly if you try to install or update them as you are logged in
to the game. Better log out before installing them and close the game in order to let the in-game AddOn manager
detect all new/changed dependencies and their load-order properly after you have downloaded/updated them.
Install your dependencies via Minion
You are able to use the Minion AddOn manager to install a dependency as dependencies are AddOns as well.
Just search for them in the tool and install them via the buttons in the tool.
Manually install your dependencies
Download the named dependencies and just install them like a normal addon to your ESO AddOns folder.
Here is a description how to manually install any addon (a dependency is an AddOn as well, even if it is a library):
How do I download, extract and manually install my AddOns/dependencies/libraries
If you see dependencies in subfolders (e.g. "libs") of addons
Many older addons included the libraris in a subfolder, embedded with the addon. These libraries often cause errors today as they get loaded via the txt file of the addon "hardcoded", and thus always get loaded.
IF these dependencies in subfolders of your addon exist and do NOT include the own txt file of the library, e.g. subfolder is /libs/LibAddonMenu-2.0 but there is no file /libs/LibAddonMenu-2.0/LibAddonMenu-2.0.txt:
Delete the folder /libs/LibAddonMenu-2.0/ as it is outdated and will cause problems!
Just install the dependency via Minion/manually directly ONCE to your live/AddOns folder!
If the dependencies in the subfolder "libs" contains a txt file properly the ingame addon manager will take care of the versioning.
If the dependency is not given at www.esoui.com/Minion: You need to leave the library in the subfolder "libs" of the addon. But it may be causing problems and could need a fix at the addon. If the addon is not maintained any longer you might need to find an alternative!
If the addon is old and still uses "LibStub" (an obsolete library for versioning)
Read here abou what LibStub was and why it was used (if interested into): https://wiki.esoui.com/Libraries
LibStub is obsolete since the Summerset update and thus should be removed from all addons. Libraries still usign LibStub should be changed to not do it anymore.
Remove the LibStub library from the "/libs" subfolder as desribed above at "If you see dependencies in subfolders...".
Check the *.lua files for the usage of the string LibStub, e.g. there could be a call to LibStub to load the library LibAddonMenu-2.0 like this:
local LAM = LibStub("LibAddonMenu-2.0")
Change the LibStub lines to use the global variable name of the library directly instead! The global name of the library is often the same as the library name, e.g. LibMotifCategory, LibSets, LibZones. If the library name contains a number at the end like LibAddonMenu-2.0 the global library name will just strip the - and . and numbers after the ., e.g. LibAddonMenu2.
So the line local LAM = LibStub("LibAddonMenu-2.0") will need to change to local LAM = LibAddonMenu2.
Automatic enabling needed dependencies of addons ingame
If you have needed dependencies downloaded and installed they won't be automatically enabled if you enable an addon which uses this dependency.
But there exists the addon "Votans Addon List" which will do this for you!
Each dependency, which is needed to enable an addon, will be automatically enabled too if you enable the addon. This also means it will enable dependencies of
dependencies, like LibMapPins needs LibGPS -> Enable Addon1 which uses LibMapPins will then enable LibMapPins and it's dependency LibGPS as well.
Attention: If "Votans Addon List" is enabled the section I had explained above below "Where do I see what dependencies an AddOn got?" will slightly change:
The dependencies are not shown below the addons via the expand icon, but inline with the addon, at the right side, you'll see a colored (i) icon. Move your mouse above to see the needed dependencies in a tooltip. The color of that icon already shows you if the addon's manifest txt file says it is "Out of date" or not (green). Bt as explained above: This does not mean anything. If it works: It works!
Please read the addon's (Votans Addon List) description for firther details!
Last edited by Baertram : 12/28/21 at 10:43 AM.
|ESOUI » AddOns » AddOn Help/Support » HowTo: AddOn dependencies/Libs in Subfolder/Removal of LibStub|