Download
(31 Kb)
Download
Updated: 01/06/22 04:16 PM
Pictures
File Info
Compatibility:
Deadlands (7.2.5)
Updated:01/06/22 04:16 PM
Created:06/04/19 12:41 PM
Monthly downloads:535
Total downloads:50,139
Favorites:103
MD5:
HomeStationMarker  Popular! (More than 5000 hits)
Version: 7.2.1
by: ziggr [More]
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

Export/Import: Finding stations in guild halls

Have a huge guild hall with hundreds of stations? You can now save a copy of your guild hall's station location list to Discord (or anywhere, it's just a text file). Then other players can import that location list to make it easier to find stations.

Guild Masters: /hsm export
  1. Visit your guild hall and type /hsm export to get a dump of all the stations in your house.
  2. Copy this text to a text file and store it on your guild's Discord server or pastebin or wherever.



Guild Members: /hsm import

To import a list of station locations, type /hsm import. This opens a window where you can paste the huge list of stations that you downloaded from your guild's discord server or wherever.
  1. Download a list of stations from your guild. This is a text file on your guild's discord server or pastebin or somewhere. Ask your guild master for it. Point them to this page if they've never heard of HomeStationMarker.
  2. Open the above text file and copy its contents to the clipboard.
  3. In ESO, type /hsm import to make the HomeStationMarker Import window appear.
  4. Paste text into the importer window
  5. Click "Import" to add the results to your saved variables.



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
7.2.1 2022-01-06
  • Update 32/ESO 7.2.0/API 100035/Deadlands
  • Factotum assistants
  • Crow assistants
  • Daedric enchanting station
  • Solitude Grill provisioning station
  • Thank you, pesakm, for all these additions!

7.0.4 2021-06-08
  • DE FR RU placeholder strings

7.0.3 2021-06-07
  • Elsweyr Grill now shows up as a provisioning station
  • Strip CR carriage return characters during import
  • /kowtow to pesakm for the wave of fixes

7.0.2 2021-05-30
  • No longer store refcounts in saved variables. Add-ons that use HomeStationMarker must be updated to restore markers after every load (WritWorthy 7.0.3 2021-05-30 has already been updated).
  • /hsm export shows new exporter window with current house's station location list suitable for copying and sending to other players.
  • /hsm import shows new importer window where other players can paste and import text copied from the above exporter window.

7.0.1 2021-04-28
  • Update 30/ESO 7.0.0/API 100035/Blackwood
  • Jewelry station set detection fix from DeadMoroz. Thank you so much!

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 (11)
File Name
Version
Size
Uploader
Date
7.0.4
30kB
ziggr
06/08/21 12:09 PM
7.0.3
28kB
ziggr
06/07/21 08:45 AM
7.0.2
28kB
ziggr
05/30/21 12:56 PM
7.0.1
21kB
ziggr
04/28/21 11:14 AM
6.0.2
21kB
ziggr
08/28/20 05:11 PM
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 11/04/23, 06:30 PM  
highlandish

Forum posts: 0
File comments: 6
Uploads: 0
Re: Re: beam me up cold harbour estate scanlocation list to import

i did end up doing it myself, i used every station, exported to txt and uploaded to reddit recently, if anyone cares to look in the last week

very handy addon, made my life crafting writs so much better, thanks for the addon!

Originally Posted by Gamer1986PAN
Originally Posted by highlandish
can anyone who has decorate status to the beam me up guild hall pls do a /scanloc here and upload the text file here for all the crafting stations? will offer butterfly kisses to those who can
You can do this yourself since ZOS added the inspection mode. But probably the tables are going to be added into the grandmaster stations soon anyway because it works with writ worthy like a charm.
Report comment to moderator  
Reply With Quote
Unread 10/31/23, 06:47 PM  
Gamer1986PAN
AddOn Author - Click to view AddOns

Forum posts: 87
File comments: 641
Uploads: 2
Re: beam me up cold harbour estate scanlocation list to import

Originally Posted by highlandish
can anyone who has decorate status to the beam me up guild hall pls do a /scanloc here and upload the text file here for all the crafting stations? will offer butterfly kisses to those who can
You can do this yourself since ZOS added the inspection mode. But probably the tables are going to be added into the grandmaster stations soon anyway because it works with writ worthy like a charm.
Last edited by Gamer1986PAN : 10/31/23 at 06:50 PM.
Report comment to moderator  
Reply With Quote
Unread 10/31/23, 06:26 PM  
highlandish

Forum posts: 0
File comments: 6
Uploads: 0
beam me up cold harbour estate scanlocation list to import

can anyone who has decorate status to the beam me up guild hall pls do a /scanloc here and upload the text file here for all the crafting stations? will offer butterfly kisses to those who can
Report comment to moderator  
Reply With Quote
Unread 09/14/23, 03:55 PM  
Gamer1986PAN
AddOn Author - Click to view AddOns

Forum posts: 87
File comments: 641
Uploads: 2
Just a heads up, with the upcoming Update 40 there will be new crafting table that can create every set you feeded the table with. So there will be only needed 1 table for every craft like woodworker, blacksmith, clothier and jewelry.
Report comment to moderator  
Reply With Quote
Unread 03/18/23, 04:56 PM  
EmiruTegryfon
 
EmiruTegryfon's Avatar
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 1
Uploads: 7
Polish translation: EsoPL conflict

Hello,
I'm from a team that translates the game into Polish.
Our EsoPL Addon encountered a problem with your HomeStationMarker Addon.

Could you add this pl.lua language file to your addon for us to solve the problem?

Thank you in advance
Scribe of Tamriel
Emiru Tegryfon

Lua Code:
  1. --Polish translation by Emiru Tegryfon for Skrybowie Tamriel
  2. HomeStationMarker.LANG = HomeStationMarker.LANG or {}
  3. HomeStationMarker.LANG["pl"] = {
  4.   ["interact"] = {
  5.     ["BANKER"    ] = "Tythis Andromo, bankier"
  6.   , ["BANKER.2"  ] = "Ezabi Bankierka"
  7.   , ["MERCHANT"  ] = "Nuzhimeh Handlarka"
  8.   , ["MERCHANT.2"] = "Fezez Kupiec"
  9.   , ["FENCE"     ] = "Pirharri Przemytniczka"
  10.  
  11.   , ["APPRENTICE"] = "Czeladnik"
  12.   , ["ATRONACH"  ] = "Atronach"
  13.   , ["LADY"      ] = "Dama"
  14.   , ["LORD"      ] = "Lord"
  15.   , ["LOVER"     ] = "Kochanek"
  16.   , ["MAGE"      ] = "Mag"
  17.   , ["RITUAL"    ] = "Rytuał"
  18.   , ["SERPENT"   ] = "Wąż"
  19.   , ["SHADOW"    ] = "Cień"
  20.   , ["STEED"     ] = "Rumak"
  21.   , ["THIEF"     ] = "Złodziej"
  22.   , ["TOWER"     ] = "Wieża"
  23.   , ["WARRIOR"   ] = "Wojownik"
  24.   },
  25.   ["slash_commands"] = {
  26.     ["SC_SET"                 ] = "set"
  27.   , ["SC_STATION"             ] = "station"
  28.   , ["SC_SET_STATION"         ] = "%s <%s> <%s>"
  29.   , ["SC_FORGET_LOCS"         ] = "Zapomnij wszystkie lokalizacje stacji dla bieżącego domu, usuwa również wszystkie znaczniki dla bieżącego domu."
  30.   , ["SC_FORGET_LOCS_CMD"     ] = "forgetlocs"
  31.   , ["SC_FORGET_LOCS_ALL"     ] = "Zapomnij o wszystkich lokalizacjach stacji dla wszystkich domów, usuwa również wszystkie znaczniki dla wszystkich domów."
  32.   , ["SC_FORGET_LOCS_ALL_CMD" ] = "forgetlocs_all"
  33.   , ["SC_SCAN_LOCS"           ] = "Zeskanuj meble, aby poznać lokalizację stacji."
  34.   , ["SC_SCAN_LOCS_CMD"       ] = "scanlocs"
  35.   , ["SC_CLEAR_MARKS"         ] = "Usuń wszystkie znaczniki."
  36.   , ["SC_CLEAR_MARKS_CMD"     ] = "clear"
  37.   , ["SC_EXPORT"              ] = "Pokaż okno eksportu."
  38.   , ["SC_EXPORT_CMD"          ] = "export"
  39.   , ["SC_IMPORT"              ] = "Pokaż okno importu."
  40.   , ["SC_IMPORT_CMD"          ] = "import"
  41.   },
  42.  
  43.   ["export"] = {
  44.     ["WINDOW_TITLE"       ]  = "HomeStationMarker Export"
  45.   , ["WINDOW_TITLE_IMPORT"]  = "HomeStationMarker Import"
  46.   , ["PREAMBLE"    ]  =           "# Aby udostępnić lokację stacji domowych innym graczom należy,"
  47.                       .. "\n" ..  "# 1. Skopiuj cały ten tekst za pomocą CTRL+A następnie CTRL+C."
  48.                       .. "\n" ..  "# 2. Wyślij do innych graczy przez Discord lub w inny sposób."
  49.                       .. "\n" ..  "#    (Poczta ESO jest ograniczona do 700 znaków, to za mało dla"
  50.                       .. "\n" ..  "#     lokacji HomeStationMarker.)"
  51.                       .. "\n" ..  "#"
  52.                       .. "\n" ..  "# Aby zaimportować lokalizacje stacji:"
  53.                       .. "\n" ..  "# 1. Skopiuj cały tekst, wysłany poprzez Discord lub w inny sposób."
  54.                       .. "\n" ..  "# 1. Wpisz `/hsm import` w oknie czatu."
  55.                       .. "\n" ..  "#    To otworzy okno HomeStationMarker Import."
  56.                       .. "\n" ..  "# 2. Wklej tekst za pomocą CTRL+V."
  57.                       .. "\n" ..  "#"
  58.   , ["POSTAMBLE"   ]            = "# (end)"
  59.   , ["ERR_NOT_IN_HOUSE"             ] = "Działa tylko w domu gracza."
  60.   , ["ERR_NO_STATION_LOCATIONS"     ] = "Brak zlokalizowanych stacji dla tego domu. Spróbuj `/hsm scanlocs`"
  61.   , ["IMPORT_TEXT_DEFAULT"          ] = "# Wklej tekst tutaj za pomocą CTRL+V"
  62.   , ["IMPORT_BUTTON"                ] = "Import"
  63.   , ["IMPORT_VALUE_MISSING"         ] = "(brak)"
  64.   , ["IMPORT_ERROR_SERVER_MISMATCH" ] = "(zły serwer)"
  65.   , ["IMPORT_LABEL_SERVER"          ] = "serwer"
  66.   , ["IMPORT_LABEL_HOUSE"           ] = "dom"
  67.   , ["IMPORT_LABEL_OWNER"           ] = "właściciel"
  68.   , ["IMPORT_LABEL_STATION_COUNT"   ] = "liczba stacji"
  69.   }
  70.  
  71. }
Report comment to moderator  
Reply With Quote
Unread 01/03/23, 09:26 AM  
Gamer1986PAN
AddOn Author - Click to view AddOns

Forum posts: 87
File comments: 641
Uploads: 2
The sets "Macht der verlorenen Legion" and "Kralle des Waldgespensts" in german client both mark the "Kralle des Waldgespensts" tables but none of them do mark "Macht der Verlorenen Legion".


Here are the Data-strings from LibSets if that helps:

Code:
[410] = {wayshrines={379,379,379,}, traitsNeeded=4, dlcId=DLC_MURKMIRE	, zoneIds={726,726,726}, veteran=false	, setType=LIBSETS_SETTYPE_CRAFTED	, dropMechanic={LIBSETS_DROP_MECHANIC_CRAFTED,LIBSETS_DROP_MECHANIC_CRAFTED}	}, --Might of the Lost Legion / Macht der Verlorenen Legion   [Murkmire, Murkmire, Murkmire]

Code:
[679] = {wayshrines={527,527,527,}, traitsNeeded=3, dlcId=DLC_FIRESONG	, zoneIds={1383,1383,1383}, veteran=false	, setType=LIBSETS_SETTYPE_CRAFTED	, dropMechanic={LIBSETS_DROP_MECHANIC_CRAFTED}	}, --Claw of the Forest Wraith / Kralle des Waldgespensts   [Galen, Galen, Galen]
Report comment to moderator  
Reply With Quote
Unread 01/01/23, 12:50 PM  
tim99
 
tim99's Avatar
AddOn Author - Click to view AddOns

Forum posts: 22
File comments: 159
Uploads: 12
Hi, i would have a small feature request.
Could you display a simple chat message when you start scan locs (/hsm scanlocs) and when it's finished?


Something like:
CHAT_SYSTEM:AddMessage("Scanning stations in process...")
and

CHAT_SYSTEM:AddMessage("Scanning station finished")
Report comment to moderator  
Reply With Quote
Unread 11/02/22, 12:38 PM  
Octopuss
 
Octopuss's Avatar

Forum posts: 171
File comments: 809
Uploads: 0
Can't use the scan, it was just a guildhall where I have no permissions.
And running around like an idiot resulted in exactly nothing.
Also I have no idea what "interact with a few stations" means. That is magically supposed to indentify everything else around?
Last edited by Octopuss : 11/02/22 at 12:38 PM.
Report comment to moderator  
Reply With Quote
Unread 11/02/22, 07:54 AM  
Schrappe
 
Schrappe's Avatar

Forum posts: 6
File comments: 259
Uploads: 0
Originally Posted by Octopuss
Please someone explain to me like to an idiot how do I make this work with WritWorthy, because I just can't figure it out.
I ran around someone's home, randomly opening stations and then reloading the UI and relogging, and I still see no markers on anything.
The slash commands don't do anything.
I have some writs queued up and nothing.
You have to run the scan and walk around the place a bit until everything is saved. This can take a few minutes, e.g. 5-8 minutes for more than 250 stations. Then reload after the scan.
Last edited by Schrappe : 11/02/22 at 07:55 AM.
Report comment to moderator  
Reply With Quote
Unread 11/02/22, 07:22 AM  
Octopuss
 
Octopuss's Avatar

Forum posts: 171
File comments: 809
Uploads: 0
Please someone explain to me like to an idiot how do I make this work with WritWorthy, because I just can't figure it out.
I ran around someone's home, randomly opening stations and then reloading the UI and relogging, and I still see no markers on anything.
The slash commands don't do anything.
I have some writs queued up and nothing.
Report comment to moderator  
Reply With Quote
Unread 10/11/22, 06:13 PM  
pesakm
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 30
Uploads: 9
Data for Blackwood Provisioning Station

Code:
    -- Blackwood Provisioning Station
,   ["/esoui/art/icons/housing_uni_exc_housingu33provisioningsnakecampfire001.dds" ] = { set_id = nos, station_id = CRAFTING_TYPE_PROVISIONING    }
Report comment to moderator  
Reply With Quote
Unread 09/07/22, 10:04 AM  
pesakm
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 30
Uploads: 9
Data for Druidic Provisioning Station

Code:
   --Druidic Provisioning Station
,   ["/esoui/art/icons/housing_uni_inc_antdruidcookingtablehousing001.dds" ] = { set_id = nos, station_id = CRAFTING_TYPE_PROVISIONING    }

Originally Posted by Caaraamon
I don't know if this is still being updated, but I noticed the new Druid Provisioning Station antiquity from High Isle isn't being recognized.

I have no idea how to provide the info other than it's ID is 187802.
Report comment to moderator  
Reply With Quote
Unread 07/01/22, 06:17 PM  
Caaraamon

Forum posts: 0
File comments: 57
Uploads: 0
I don't know if this is still being updated, but I noticed the new Druid Provisioning Station antiquity from High Isle isn't being recognized.

I have no idea how to provide the info other than it's ID is 187802.
Report comment to moderator  
Reply With Quote
Unread 01/24/22, 12:39 PM  
pesakm
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 30
Uploads: 9
Data for "Anvil of Old Orsinium":
Code:
   --Anvil of Old Orsinium
,   ["/esoui/art/icons/housing_uni_inc_antaviloforsinium001.dds"         ] = { set_id = nil, station_id = CRAFTING_TYPE_BLACKSMITHING    }
Report comment to moderator  
Reply With Quote
Unread 01/06/22, 11:48 AM  
pesakm
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 30
Uploads: 9
Factotum Commerce Delegate and Factotum Property Steward

Data for "Factotum Commerce Delegate" and "Factotum Property Steward":
Code:
,   ["/esoui/art/icons/assistant_factotumbanker.dds"                      ] = { set_id = ast, station_id = sid.BANKER                    }
,   ["/esoui/art/icons/assistant_factotummerchant.dds"                    ] = { set_id = ast, station_id = sid.MERCHANT
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: