Quantcast
Download
(21 Kb)
Download
Updated: 08/28/20 05:11 PM
Pictures
File Info
Compatibility:
Greymoor (6.0.5)
Updated:08/28/20 05:11 PM
Created:06/04/19 12:41 PM
Monthly downloads:462
Total downloads:9,876
Favorites:39
MD5:
HomeStationMarker  Popular! (More than 5000 hits)
Version: 6.0.2
by: ziggr [More]
HomeStationMarker version 6.0.1 is ziggr's final release.

Ziggr does not play ESO enough to continue support.

Home Station Marker

An add-on for Elder Scrolls Online that draws 3D markers over crafting stations in a player home.



Adapted from Shinni's HarvestMap and Marify's Confirm Master Writ.

Originally written to help visitors find stations when crafting master writs with WritWorthy.

Follow development on GitHub

Libraries

Required Libraries:

Optional Libraries, recommended:
  • Baertram's LibSets
    Allows you to type /hsm Alessia cl instead of /hsm 82 2 for Alessia's Bulwark clothier station.

FAQ

Why don't I see any markers?

HomeStationMarker starts out not knowing any station locations. Once it has some station locations recorded to SavedVariables, it can show markers for those stations.
  1. Run around the player house and interact with a few crafting stations, such as Enchanting or Armor Master Blacksmithing.
  2. /hsm enchanting or /hsm armor bs to show the above marker.
    (This command requires Baertram's LibSets.)

In your own house, or any house in which you are trusted enough to have "Decorator" access, you can replace step 1 with /hsm scanlocs to immediately teach HomeStationMarker the location of every crafting station in the house.

Learning a station location after requesting a marker for it will not show a marker for that station. The marker will appear next time you enter the house or /reloadui.

Why are the markers not perfectly aligned with their stations?

When HomeStationMarker records a crafting station's location from you interacting with that station, HomeStationMarker actually records your player's position, not the crafting station's.

The API to learn a station's location is restricted to a house's owner or guests with "Decorator" access. For all other players, this is as close as I can get it.

Slash Commands

A few commands to help while testing, probably not useful to players:

/hsm <set> <station>

Toggle a marker above the given station. Can omit either argument.
  • /hsm alchemy toggles a marker over an alchemy station
  • /hsm alessia's blacksmithing toggles a marker over the Alessia's Bulwark blacksmithing station

This is mostly for testing/debugging this add-on. The simplistic string matching here was designed for, and tested on, EN English only. If it doesn't work in DE German, sorry.

Requires Baertram's LibSets

Crafting station abbreviations

Nobody wants to type "Jewelry Crafting Station".
  • two-letters: bs, cl, ww, jw, al, en, pr
  • first few letters: black, cloth, wood, jewel

Set abbreviations
  • first few letters: alessia, twice-born, eternal
  • tbs, nmg, juli, kags, seducer

Uppercase and punctuation ignored.

/hsm forgetlocs [all]

Forget all station locations for current house, or all houses if /hsm forgetlocs all. Use /hsm forgetlocs in a house after moving any crafting stations. Deletes all markers in current house (or all houses if /hsm forgetlocs all) as a necessary side effect.

/hsm scanlocs

Teach HomeStationMarker the location of every crafting station in this house.

Requires "Decorator" access, which you automatically have in your own houses, and rarely ever have in anybody else's house.

Not Supported

I have no desire to add these ever:
  • custom markers
  • colors
  • per-add-on sets of markers

No thank you. That's an additional API and complexity that I don't want to spend my days supporting.

API

Code:
HomeStationMarker.AddMarker(setId, stationId)
    Increment ref count for <setId, stationId>.
    Show a marker for that station if in player housing and its
    location is known.
    Return true if shown, false if not shown or was already shown.

HomeStationMarker.DeleteMarker(setId, stationId)
    Decrement ref count for <setId, stationId>.
    Hide any marker for that station if refcount hits 0.
    Return true if refcount hit zero and there was a request for that marker.

HomeStationMarker.DeleteAllMarkers()
    Reset all ref counts to zero.
    Delete all requests for markers.
    Hide any markers.

- setId:     integer set bonus ID, such as 82 for Alessia's Bulwark.
             nil or string "no_set" for set-less stations such as Alchemy
             or Enchanting.

- stationId: integer crafting type such as CRAFTING_TYPE_BLACKSMITHING or 1.
Why RefCount?

Reference counts free up other code from worrying about whether they need a station for two or more crafting requests, and whether the completion of a request means it is time to remove the marker or not. Let the refcounts do the worrying for you.

Ref counts also help if multiple add-ons use HomeStationMarker: what if WritWorthy needed a station, but some other add-on also needed that same station. If either one removed the marker, the other add-on's requested marker would end up lost.

RefCount/Marker Desync

The above 3 API functions are the only ones that touch or see the ref counts.
Slash commands such as /hsm <set> <station> bypass the ref count and toggle the marker regardless of API requests.

FPS Cost

Each marker slows down your frames per second.

This add-on also slows down frames per second while in player housing:

zo_callLater : a periodic task updates each marker rotation 8 times per second. Only registered within player housing.

EVENT_CRAFTING_STATION_INTERACT
EVENT_CLIENT_INTERACT_RESULT
EVENT_DYEING_STATION_INTERACT_START
EVENT_RETRAIT_STATION_INTERACT_START : Event listeners record station location each time you interact with a crafting station or assistant. This listener is only registered within player housing.

EVENT_PLAYER_ACTIVATED : An event listener hides all of a house's markers when you exit player housing, shows that house's previously hidden markers when you enter player housing.

Scene Listener : An event listener that shows/hides all markers when the HUD is shown/hidden while in player housing. Hides the markers when you're in the inventory/bank/dialog/whatever scene, unhides when you're back to walking around the house.

SavedVariables
  • station locations: for each player house: each known crafting station's location
  • requested markers: list of set and station ids for each requested marker
  • reference counts: keep track of how many times a marker has been requested via API.

To Do
  • Why the z-index weirdness?
6.0.2 2020-08-28
  • RU translation by DrakeRulo. Thank you!

6.0.1 2020-06-03
  • `/hsm clear` to clear all markers and refcounts. Retains station locations.

5.3.1 2020-02-28
  • Fix EN-only bug where `/hsm scanlocs` did not correctly register with LibSlashCommander.

5.2.1 2019-11-24
  • Baertram's DE translations. Thank you!

5.0.2 2019-06-06
  • Stop replacing perfectly good /hsm scanlocs location data with less good data from a player's location while interacting with a station.
  • Gather assistant, transmute station, outfitter/dye station, and mundus stone locations from interacting with them.
  • Add Elsweyr assistants Ezabi and Fezez.

5.0.1 2019-06-04
  • Initial release.
Archived Files (6)
File Name
Version
Size
Uploader
Date
6.0.1
20kB
ziggr
06/03/20 09:23 PM
5.3.1
20kB
ziggr
02/28/20 11:32 PM
5.3.1
153kB
ziggr
02/28/20 03:19 PM
5.2.1
20kB
ziggr
11/24/19 03:22 PM
5.0.2
20kB
ziggr
06/06/19 11:51 AM
5.0.1
16kB
ziggr
06/04/19 12:41 PM


Post A Reply Comment Options
Unread 09/30/20, 01:46 PM  
Teva
 
Teva's Avatar

Forum posts: 0
File comments: 94
Uploads: 0
Re: Weird bug make persistent marks ..

Originally Posted by Eliran
For some reason, after crafting many writs, there is a small chance that the addon wont record I completed the writ, or if by a mistake I started the writ (aka removed the book) before I finished crafting, and therefore keep the station mark forever with writworthy >.<

There is literally no way to refresh or tell the addon to rescan if the writ still exist, the only way to fix it is to delete the entire addon data from the savedvariables ..

Problem is that you have to rescan the entire station all over again after

Could you please add a feature to force the addon to rescan itself and remove writs which don't exist anymore?

Thanks a lot! very apricated!
I can't help you with automating the process and it's certainly not a normal issue for me, but occasionally a writ doesn't go right with this process if the game crashes for example. So I can offer a tip easier than the process you go through as described above: type /hsm clear in the chatbox and it'll remove current markers so you can start the process anew.
Report comment to moderator  
Reply With Quote
Unread 09/30/20, 10:55 AM  
Eliran

Forum posts: 3
File comments: 3
Uploads: 0
Weird bug make persistent marks ..

For some reason, after crafting many writs, there is a small chance that the addon wont record I completed the writ, or if by a mistake I started the writ (aka removed the book) before I finished crafting, and therefore keep the station mark forever with writworthy >.<

There is literally no way to refresh or tell the addon to rescan if the writ still exist, the only way to fix it is to delete the entire addon data from the savedvariables ..

Problem is that you have to rescan the entire station all over again after

Could you please add a feature to force the addon to rescan itself and remove writs which don't exist anymore?

Thanks a lot! very apricated!
Report comment to moderator  
Reply With Quote
Unread 08/28/20, 05:12 PM  
ziggr
 
ziggr's Avatar
AddOn Author - Click to view AddOns

Forum posts: 26
File comments: 249
Uploads: 9
HomeStationMarker 6.0.2 with RU translations.

Thank you!

Added to zip file and uploaded as HomeStationMarker 6.0.2.

Originally Posted by DrakeRulo
For russian client players: (mediafire link)
Report comment to moderator  
Reply With Quote
Unread 08/28/20, 07:15 AM  
DrakeRulo

Forum posts: 0
File comments: 19
Uploads: 0
Report comment to moderator  
Reply With Quote
Unread 07/18/20, 11:24 PM  
Alassirana

Forum posts: 0
File comments: 24
Uploads: 0
alternate craft stations

At the urging of some of my guildmates, I changed out the standard cooking station for my elsweyr grill, which counts as a cooking station, but it doesn't show up to home station markers when using that for writs. I'm assuming that is also true of the 2 other 'alternate' cooking stations. I think there may also be another station with an alternate (alchemy), that would need to be similarly addressed. Could we get it so that these stations show up when we put them in? It makes it slightly easier when doing master writs if we realize we need to stop at those stations without having to look first.


thank you in advance for your effort.

Alassirana
Report comment to moderator  
Reply With Quote
Unread 07/13/20, 12:14 PM  
ziggr
 
ziggr's Avatar
AddOn Author - Click to view AddOns

Forum posts: 26
File comments: 249
Uploads: 9
To reset locations, /hsm forgetlocs then /hsm scanlocs .

Originally Posted by Frompa
how do i clear markers for stations ive moved? I have them floating around in my house for no reason
Report comment to moderator  
Reply With Quote
Unread 07/12/20, 05:16 PM  
Frompa

Forum posts: 3
File comments: 22
Uploads: 0
how do i clear markers for stations ive moved? I have them floating around in my house for no reason
Report comment to moderator  
Reply With Quote
Unread 06/03/20, 09:25 PM  
ziggr
 
ziggr's Avatar
AddOn Author - Click to view AddOns

Forum posts: 26
File comments: 249
Uploads: 9
/hsm clear

HomeStationMarker 6.0.1 just released with new /hsm clear command to clear all markers and refcounts.

Locations are not cleared. Use /hsm forgetlocs if you want something that drastic.

Originally Posted by AshleyDead
I have markers for writs I had to complete manually, or deselected from writworthy, tried disabling HomeStationMarker, reloading UI and re-enabling and they are still there. Is there another step I can take before re-installing?
Report comment to moderator  
Reply With Quote
Unread 06/03/20, 02:16 PM  
AshleyDead

Forum posts: 0
File comments: 1
Uploads: 0
Marker reset

I have markers for writs I had to complete manually, or deselected from writworthy, tried disabling HomeStationMarker, reloading UI and re-enabling and they are still there. Is there another step I can take before re-installing?
Report comment to moderator  
Reply With Quote
Unread 05/27/20, 05:19 AM  
DrakeRulo

Forum posts: 0
File comments: 19
Uploads: 0
Re: Error code when i use a any stations or when i log a character...

Originally Posted by Malvenue
(My game is in french)
Same for russian game.
Report comment to moderator  
Reply With Quote
Unread 05/20/20, 05:19 AM  
Gandamir

Forum posts: 12
File comments: 38
Uploads: 0
Reset Counts with Slash Command?

Hello,

I was wondering if there was a slash command to reset all item counts? I occasionally get out of sync when using WritWorthy and doing a large quantity of master writs.

Being able to tell HSM that I know for sure that everything is at 0 would be a nice way to clear this up so I don't have to edit the save file.

Thanks for a great time saving addon!
Report comment to moderator  
Reply With Quote
Unread 05/03/20, 04:10 AM  
Malvenue

Forum posts: 0
File comments: 1
Uploads: 0
Error code when i use a any stations or when i log a character...

Hello,
Thank's for your great add on and the time to you give for that
(My game is in french)
When i log any character or when i use any station, the add on give me that error code :

user:/AddOns/HomeStationMarker/HomeStationMarker.lua:201: attempt to index a nil value
stack traceback:
user:/AddOns/HomeStationMarker/HomeStationMarker.lua:201: in function 'HomeStationMarker.RegisterSlashCommands'
|caaaaaa<Locals> self = [table:1]{saved_var_version = 2, name = "HomeStationMarker", log_to_chat = F, inited = T, clientlang = "fr", SET_ID_ASSISTANTS = "assistants", saved_var_name = "HomeStationMarkerVars", debug_scan = F, SET_ID_NONE = "no_set", SET_ID_MUNDUS = "mundus", SET_ID_MISC = "misc"}, lsc = [table:2]{COMMAND_TYPE_BUILT_IN = 1, ERROR_INVALID_TYPE = "Invalid argument type", COMMAND_TYPE_EMOTE = 3, COMMAND_TYPE_ADDON = 4, ERROR_AUTOCOMPLETE_RESULT_NOT_VALID = "Autocomplete provider returned...", ERROR_CIRCULAR_HIERARCHY = "Circular hierarchy detected", COMMAND_TYPE_CHAT_SWITCH = 2, ERROR_CALLED_WITHOUT_CALLBACK = "Tried to call command while no...", ERROR_HAS_NO_PARENT = "Command does not have a parent...", ERROR_ALREADY_HAS_PARENT = "Command already has a parent", ERROR_AUTOCOMPLETE_NOT_ACTIVE = "Tried to get autocomplete resu...", WARNING_ALREADY_HAS_ALIAS = "Warning: Overwriting existing ..."}, langSlashCommandsEN = [table:3]{SC_FORGET_LOCS_ALL_CMD = "forgetlocs_all", SC_FORGET_LOCS_CMD = "forgetlocs", SC_SCAN_LOCS_CMD = "scanlocs", SC_STATION = "station", SC_SET = "set", SC_FORGET_LOCS = "Forget all station locations f...", SC_FORGET_LOCS_ALL = "Forget all station locations f...", SC_SCAN_LOCS = "Scan furnishings to learn stat...", SC_SET_STATION = "%s <%s> <%s>"} </Locals>|r
user:/AddOns/HomeStationMarker/HomeStationMarker.lua:1517: in function 'HomeStationMarker.OnAddOnLoaded'
|caaaaaa<Locals> event = 65536, addonName = "HomeStationMarker", self = [table:1] </Locals>|r
Last edited by Malvenue : 05/03/20 at 04:13 AM.
Report comment to moderator  
Reply With Quote
Unread 04/25/20, 03:40 AM  
Dark Wizard

Forum posts: 0
File comments: 36
Uploads: 0
This addon is causing problems with loading screens. After activating - I select character, press log in and waiting for ~20 minutes and stil "Requesting character load".

I can use only activating it ingame - reloadui and then deactivate.



UPDATE: Seems the problem is not with addon, but in servers...
Last edited by Dark Wizard : 04/25/20 at 04:13 AM.
Report comment to moderator  
Reply With Quote
Unread 04/11/20, 05:19 AM  
kaaylim

Forum posts: 0
File comments: 7
Uploads: 0
Error

Hi,

I've just installed the addon and have this error:

Code:
bad argument #1 to 'pairs' (table/struct expected, got nil)
stack traceback:
[C]: in function 'pairs'
user:/AddOns/HomeStationMarker/HomeStationMarker.lua:755: in function 'HomeStationMarker.InteractTargetToKey'
|caaaaaa<Locals> target_name = "atelier de joaillerie (adepte ...", self = [table:1]{saved_var_name = "HomeStationMarkerVars", SET_ID_ASSISTANTS = "assistants", inited = T, clientlang = "fr", log_to_chat = F, debug_scan = F, periodic_rotate = T, saved_var_version = 2, SET_ID_NONE = "no_set", SET_ID_MISC = "misc", SET_ID_MUNDUS = "mundus", name = "HomeStationMarker"}, t = [table:2]{} </Locals>|r
user:/AddOns/HomeStationMarker/HomeStationMarker.lua:734: in function 'HomeStationMarker.OnClientInteractResult'
|caaaaaa<Locals> event = 131078, result = 0, target_name = "atelier de joaillerie (adepte ...", self = [table:1] </Locals>|r
And when I try to interact with a station :

bad argument #1 to 'pairs' (table/struct expected, got nil)
stack traceback:
[C]: in function 'pairs'
user:/AddOns/HomeStationMarker/HomeStationMarker.lua:755: in function 'HomeStationMarker.InteractTargetToKey'
|caaaaaa<Locals> target_name = "atelier de joaillerie (adepte ...", self = [table:1]{saved_var_name = "HomeStationMarkerVars", SET_ID_ASSISTANTS = "assistants", inited = T, clientlang = "fr", log_to_chat = F, debug_scan = F, periodic_rotate = T, saved_var_version = 2, SET_ID_NONE = "no_set", SET_ID_MISC = "misc", SET_ID_MUNDUS = "mundus", name = "HomeStationMarker"}, t = [table:2]{} </Locals>|r
user:/AddOns/HomeStationMarker/HomeStationMarker.lua:734: in function 'HomeStationMarker.OnClientInteractResult'
|caaaaaa<Locals> event = 131078, result = 0, target_name = "atelier de joaillerie (adepte ...", self = [table:1] </Locals>|r
My game is in French.

Cheers
Report comment to moderator  
Reply With Quote
Unread 03/31/20, 12:11 PM  
Snow

Forum posts: 0
File comments: 52
Uploads: 0
JC Stations for new Cyrodiil Sets not added

Hi,
HomeStationMarker refuses to add the jewlery craftings stations of the new cyrodiil sets: set ids 480, 481 and 482.

According to LibDebugLoggers Log, the problem is that it does not get a set_id for the jc stations.
If I understand your code correct you use GetSmithingPatternResultLink to determin the id.
On all other set stations: /script d(GetSmithingPatternResultLink(unpack({ 3,1,2,1,1,0 })))
gives a vaild link, but not on the three new ones - [Empty String] is returned.
I got a valid link on the new ones when I change the patternIndex from 3 to 4, but this does not work on the old stations.

Hope you find a way around this. - Maybe this is the same problem preventing Writworthy to autocraft jc writs on the new stations.

Regard
Snow
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: