InstanceTime : Instance Timer App



InstanceTime 1.0.1

This is a dual-timer for PoE instances to help you keep track of how much time you have before your "empty" instance closes. It's released under the LGPL v3 as free, open-source software.

In PoE, instances with no players currently inside will expire in either 8 or 15 minutes. For instances that connect to other instances (ie: more than one exit/entrance), the time limit is 15 minutes. For instances that have no other connections, the time limit is 8 minutes.

Download: InstanceTime 1.0.1 5.38MB (this views the file, click download button on this page)

The download includes the app itself as well as supporting files, documentation, source code, and all third party files.

Update Log
──────────────────────────────────────────────────────────────────────────
Spoiler
11/23/2015, v 1.0.1: Fix for not correctly finding and running PoE withing right-click menu. Removed experimental fullscreen mode.


Examples
──────────────────────────────────────────────────────────────────────────






Usage
──────────────────────────────────────────────────────────────────────────




More Information
──────────────────────────────────────────────────────────────────────────

The included readme text file...
Spoiler
InstanceTime 1.0.1
3rd party app for use with Path of Exile
Freely distributed under the LGPL v3
November, 2015

-----===[ System Requirements ]===-----
If Path of Exile runs on your Windows system, InstanceTime will run. Requires at least Windows 2000, but only tested in Windows 7 so far. This application was compiled in AutoHotkey from a script file, so the requirements are tied to AutoHotkey 1.1.22.09 and the functions InstanceTime employs within that script file.


-----===[ How To Operate ]===-----
1.) Extract the compressed zip file to any location (it will extract to a new folder)
2.) Run the InstanceTime executable (InstanceTime.exe)
3.) Use the hot keys on their own, or while Path of Exile is running.


-----===[ Hot Keys ]===-----
By default, the following hotkeys are active...
● Number Pad Add (+) Key:........starts the timer
● Number Pad Subtract (-) Key:..cancels the current timer
● Number Pad Divide (/) Key:......toggles config mode for the following hot keys...
__○ Number Pad Arrow Keys:......moves the timer on the screen 10 pixels
__○ [Shift] NumPad Arrow Keys:..moves the timer on the screen 1 pixel
__○ [Alt] NumPad Arrow Keys:.....moves the timer on the screen 100 pixels


-----===[ Files in InstanceTime.zip ]===-----
_license.rtf...........license for this application
_readme.txt..........this file
InstanceTime.exe..main executable to run
settings.ini...........settings file
tag.png...............the image shown to the left of the timer
tick_soft.wav.......a slightly louder tick sound to use in the settings.ini file (CC License)
tick_softer.wav....default tick sound file (CC License)
tick_warning.wav..final warning sound file (CC License)
[source]
....3rd_Party_Audio.zip...........the two audio files downloaded from FreeSound.org
....InstanceTime.ahk..............AutoHotkey source code for the application
....InstanceTime.ico...............icon for the application
....InstanceTime_Icon.psd......Adobe Photoshop file used to create the icon


-----===[ Notes ]===-----
I created InstanceTime for my own use, but quickly realized it might be of value to the Path of Exile (PoE) community. So I created additional options, documented the script, rolled it into a small application, and released it to the community under a free software license. If you feel that InstanceTime is of some value to you, then please "pay it forward" by contributing back to the community in your own way.

Feel free to edit the original AutoHotkey script file as desired and re-compile using AutoHotkey. The script file is commented and organized in a manner that hopefully makes it easy to read. Please note that this app uses some Windows DLL calls to achieve its functionality, so it will need to be edited to work with other operating system replacements for AutoHotkey, such as AutoKey for Linux.

One stumbling block when editing and compiling your own AutoHotkey scripts: file paths are relative to your source files with includes, not your final compiled executable.

InstanceTime is safe to use as a dual countdown timer outside of PoE.

Timers inside PoE are based on having empty instances open (instance without players in them), not the portal you cast. Therefore PoE's own internal timer starts when you leave an instance, not when you cast a portal. So start your timer after you've entered your portal or have taken the waypoint portal. The first timer is set by default to 8 minutes, which is for area instances that do not have more than one entrance/exit. The second timer is set by default to 15 minutes, which is for area instances that have more than one connection to another area.


-----===[ Settings File ]===-----
The settings.ini file stores all of the user preferences for InstanceTime. It is not required for InstanceTime to function. If InstanceTime is launched without the settings.ini file, it will use default values for those options. InstanceTime will also make changes to the settings.ini file whenever a user enters configuration mode within InstanceTime. The file is commented, and you are welcome to make changes to it.


-----===[ Known Issues ]===-----
● While InstanceTime is running, the "hot keys" it uses on the number page will not be passed through to any other application. This is to prevent hot keys from accidentally triggering multiple times, or to cause confusion by activating two tasks at the same time. In a future version I might try to find a way around this, but for now the number pad is usually a very under-utilized set of keys on the keyboard. I avoided PgUp/PgDn since this would interfere with the default bindings for camera zoom in PoE.


-----===[ License & Credits ]===-----
Created by cipher_nemo, Copyright 2015. This script and any associated files authored by cipher_nemo are released upon the GNU Lesser General Public License (LGPL v3): http://www.gnu.org/licenses/lgpl-3.0.en.html

~~ Other files included with this package ~~
● Clock Tick (tick.wav) by Jagadamba, CC license, https://freesound.org/people/Jagadamba/sounds/254315/

● Small Carriage Clock Sound (tick_warning.wav) by acclivity, CC license, https://freesound.org/people/acclivity/sounds/30608/


-----===[ Useful Resources ]===-----
1.) AutoHotkey: http://ahkscript.org/
Very powerful script engine that allows hooks into almost anything. Super small footprint for compiled binaries makes distributing quick applications very easy. InstanceTime is based upon an AutoHotkey script and its powerful yet tiny engine.

2.) FreeSound.org: https://freesound.org/
I found the two sound files I use for InstanceTime on this site. The best fact is that this site utilizes the CC license, which allows me to redistribute those sound files for free provided I do not use them for commercial use and attribute the authors.


The settings.ini configuration file included with the app...
Spoiler
[General]
; General options for InstanceTime...
; values in 1 or 0 (true or false),
; and PoE names/locations in strings
AudibleWarningOnTimer1=1
AudibleWarningOnTimer2=1
MuteSound=0
PathOfExileExecutableLocation=C:\Program Files (x86)\Grinding Gear Games\Path of Exile\
PathOfExileExecutableName=PathOfExile.exe

[Timing]
; Timing of specific events...
; InventoryOpenAndCloseDelay is in ms
; DefaultControlDelay is in ms
; TimerFinishCloseDelay is in seconds
; default timer1 and timer2 lengths: 480 and 900
; TriggerWarning is for turning yellow,
; TriggerAlert is for turning red,
; TriggerAudibleAlert is for playing "TimerWarning"
TimerFinishCloseDelay=3
Timer1Length=480
Timer2Length=900
; set any Trigger to -1 to disable
TriggerWarning=90
TriggerAlert=45
; this is applied only to the final, 15 minute timer...
TriggerAudibleAlert=20

[Position]
; Position of timer on screen...
; X and Y coordinates as reported by operating system,
; change these to move timer, eg: topleft is X=0, Y=0
X=10
Y=30

[Colors]
; Possible colors...
; Black, Silver Gray, White, Marron, Red, Purple, Fuchsia,
; Green, Lime, Olive, Yellow, Navy, Blue, Teal, Aqua,
; or any 6-character hex value (eg: EEAA99)
ColorNormal=Lime
ColorWarning=Yellow
ColorAlert=Red
; do not use ColorAlpha's value in any colors above,
; change ColorAlpha if you want to use its current color
ColorAlpha=554455

[Sounds]
; Sounds: file name of sound file to play,
; uses the folder of the script file as its starting path,
; so copy your own files to this path, or use relative path,
; Example: ..\..\MyFolder\mysound.wav
TickSound=tick_softer.wav
TimerWarning=tick_warning.wav

[Portal]
; Settings that affect opening a portal with a scroll...
; Due to GGG's current policy, these options are no longer
; available. They're listed here for historical purposes
; for when I removed the code that performs this feature
PathOfExileWindowName=Path of Exile
OpenPortalBeforeTimer=0
CloseInventoryAfterPortal=1
InventoryOpenAndCloseDelay=50
DefaultControlDelay=20
PortalScrollX=1883
PortalScrollY=807
KeyInventory=i
KeyCloseAll=Space
KeyRightClick=RButton
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▒▒▒▒░░░░░ cipher_nemo ░░░░░▒▒▒▒ │ Waggro Level: ♠○○○○ │ 1244
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Last edited by cipher_nemo on Nov 23, 2015, 11:18:33 AM
As a note of reference: I released this app yesterday as "PortalTime", but it had to be removed. I thought I knew GGG's stance on the one task/action macro policy, but it apparently violated that.

So as a result I've removed all automatic portal scroll usage with this timer app and re-released it as "InstanceTime". I use the timer all the time to know how long I have before empty instances close on me, especially if I'm running back and forth to vendor loot.

Since I'm not at end-game yet, I will sometimes listen to all of the quest voice-overs (read the text) at each town area. Doing that, along with organizing my stash, swapping out gems, vendoring loot, etc., and I can easily go over the 8 or 15 minute mark. It's nice to have that time automatically tracked for me.

Feel free to let me know if InstanceTime has helped you, or if you have any feedback on changes for future versions.

Thanks, and Enjoy! :-)
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▒▒▒▒░░░░░ cipher_nemo ░░░░░▒▒▒▒ │ Waggro Level: ♠○○○○ │ 1244
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Some of the possible directions I'm thinking of going with InstanceTime is to...

1.) Allow you to set multiple timers at once. Example: the NumPad+ key adds a new timer to the queue, which has count downs for both 8 and 15 minutes in the same timer. Add as many as you like (may be a max of 4?).

2.) Open world map and hover over a location to get its name, then use a hot key to grab a small image box containing that name and start a timer. The timer would then have that image as its header. This would be nice to keep track of timers for different instances in the feature listed above.

3.) Move the dual timer into one single timer, with a segment to divide the 8 and 15 minute mark.

Thoughts?


Example:

▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▒▒▒▒░░░░░ cipher_nemo ░░░░░▒▒▒▒ │ Waggro Level: ♠○○○○ │ 1244
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
11/23/2015, v 1.0.1: Fix for not correctly finding and running PoE withing right-click menu. Removed experimental fullscreen mode.
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▒▒▒▒░░░░░ cipher_nemo ░░░░░▒▒▒▒ │ Waggro Level: ♠○○○○ │ 1244
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀

Report Forum Post

Report Account:

Report Type

Additional Info