Download
(28 Kb)
Download
Updated: 04/17/23 05:55 PM
Compatibility:
Necrom (9.0.0)
Scribes of Fate (8.3.5)
Firesong (8.2.5)
Lost Depths (8.1.5)
High Isle (8.0.0)
Updated:04/17/23 05:55 PM
Created:04/22/21 09:08 AM
Monthly downloads:161
Total downloads:22,511
Favorites:33
MD5:
FCO Companion  Popular! (More than 5000 hits)
Version: 0.16
by: Baertram [More]
FCO Companion

Simple addon to add companion related helpers to the game.

Currently supported:


-Enable context menu on companion items: "Mark as junk"/"Unmark from junk"
Works at player inventory, banks and companion equipment.
Companion equipment inventory shows a new "Junk" tab for the junked items now, and hides junked items at the other tabs.
-> Important: The companion junk itms will ONLY save per toon/character, and not account wide, no matter what you have chosen to save the settings like (SaveMode: "Account wide" or "Per Character")!
-Disable companion pin at compass
-Dismiss companion as you interact with a crafting table
-Re-summon companion as you leave the crafting table
-Dismiss companion at banks
-Re-summon companion after leaving banks
-Dismiss companion at vendors/fences
-Re-summon companion after leaving vendors
-Dismiss companion as you interact with a fishing hole
-Re-summon companion as you leave the fishing hole (a delay can be set)
-Dismiss companion as you go into crouch
-Re-summon companion as you leave the crouch (a delay can be set)

Due to the restrictions/cooldown of the companion spawn/dismiss will be delayed sometimes. As long as the collectible cannot be used it will not despawn/spawn, but should depawn/spawn after the cooldown is 0 then.

Keybindings:
  • Toggle last companion
  • Toggle companion 1 (Bastian Hallix)
  • Toggle companion 2 (Mirri Elendis)



Companion menu cannot be shown via keybind as most functionality is not working then You need to interact with the companion in order to start the companion menu properly (sucks, I know).
Version 0.1.6 (2023-04-18)
Fixed interacitons on PTS "Necrom" not working, throwing an error


Version 0.1.5 (2023-02-17)
-Removed API function FCOCO.SetCompanionItemJunk
Instead you should use the default API function SetItemIsJunk which was enhanced by 2 optional new parameters:
SetItemIsJunk(bagId, slotIndex, isJunk, isCompanionItem, itemInstanceId)
If the item is a companion item and FCOC settings has enabled the companion junk, then this functin will mark/unmark companion items as Junk and update the inventory lists afterwards.
If the 2 additional params are left empty they will be determined internally

This makes FCOCO companion junk hopefully compatible with all kind of junk and keybind junk addons which use default API functions IsItemJunk, CanBeJunkMarked, SetItemIsJunk, HasAnyJunk.

-Removed explicit context menu entry for "Remove from junk" and let the addon reuse vanilla code context menu entry for that now.
This allowed me to remove extra code to prevet duplicate "Remove from junk" context menu entries too.
In order to make that work I had to change the function SetItemJunk as described above

-Made compatible with FCOItemSaver "Send 'Sell marked items' to junk" keybind

-Added function SellAllJunk so that companion junked items will be sold too
-Added function DestroyAllJunk so that companion junked items will be destroyed too
-> Thanks to Maxxermax for the hints!

Version 0.1.4 (2023-02-08)
-Added support for API function HasAnyJunk
-Prepared for AdvancedFilters

Version 0.1.3 (2023-02-06)
-Added setting "Mark companion items as junk" which enables you to mark/unmark your companion items as junk
Junk markers will be saved per character/toon and won't be removed automatically once you sell/destroy those items (like vanilla junk markers). They will be kept until you manually remove them.
The companion equipment inventory got a new tab "Junk" now.
Items marked as junk which will be deposit to a guild bank will be automatically unjunked again
-Added sub setting "Auto mark same items in bag" which will mark/unmark the same companion items in your current bag, as you mark/unmark as junk, as junk to (visual moving the items from companion tab to junk tab)


Version 0.1.2 (2022-05-26)
-Updated API
-Added up to 10 companion summon/hide keybinds
-Added support for PTS High Isle
-Changed keybind names to show the companion name

Version 0.1.1 (2022-01-25)
-Updated API
-Removed the hide ultimate button settings and related coding as it flickers and troubles the UI. This will not be added
anymore, sorry.

Version 0.1.0 (2021-08-08)
Added setting to hide the ultimate button. It might flicker shortly after a weapon pair / bar switch!

Version 0.0.9 (2021-07-04)
Added settings to dismiss the companion as you start to crouch and get hidden
Settings to re-summon it again after crouching, with a delay (so that a new crouch started won't respawn the companion) were also added.

Version 0.0.8 (2021-06-30)
Added settings to dismiss the companion as you start to fish (will be gone after ~1 second after interacting with the fish hole).
Settings to re-summon it again after fishing was ended (in between or via loot), with a delay (so that new started fishing attempts won't respawn the companion) were also added.

Version 0.0.7 (2021-06-12)
Added setting to hide the companion pin on the compass

Version 0.0.6 (2021-06-11)
Added settings to:
-Dismiss companion at banks
-Re-summon companion after leaving banks
-Dismiss companion at vendors/fences
-Re-summon companion after leaving vendors/fences

Version 0.0.5 (2021-06-06)
Added rapport "max" value to the rapport bar.

Version 0.0.4 (2021-06-03)
-Added the rapport value to the rapport bar (keyboard mode only!) as requested here: https://www.esoui.com/forums/showpost.php?p=44042&postcount=4

Version 0.0.3 (2021-06-03)
-Added settings to dismiss the companion at a crafting table
-Added settings to re-summon the companion after leaving the crafting table (if a companion was active as the crafting table was interacted with first)
-Added some cooldown checks and re-summon the companion after the cooldown of the collectible is gone (if used too quickly after another)
Archived Files (15)
File Name
Version
Size
Uploader
Date
0.15
28kB
Baertram
02/16/23 05:24 PM
0.14
26kB
Baertram
02/08/23 03:16 PM
0.13
26kB
Baertram
02/06/23 04:19 PM
0.12
20kB
Baertram
05/26/22 02:41 PM
0.11
19kB
Baertram
01/25/22 08:30 AM
0.10
20kB
Baertram
08/08/21 01:20 PM
0.09
19kB
Baertram
07/04/21 09:18 AM
0.08
18kB
Baertram
06/30/21 01:07 PM
0.07
16kB
Baertram
06/12/21 12:13 PM
0.06
16kB
Baertram
06/10/21 04:34 PM
0.05
15kB
Baertram
06/06/21 12:00 PM
0.04
15kB
Baertram
06/03/21 05:19 PM
0.03
14kB
Baertram
06/03/21 03:37 PM
0.02
9kB
Baertram
04/22/21 03:21 PM
0.01
5kB
Baertram
04/22/21 09:12 AM


Post A Reply Comment Options
Unread 11/13/23, 02:46 AM  
Baertram
Super Moderator
 
Baertram's Avatar
ESOUI Super Moderator
AddOn Author - Click to view AddOns

Forum posts: 4912
File comments: 5988
Uploads: 78
Originally Posted by SlippyCheeze
Is it possible to catch "destroy"-ing an item in inventory, and dismiss Sharp-As-Night, to avoid the painful loss of friendship if you happen to run out of bag space? I'm kind of assuming not, but ... fingers crossed.
Might be possible but this addon was not designed about such usecases. There exist others though which already were build exactly for such cases, like do not allow torchbug collection if Mirri is out or eat cheese if Bastion is out, etc.

https://www.esoui.com/downloads/info...ionHelper.html
Please ask there to support the new companions
Report comment to moderator  
Reply With Quote
Unread 11/11/23, 12:13 PM  
SlippyCheeze
AddOn Author - Click to view AddOns

Forum posts: 53
File comments: 272
Uploads: 1
Is it possible to catch "destroy"-ing an item in inventory, and dismiss Sharp-As-Night, to avoid the painful loss of friendship if you happen to run out of bag space? I'm kind of assuming not, but ... fingers crossed.
Report comment to moderator  
Reply With Quote
Unread 03/11/23, 01:27 PM  
M-ree

Forum posts: 2
File comments: 510
Uploads: 0
Originally Posted by Baertram
Originally Posted by M-ree
Originally Posted by Baertram
Originally Posted by M-ree
Ok, now I am confused. Do you mean junk markers per se being saved per character, or the option to enable them?
All of that is saved "per character" only, due to limitations within the API and junk bahaviour accoun wide data was not easily doable.
I did not split it up so that the "Enable companion junk" is saved per account but the junk items only per character, so all of the companion junk settings and saved items are saved per toon/character only.
Ok, I see now where the confusion was. Oh well, easy fix, I've just ran a search + replace in saved var to change all instances of enableCompanionItemJunk from false to true
That would have been my proposal too, after logging in all chars once. Glad you found it yourself!
I know lua scripting and add-ons a bit after all, just not the ESO UI part. That's kinda Greek to me.
Report comment to moderator  
Reply With Quote
Unread 03/11/23, 05:39 AM  
Baertram
Super Moderator
 
Baertram's Avatar
ESOUI Super Moderator
AddOn Author - Click to view AddOns

Forum posts: 4912
File comments: 5988
Uploads: 78
Originally Posted by M-ree
Originally Posted by Baertram
Originally Posted by M-ree
Ok, now I am confused. Do you mean junk markers per se being saved per character, or the option to enable them?
All of that is saved "per character" only, due to limitations within the API and junk bahaviour accoun wide data was not easily doable.
I did not split it up so that the "Enable companion junk" is saved per account but the junk items only per character, so all of the companion junk settings and saved items are saved per toon/character only.
Ok, I see now where the confusion was. Oh well, easy fix, I've just ran a search + replace in saved var to change all instances of enableCompanionItemJunk from false to true
That would have been my proposal too, after logging in all chars once. Glad you found it yourself!
Report comment to moderator  
Reply With Quote
Unread 03/11/23, 02:35 AM  
M-ree

Forum posts: 2
File comments: 510
Uploads: 0
Originally Posted by Baertram
Originally Posted by M-ree
Ok, now I am confused. Do you mean junk markers per se being saved per character, or the option to enable them?
All of that is saved "per character" only, due to limitations within the API and junk bahaviour accoun wide data was not easily doable.
I did not split it up so that the "Enable companion junk" is saved per account but the junk items only per character, so all of the companion junk settings and saved items are saved per toon/character only.
Ok, I see now where the confusion was. Oh well, easy fix, I've just ran a search + replace in saved var to change all instances of enableCompanionItemJunk from false to true
Report comment to moderator  
Reply With Quote
Unread 03/10/23, 03:06 PM  
Baertram
Super Moderator
 
Baertram's Avatar
ESOUI Super Moderator
AddOn Author - Click to view AddOns

Forum posts: 4912
File comments: 5988
Uploads: 78
Originally Posted by M-ree
Ok, now I am confused. Do you mean junk markers per se being saved per character, or the option to enable them?
All of that is saved "per character" only, due to limitations within the API and junk bahaviour accoun wide data was not easily doable.
I did not split it up so that the "Enable companion junk" is saved per account but the junk items only per character, so all of the companion junk settings and saved items are saved per toon/character only.
Report comment to moderator  
Reply With Quote
Unread 03/10/23, 01:53 PM  
M-ree

Forum posts: 2
File comments: 510
Uploads: 0
Originally Posted by Baertram
The junk markers only will save per toon, not per acount. That's restricted and cannot be changed!
I've added that to the description, thanks for the reminder.
Ok, now I am confused. Do you mean junk markers per se being saved per character, or the option to enable them? Also, on closer testing, the option to unsummon on fishing is saved, but the option to /enable/ marking companion items as junk is not.

The saved vars are updated correctly, but looking inside them, I only see variables for un/resummoning companions, disable at compass, version and last companion id. There's no line that could match enabling/disabling junk marking:

["disableCompanionAtCompass"] = false,
["unSummonAtCrouching"] = false,
["companionIsSummoned"] = true,
["reSummonAfterCrouchingDelay"] = 5000,
["lastCompanionId"] = 5,
["reSummonAfterFishingDelay"] = 5000,
["version"] = "0.04",
["alwaysUseClientLanguage"] = true,
["unSummonAtBanks"] = false,
["unSummonAtFishing"] = true,
["reSummonAfterCrouching"] = false,
["reSummonAfterFishing"] = false,
["unSummonAtCrouchingNoCombat"] = false,
["reSummonAfterBanks"] = false,
["unSummonAtVendors"] = false,
["reSummonAfterVendors"] = false,
["reSummonAfterCraftingTables"] = true,
["unSummonAtCraftingTables"] = false,
Last edited by M-ree : 03/10/23 at 01:54 PM.
Report comment to moderator  
Reply With Quote
Unread 03/10/23, 01:44 PM  
Baertram
Super Moderator
 
Baertram's Avatar
ESOUI Super Moderator
AddOn Author - Click to view AddOns

Forum posts: 4912
File comments: 5988
Uploads: 78
The junk markers only will save per toon, not per acount. That's restricted and cannot be changed!
I've added that to the description, thanks for the reminder.

But that unsummon of the companion (at fishing e.g.) should be account wide saved properly.

If you check the SavedVariables files live/SavedVariables/FCOCompanion.lua before login (note the last changed date and time!) and after changing settings and doing a /reloadui in the chat ingame -> Does the last changed date/time change at this file?
if not something blocks access to it, maybe your antivirus or any Windows update.
-> Try to allow the SavedVariables folder in your antivirus explicitly /whitelist it there.

If the date / time changes it should save properly.
Do you close the game via ALT+F4 or without using offficial Exit funcitonality like /quit from chat or using the menu -> Exit, or logout?
Only in this case the SV files are saved properly. if the client crashes it's neither saved.

Do you use any other addons that ty to copy SavedVariables for you from character to account settings? Disable them as they might interfere.




Originally Posted by M-ree
For whatever reason, I can't get FCO companion save the settings. It is set to "Account wide" and I switch on marking companion gear as junk and unsummoning companions when fishing. But I have to do it every single time I log in.

I have tried a reinstall and even with no other add-ons (save dependencies), same thing.

Any ideas what could be the issue?
Last edited by Baertram : 03/10/23 at 01:47 PM.
Report comment to moderator  
Reply With Quote
Unread 03/10/23, 01:10 PM  
M-ree

Forum posts: 2
File comments: 510
Uploads: 0
For whatever reason, I can't get FCO companion save the settings. It is set to "Account wide" and I switch on marking companion gear as junk and unsummoning companions when fishing. But I have to do it every single time I log in.

I have tried a reinstall and even with no other add-ons (save dependencies), same thing.

Any ideas what could be the issue?
Last edited by M-ree : 03/10/23 at 01:47 PM.
Report comment to moderator  
Reply With Quote
Unread 02/17/23, 02:02 AM  
Neverlands
 
Neverlands's Avatar

Forum posts: 7
File comments: 559
Uploads: 0
Thanks for the quick update Baertram!
PS
Yes, I took the screenshot before I disabled all addons to see if the button was still there then. I was too lazy to switch the client from German to English again afterwards to take another screenshot.
Report comment to moderator  
Reply With Quote
Unread 02/17/23, 02:00 AM  
Baertram
Super Moderator
 
Baertram's Avatar
ESOUI Super Moderator
AddOn Author - Click to view AddOns

Forum posts: 4912
File comments: 5988
Uploads: 78
As I'm using the vanilla context menu now for unmark I guess it's playing the sound once, and FCOCompanion is playing it another time then.
The PlaySound needs to be disabled in FCOCO for IsJunk == false then

Originally Posted by Maxxermax
FCO Companion is now fully compatible with JunkHotkey.
Thank you very much.

I have integrated a little check for Companion Items in my JunkHoverdItem function to not play the sound double, what would it sound louder.

I noticed that your unmark junk with the context menu is now louder too for companion items, but with "normal" items or with my JunkHotkey not. Weird.
Report comment to moderator  
Reply With Quote
Unread 02/16/23, 05:54 PM  
Maxxermax
AddOn Author - Click to view AddOns

Forum posts: 2
File comments: 74
Uploads: 2
FCO Companion is now fully compatible with JunkHotkey.
Thank you very much.

I have integrated a little check for Companion Items in my JunkHoverdItem function to not play the sound double, what would it sound louder.

I noticed that your unmark junk with the context menu is now louder too for companion items, but with "normal" items or with my JunkHotkey not. Weird.
Report comment to moderator  
Reply With Quote
Unread 02/16/23, 05:46 PM  
Maxxermax
AddOn Author - Click to view AddOns

Forum posts: 2
File comments: 74
Uploads: 2
Re: Re: Re: Re: Re: Re: Selling all junk items

Originally Posted by Baertram
...
Function DestroyItem() seems to exist too, maybe this works.
Thats what I thought too
Report comment to moderator  
Reply With Quote
Unread 02/16/23, 04:26 PM  
Baertram
Super Moderator
 
Baertram's Avatar
ESOUI Super Moderator
AddOn Author - Click to view AddOns

Forum posts: 4912
File comments: 5988
Uploads: 78
Re: Re: Re: Re: Re: Selling all junk items

Thanks for the info, will have a look at these API functions too!
-> I've added SellAllJunk to the addon now, thanks for the hints again.
DestroyAllJunk will be added later too if it works, as there only exist functions ZO_InventorySlot_InitiateDestroyItem(inventorySlot) which do not look like they should be used for "loops" or multiple destroy attempts after another...
Function DestroyItem() seems to exist too, maybe this works.


You can check the github link here for the FCOCompanion version 0.1.5
It should be compatible with your JunkHotkey addon now.
Just add to your txt file:
Code:
## OptionalDependsOn: FCOCompanion>=001050
https://github.com/Baertram/FCOCompa...heads/main.zip

Originally Posted by Maxxermax
Originally Posted by Baertram
Your screenshot shows you got at least the GridList addon enabled But maybe you only added this screenshot to show me the keybind.
I know it's sometimes there, and sometimes it isn't...
At best, to test this, enable the checkbox "Disable addons" at the top left of the addons list ingame, and reload the UI. This way all addons and libraries get deactivated for a proper test.

I had tested this with a crafting (blacksmith) vendor's sell tab and I did not see that keybind.
Will test again, maybe it's only available at some of the vendors then.

Edit:
Disabled ALL addons via the addon list -> flag above the addons.
Reloadui.
Talked to vendor (armor), selltab, no keybind
...
Same for Mysthic, blacksmith, clothier, and other vendors around.

Normal vendor who sells repair kits and potions, neither he shows it:
...
Just in case it's zone dependent I have checked Gonfalon's vendor too - No keybind sorry:
...

I'm pretty sure this is addon added and not vanilla UI OR it's something thats not enabled by default then, at least I cannot see it somehow.




Originally Posted by Neverlands
...
It is a builtin vanilla ESO standard function SellAllJunk().
You have to have at least one item marked as junk or the option "Sell All Junk" will not be shown.

SellAllJunk() recognise only ZO server saved/marked junk items.
If you want to recognise your saved companion items you could overwrite the original function

Lua Code:
  1. local OrigSellAllJunk = SellAllJunk
  2. function SellAllJunk()
  3.     -- some for loop to check junked companion items
  4.         -- for each found companion item
  5.         -- SellInventoryItem(bagId, itemData.slotIndex, GetItemTotalCount(bagId, itemData.slotIndex))
  6.     -- end
  7.    
  8.     -- OrigSellAllJunk()
  9.     d("SellAllJunk junked regular items")
  10. end
  11.      
  12.     ESO_Dialogs.SELL_ALL_JUNK.buttons[1].callback = SellAllJunk

same goes for DestroyAllJunk()

Edit:
Originally Posted by Baertram
Edit:
I maybe had nothing in junk as I checked last time....
it seems I was to slow with my reply as I tried to find a solution
Last edited by Baertram : 02/16/23 at 05:18 PM.
Report comment to moderator  
Reply With Quote
Unread 02/16/23, 03:59 PM  
Maxxermax
AddOn Author - Click to view AddOns

Forum posts: 2
File comments: 74
Uploads: 2
Re: Re: Re: Re: Selling all junk items

Originally Posted by Baertram
Your screenshot shows you got at least the GridList addon enabled But maybe you only added this screenshot to show me the keybind.
I know it's sometimes there, and sometimes it isn't...
At best, to test this, enable the checkbox "Disable addons" at the top left of the addons list ingame, and reload the UI. This way all addons and libraries get deactivated for a proper test.

I had tested this with a crafting (blacksmith) vendor's sell tab and I did not see that keybind.
Will test again, maybe it's only available at some of the vendors then.

Edit:
Disabled ALL addons via the addon list -> flag above the addons.
Reloadui.
Talked to vendor (armor), selltab, no keybind
...
Same for Mysthic, blacksmith, clothier, and other vendors around.

Normal vendor who sells repair kits and potions, neither he shows it:
...
Just in case it's zone dependent I have checked Gonfalon's vendor too - No keybind sorry:
...

I'm pretty sure this is addon added and not vanilla UI OR it's something thats not enabled by default then, at least I cannot see it somehow.




Originally Posted by Neverlands
...
It is a builtin vanilla ESO standard function SellAllJunk().
You have to have at least one item marked as junk or the option "Sell All Junk" will not be shown.

"Sell All Junk" recognise every HasAnyJunk item, maybe because your AddOn overwrite the HasAnyJunk function, but SellAllJunk() only sell ZO server saved/marked junk items it seems.
If you want to recognise your saved companion items you could overwrite the original function

Lua Code:
  1. local OrigSellAllJunk = SellAllJunk
  2. function SellAllJunk()
  3.     -- some for loop to check junked companion items
  4.         -- for each found companion item
  5.         -- SellInventoryItem(bagId, itemData.slotIndex, GetItemTotalCount(bagId, itemData.slotIndex))
  6.     -- end
  7.    
  8.     -- OrigSellAllJunk()
  9.     d("SellAllJunk junked regular items")
  10. end
  11.      
  12.     ESO_Dialogs.SELL_ALL_JUNK.buttons[1].callback = SellAllJunk

same goes for DestroyAllJunk()

Edit:
Originally Posted by Baertram
Edit:
I maybe had nothing in junk as I checked last time....
it seems I was to slow with my reply as I tried to find a solution
Last edited by Maxxermax : 02/16/23 at 04:27 PM.
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump:

Support AddOn Development!

You have just downloaded by the author . If you like this AddOn why not consider supporting the author? This author has set up a donation account. Donations ensure that authors can continue to develop useful tools for everyone.