(20 Kb)
Updated: 06/06/19 11:51 AM
File Info
Elsweyr (5.0.5)
Updated:06/06/19 11:51 AM
Created:06/04/19 12:41 PM
Monthly downloads:275
Total downloads:638
Version: 5.0.2
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


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.


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.


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.

    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_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.

  • 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?
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 (1)
File Name
06/04/19 12:41 PM

Post A Reply Comment Options
Unread 06/07/19, 06:25 PM  
AddOn Author - Click to view AddOns

Forum posts: 84
File comments: 396
Uploads: 2
Amazing Addon. Thank you very much.
Co-Author of the Addon BeamMeUp - feel free to check it out.

BankManagerRevived Slim Edition
-dropped some functions most ESO+ users does not need to have better performance with BMR -
all working mechancis are created from the original BMR authors - all credits to orignal authors
Report comment to moderator  
Reply With Quote
Unread 06/06/19, 03:47 PM  
scootter's Avatar

Forum posts: 11
File comments: 10
Uploads: 0
Very nice, thank you! I am looking forward to see how it goes in the guild house.
Report comment to moderator  
Reply With Quote
Unread 06/05/19, 10:00 AM  
ziggr's Avatar
AddOn Author - Click to view AddOns

Forum posts: 23
File comments: 179
Uploads: 8
Z-index weirdness

Originally Posted by EvilDave
Getting some odd z-indexes, e.g. clothing station icon appearing ontop of blacksmith icon that it should be behind. It's certainly not a game breaker, and it might just be that it's my layout that causes this issue.
Yeah, I get that same weird Z-indexing behavior. No idea what causes it, but it's on my list of lower-priority stuff that I'll look into eventually.
Last edited by ziggr : 06/05/19 at 10:28 AM.
Report comment to moderator  
Reply With Quote
Unread 06/05/19, 02:09 AM  

Forum posts: 0
File comments: 22
Uploads: 0
Getting some odd z-indexes, e.g. clothing station icon appearing ontop of blacksmith icon that it should be behind. It's certainly not a game breaker, and it might just be that it's my layout that causes this issue.

Report comment to moderator  
Reply With Quote
Unread 06/04/19, 08:19 PM  

Forum posts: 0
File comments: 22
Uploads: 0
THIS is so incredibly cool, thank you so much for this!

Report comment to moderator  
Reply With Quote
Post A Reply

Category Jump: