Download
(43 Kb)
Download
Updated: 03/14/15 09:50 AM
Pictures
File Info
Compatibility:
Update 6 (1.6.5)
Updated:03/14/15 09:50 AM
Created:04/09/14 02:05 PM
Monthly downloads:58
Total downloads:17,616
Favorites:63
MD5:
Categories:Discontinued & Outdated, Graphic UI Mods, Info, Plug-in Bars, Utility Mods
PL Research Timers  Popular! (More than 5000 hits)
Version: 3.34
by: GetBackYouPansy [More]
As of 2015-06 I am not actively maintaining this mod any more as I have moved on to other things. Thank you to everyone who downloaded and used the mod. The source code is available on github (MIT license) should anyone wish to take over.

What's timers, precious?

PL Research Timers adds visual timer indicators to the UI which tell you how long you have left on your research. These times pop up either when you ask, or at certain important milestones. What do they look like? Like this:


These appear for a short period just below the compass/target name/target title. They tick in real time, then they go away again, so the UI isn't permanently cluttered. The addon can be configured to show you just one character at a time, or all the characters on your account.

You can show the timer info in these ways:
  1. Just do nothing! Let your research happen. Then, when your research is at an important milestone the addon will show you the relevant single timer automatically.
  2. Log in - the timers can be configured to display when you first log in to a character.
  3. Via a key binding
  4. Use the slash command /timers

Timers will automatically appear when the research is at one of these default important milestones:
  • 1 hour left
  • 15 minutes left
  • 1 minute left

.. but you can configure these via the settings menu (under Research Timers > Alarm 1/2/3 time). You can even turn of the automatic timers completely (turn off Research Timers > Enable alarms).

Cross-character timers

PL Timers can show you timer information from all the characters on your account. Each character's timers and other information is displayed beneath a header when the timers are invoked (slash command, keybind, or log in).

This feature is optional and can be turned off in parts via the addon settings menu.

Alarms will also be displayed for research on other characters, if they pass through one of the milestones defined in the settings (default 1h, 15m, 5m).

This feature is provided to prevent you needing to switch characters as often, but bear the following in mind:
  1. The game API does NOT provide a means to actively check other characters timers, so I have had to implement my own timekeeping, based on snapshots of timer data taken at regular intervals from the character you are logged in to
  2. Therefore you must log in to every character who has research timers periodically to allow the addon to gather up-to-date data from them, which it can then use offline.
  3. The timer data from your other characters is saved in a SavedVariable - which is what addon settings generally use - which means it will be 'reset' every time the game is patched. Just log in to each character and it will work again.
  4. The UI presentation degrades if you have LOTS of timers on multiple characters, because the list goes off the screen. This is something I really want to fix, but have not currently got the time or inclination to address.

Configuration

You can configure the following things via Settings > Research Timers:
  • Enable/disable the addon functionality (n.b. the addon will still be loaded, just inert)
  • Enable/disable sounds - the addon re-uses sounds from the stock ESO UI to draw your attention to timers.
  • Enable/disable alarms (timers automatically appearing)
  • Enable/disable timers being shown when you log in
  • Enable/disable showing timers from all characters on login, when you use the keybind, or when you run /timers.
  • Enable/disable alarm notifications for research on other characters (also applies to research completion notifications).
  • The time remaining which triggers 'alarms' to be displayed.
  • The time remaining which causes timers to be in red, amber or green state.
  • Whether or not you care about un-used research slots.

An optional keybinding can also be configured, but by default it is not. Find it under Controls > Keybindings > General > Research Timers.

Known Issues

I'm sure there's lots Here's a list of issues I do know about. Yellow ones are my top priorities.
  • If you have lots of timers they go off the screen.

TODO List
  • Localisation - if you can translate into French or German, get in touch
v3.34
  • Updated to LibAddonMenu 2r17, for better compatibility with ESO v1.6.x
  • On logging in, timers are now displayed after ~5.5 seconds rather than 1 second, if the active character has Enlightenment, to allow the new notification to complete. If the character does not have enlightenment, the delay is 1 second as before.
  • This version doesn't have CombatIndicator unintentionally included in the zip (Oops!)

v3.33
  • Update for ESO v1.6.5 (Update 6; API 100011).

v3.32
  • Upgrade LAM2 to release 16.

v3.31
Internal release only.
  • Update for ESO v1.5.x

v3.3
  • Updated for ESO v1.4.3 (Update 4; Upper Craglorn, Dragonstar Arena; API version 100009)
  • You can now configure the time at which a timer turns from green to amber, and from amber to red. Typically you would want to set this the same as one of your alarm times, but that is not a requirement. Previously green to amber was always at 1 hour remaining, and amber to red at 15 minutes. Note that this is a per-character setting, and will affect the display of timers from all characters.
  • When timer display involves multiple characters, the active character's timers will now come first.
  • Upgraded LibAddonMenu (bundled dependency) to version 2.0. This moves the Research Timers settings from [Settings > Addons > PansyLabs Add-ons] to the combined [Settings > Addon Settings] menu.
  • Should the addon cause a scripting error you will now no longer get a second spurious error after reloading the UI.

v3.22
  • Fix for bug identified by Rashy: on log-in with alarms disabled a scripting error was occurring.
  • Moved top level controls into the 'background' draw layer in an effort to get the addon out of the way of other UIs a bit more.

v3.21
  • Updated for ESO v1.3.3/v1.3.4 (Dyes; API version 100008)

v3.2
  • Fixed keybinding - it will now work in German clients. Should be fine in French too.
  • Craft names in the German (and possibly French) clients should no longer have spurious characters like ^f on the end. N.b. This only affects craft names (Smithing, Clothing, etc.), please report any other instances.
  • Removed /timers2 entirely

v3.1
  • Added on/off setting to prevent timers from all characters being shown whenever a full timer display was done (i.e. /timers, key bind, or on login).
  • Added on/off setting to prevent alarms from all characters being shown. This is independent of the setting to prevent timers displaying (see above). This means that you can still have alarms for other characters, without having to see all their timers every time you log in. This setting affects both alarm timers and research-completion notifications. Note that research completion notifications for the active character are only shown when logging in. For other characters they will also be shown when research completes during play. This is because the base game already notifies the logged in character about completed research via text notifications at the top right of the screen..
  • Fixed a bug where timers could display over the top of one another, and generally improved rendering of timers w.r.t positioning.
  • Fixed a bug where alarm timers would not display at all.
  • Fixed a bug where timers would cease to work after the character went through a loading screen.
  • Fixed a bug where users who had performed a fresh install of v3.0 would see an error the first time they loaded the game (reported by Dingodan).
  • Altered the UI configuration so that timers and other parts of the PL Research Timers UI will no longer consume mouse clicks and other events. This is aimed at addressing bugs #500 and #907, but may not completely fix the issue.
  • Internal improvements to research data updating which make it easier to test changes in future.

v3.0
  • Research timers from all characters on an account are now displayed when the full timer display is shown (i.e. on login, slash command, or keybind)
  • Alarm timers (1h, 15m and 5m by default) will now display for research from all characters on an account, regardless of which character is active.
  • On login, notifications are displayed for completed research lines. These are added under the character's timers, for each character. Previously, these were only printed in the chat window, and only for the active character.
  • Lots of code/behind the scenes improvements
    • Largely restructured timer data persistence to support cross-character timers. Notably timer data is now persisted in an account-wide variable.
    • Updated data model tick logic to do 'dead reckoning' of timers from other characters.
    • Completely re-worked how timers and info boxes ("only using x out of y slots") are built and rendered, allowing widgets to be grouped by character, and making it easy to add other widgets such as the character headings.
    • Rendering (timer display) and model code (timer data updates) somewhat decoupled from one another, making further UI/model changes simpler in future.
    • Restructured how timer data is persisted to allow persisting data from all characters on a single account
    • Implemented a 'grace period' after login, used primarily by completion detection.
    • The /timers2 command was neutered and no longer does anything useful. This will be removed in future.

v2.42
  • Updated for ESO v1.2.3 (Veteran Crypt of Hearts; API version 100007)

v2.41
  • Updated for ESO v1.1 (Craglorn; API version 100004)

v2.4
  • It is now possible to make a keybind to display the timer summary, it functions the same as using /timers.
  • Settings menu has been moved from Settings > Research Timers to Settings > PansyLabs Add-ons > Research Timers. This is to avoid cluttering up the UI for anyone who has other addons installed (e.g. Combat Indicators), plus a bit of future-proofing.

v2.3
  • Craft skill names are now taken from the API, and so should respect localisation.

v2.2
  • Timers (and warnings) are displayed on logging in. This can be disabled in the settings.
  • /timers now also includes warnings about unused research slots.
  • Chat log timers (from /timers2) also include warnings about unused research slots.
  • Warnings about unused research slots can be configured per craft (never show/show if one slot is unused/show if all slots are unused).
  • Lots of behind the scenes changes and small invisible improvements.
  • A small change or two to try to make better use of vertical space.
  • Implemented a basic l10n system to allow for future translations into other languages. This will use the same language as the game client, but initially this is only populated with English. PM me if you wish to volunteer to translate!

v2.1
  • HUD timers (from /timers) now include the trait names being researched ('Precise', etc.)
  • Chat log timers (from /timers2) have reformed their lying ways and now show the correct trait name.

v2.0

First public release!

v1.x

Never officially released.
Optional Files (0)


Archived Files (1)
File Name
Version
Size
Uploader
Date
3.32
39kB
GetBackYouPansy
11/06/14 06:24 AM


Post A Reply Comment Options
Unread 09/07/14, 01:54 PM  
Rashy

Forum posts: 1
File comments: 34
Uploads: 0
Yeah, I usually have the file open in Notepad++ and I am getting the notification that its been updated (I reload it) and the values had not changed.

I'll watch for when it happens again and check the timerdata.
Report comment to moderator  
Reply With Quote
Unread 09/07/14, 11:57 AM  
GetBackYouPansy
AddOn Author - Click to view AddOns

Forum posts: 7
File comments: 59
Uploads: 2
Not feeling any pressure All I've had to do so far is speculate wildly!

So if I'm understanding correctly, the updated values from char X are not written out to the relevant section of the saved vars file after you log out from Char X, but for other characters that does work? And is that dependent on being in a VR zone?

If so (VR part aside), I begin to suspect that the player deactivate code in the addon is at fault - i.e. the new values are not being written out. You can inspect the model in game, if you really want to, using /script d(PL_TIMERS.timerData) That'll dump the values to chat, and if you then log out the same values (minus a few secs) should be written to the file.

The assumption to check here is that the file is definitely being written. I know opening it in notepad++ makes that easy to check as it'll ask you every time if you switch from ESO to notepad++ after a change if want to reload it. Should the file mysteriously not get updated after logging out of character X, then the bug is almost certainly in the addon (here, if you're interested!)
Last edited by GetBackYouPansy : 09/07/14 at 11:58 AM.
Report comment to moderator  
Reply With Quote
Unread 09/06/14, 07:03 PM  
Rashy

Forum posts: 1
File comments: 34
Uploads: 0
Well the function is returning correct values.

Here's the scenario again. I log on Character Y in Non-VR zone. His own timers are fine, but I'm seeing inflated timers for Character X who is in a VR Zone.

I log out Character Y and log on to Character X. All timers look fine.

When I open the saved variables while Character X is logged in and manually run the function call to get the duration & remaining, I get different numbers than are stored in the saved variable file.

from the file
duration = 1382400
remaining = 1126810

from the function call
duration = 1105920
remaining = 842824

I log out to see if the correct values I've queried on Character X have been written to the saved variables. No go.

The part I don't understand is why I'm seeing this pop up with characters not in the same zone type. Is that just a coincidence? Possibly. Its also erratic as to when it happens. It can be fine and after a few character switches the invalid timers show up.

I hope you don't feel I'm hassling you to fix this. I'm fine with how its working atm.

I coded for a living some years back and when I find something to fix or just for the challenge, I tend to get a bit obsessed with figuring out the cause. Unfortunately I don't have any experience with LUA, but this has been a great learning experience combing through your addon and getting my feet wet with how the language works.
Last edited by Rashy : 09/06/14 at 07:03 PM.
Report comment to moderator  
Reply With Quote
Unread 09/06/14, 04:23 PM  
GetBackYouPansy
AddOn Author - Click to view AddOns

Forum posts: 7
File comments: 59
Uploads: 2
Ah OK so the saved variables are 'wrong'.

Originally Posted by Rashy
Is the GetSmithingResearchLineTraitTimes() function bugged?
It could be, it's more likely to be my code tho You can test that quite easily. In the saved variables for each timer you'll find a property called key with a value like "2_8_1". You can plug those values (2, 8 and 1) into GetSmithingResearchLineTraitTimes to see what it reckons.

/script d(GetSmithingResearchLineTraitTimes(2, 8, 1))

... should be returning close to the values you see in the saved variables for duration and remaining. Tho bear in mind the saved vars aren't written out as soon as they change, so you need to log out or something to cause them to save. And obviously it should always be correct! This can only be done on the character who owns the research, but it'd be interesting to see if that function returns the wrong values, or not.
Last edited by GetBackYouPansy : 09/06/14 at 04:23 PM.
Report comment to moderator  
Reply With Quote
Unread 09/06/14, 06:51 AM  
Rashy

Forum posts: 1
File comments: 34
Uploads: 0
Maybe this will help you.

Looking at the saved variables...there's one difference.

Character in VR Zone -> Moved to non-VR Zone

duration = 691200 -> duration = 552960

So there's why I'm seeing the difference in the timers.

Is the GetSmithingResearchLineTraitTimes() function bugged?
Last edited by Rashy : 09/06/14 at 06:59 AM.
Report comment to moderator  
Reply With Quote
Unread 09/06/14, 06:38 AM  
Rashy

Forum posts: 1
File comments: 34
Uploads: 0
Yeah, the bug has popped up again...

One character in a non-VR zone and the other in a VR zone.

GetTimeStamp() is returning the similar values for both characters. Verified that the saved variables are recording the same value seen on the screen.

I'm puzzled.
Report comment to moderator  
Reply With Quote
Unread 09/05/14, 04:32 PM  
GetBackYouPansy
AddOn Author - Click to view AddOns

Forum posts: 7
File comments: 59
Uploads: 2
Not necessarily, evidently it doesn't do what I thought, so I suspect it might only be true when you are in a VR dungeon or such. That's an aside though, the real tell would be the timestamps.

I guess just keep an eye on it and if the issue arises again it'd be interesting to see what GetTimeStamp() gives you.
Report comment to moderator  
Reply With Quote
Unread 09/05/14, 03:30 PM  
Rashy

Forum posts: 1
File comments: 34
Uploads: 0
Originally Posted by GetBackYouPansy
If you like, try this slash cmd on the two characters in the three possible situations (one non-veteran, one veteran in VR area and one veteran in non-VR area)

/script d(IsUnitUsingVeteranDifficulty("player"),GetTimeStamp())
Well, oddly enough I not seeing the issue with the timers again and haven't been able to re-create it again.

When running that script on 3 characters..

EP VR2 Character in DC VR Zone, I get false with correct epoch timestamp
EP VR1 Character in EP Non-VR Zone, I get false with correct epoch timestamp
EP Non-VR Character, I get false with correct epoch timestamp

Shouldn't I be getting at least one true?
Report comment to moderator  
Reply With Quote
Unread 09/05/14, 12:59 PM  
GetBackYouPansy
AddOn Author - Click to view AddOns

Forum posts: 7
File comments: 59
Uploads: 2
Stranger and stranger. I have a DC character who just hit VR1 so I will see if I can reproduce that at all if I go to the AD areas.

Edit:
If you like, try this slash cmd on the two characters in the three possible situations (one non-veteran, one veteran in VR area and one veteran in non-VR area)

/script d(IsUnitUsingVeteranDifficulty("player"),GetTimeStamp())

The value should be true/false (if VR is on) followed by the correct epoch timestamp (you can see the current timestamp here).

You could also try /script d(FormatTimeSeconds(356521, 9, 0, 1))

Which should always give you "4 days 3 hours 2 minutes 1 second"

It'd be interesting if either of those was wrong in the same situations as when your timers are wonky.
Last edited by GetBackYouPansy : 09/05/14 at 02:16 PM.
Report comment to moderator  
Reply With Quote
Unread 09/04/14, 09:07 PM  
Rashy

Forum posts: 1
File comments: 34
Uploads: 0
Woo! Figured out the bug!

Looks like the issue is server side.

The two characters I use the timers on are now doing the VR content. My characters are EP, and now I'm running the VR content in the DC area. (I'm on the NA Servers)

Example...

Character X is in Glenumbra, their timers look fine. Other characters' timers look fine as long as they're not in the VR content. Log Character X off.

Character Y logs on, in The Rift, their timers look fine. Character X's timers appear to have +20% remaining time to Character Y.

So it seems there's possibly an issue with the system clocks on the servers based on the zone you're currently in.

UPDATE: Something is definitely up on the server end. I have another time based addon I'm using (MailTime) and it works fine as long as the hireling mails are received while in a native zone (your faction 1 - 50), if I'm in a VR content zone, it gives bogus info.
Last edited by Rashy : 09/05/14 at 07:28 AM.
Report comment to moderator  
Reply With Quote
Unread 09/04/14, 06:25 PM  
Rashy

Forum posts: 1
File comments: 34
Uploads: 0
Yeah, I have no idea what happened, but I just re-enabled being able to see other character's timers and they're all correct now.

My system clocks were and are fine. (I even checked my system event logs)

The only thing that I can remotely think might have had an impact was I respec'd Character Y yesterday morning while 3 items were being researched. I could see a possible correlation if it was only Character Y's timers being incorrect, but it was all my characters seeing each other's timers incorrectly.

Going to just chalk this one up to random bizarre crap that sometimes just happens.
Report comment to moderator  
Reply With Quote
Unread 09/04/14, 11:17 AM  
GetBackYouPansy
AddOn Author - Click to view AddOns

Forum posts: 7
File comments: 59
Uploads: 2
Originally Posted by Rashy
Noticed a bug.
...
That is ... very funky. I've failed to reproduce it with my characters (one char with 6 slots going, 3 blacksmith, 3 clothing, one of which is, IIRC, the 8th trait).

I have no idea what could be wrong. I need to be able to reliably reproduce the problem myself in order to investigate further unfortunately.

Is the clock on your PC definitely correct? I just did a quick check and found that moving the clock on my PC forward by 2 hours with the game running causes the timers to all shift by 2 hours as well. It can probably be ruled out as the cause tho, cos switching characters just shouldn't shift the clock by 6 days.

Here are some technical details which might help you identify a cause:

If you're logged in as character X, character X's timers are updated 'for real' from the game. All other characters that have timers go through the process described in the next paragraph. Updating 'for real' involves asking the game for the total duration and remaining time for every research line. The game factors in your skills returns the remaining time, and total duration. When you log out those data are written to saved variables. That data also includes the time at which the data was acquired. If you quit (rather than log out then quit), the saved variables might not get written, but assuming you have not started any new research then the data is still correct (the addon will account for research that completes while it isn't looking).

This makes the passive timers really simple - when you're logged in as character Y, all the addon has to do to work out how long left is subtract two timestamps (time now - timestamp of the data) from the remaining time, to give an updated remaining time. That calculation always uses the persisted data from the last time you logged in as character X so that errors do not accumulate. All the timestamps involved come from the game, and in fact the function to difference the two times is part of the API too.

So, that is why I'm stumped, I just can't see why/when the value is inflating by 20%. I let the game handle all the skill-related stuff and don't update the data if the character is not logged in.
Last edited by GetBackYouPansy : 09/04/14 at 11:19 AM.
Report comment to moderator  
Reply With Quote
Unread 09/03/14, 06:16 PM  
Rashy

Forum posts: 1
File comments: 34
Uploads: 0
Noticed a bug.

I'm not sure why I hadn't noticed this sooner, but it appears it may to be tied to the passive research abilities.

Here's an example. I have a woodworker (lets call him Character X) with 3/3 Carpentry (reduce research time by 20%) that is researching the 8th trait for Bows. I see my timers just fine when I'm logged in as him, but when I switch characters I see the time being ~20% longer than it should be.

Whats very odd about the bug is that it didn't seem to have been happening before. I know that about 2 hours before reporting this, the addon showed the bow being researched for 25 days by Character X, while logged on Character Y (a blacksmith). Now when I log on anyone other than Character X, the timers show 31 days for that 8th trait research by Character X (Full timers from all characters ON).

I've gone as far as to delete my saved variables for the addon and started fresh, but no luck.
Report comment to moderator  
Reply With Quote
Unread 08/22/14, 01:50 PM  
Rashy

Forum posts: 1
File comments: 34
Uploads: 0
Thanks for the quick fix!
Report comment to moderator  
Reply With Quote
Unread 08/22/14, 12:45 PM  
GetBackYouPansy
AddOn Author - Click to view AddOns

Forum posts: 7
File comments: 59
Uploads: 2
v3.22 bug fix release

Fix on its way for the "Enable alarms" bug Thanks for reporting. I will look into the 'current character should be first' bug when I have more time.

Also bumped the versions the addon is listed as compatible with here on EsoUI so maybe people will see it now
Last edited by GetBackYouPansy : 08/22/14 at 12:46 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.