This Library allows addons to add custom pins to the compass.
This Library allows addons to add custom pins to the compass.
How to use:
First you have to add the pinType:
pinType is a unique string eg "MySkyshards"
pinCallback is a callback function which receives a pinManager (more further below)
layout is a table which specifies texture and other settings for the pins of this pinType
The callback function
The callback function is called everytime, the compass is refreshed.
This function creates the pins via the given pinManager (first and only parameter).
example:
CreatePin( pinType, pinTag, xLoc, yLoc )
pinType the pinType the created pin belongs to
pinTag an unique identifier for the pin. You can pass additional attributes to the pin via the pinTag, which can later be used (see layout for more information).
xLoc, yLoc position of the pin in normalized map coordinates. (0,0 = topleft, 1,1 = bottomright)
The layout table
The layout table must have the following keys:
maxDistance the maximal distance (in normalized map units) for the pin to be visible (it will slowly fade out, when the pin gets close to the maxDistance)
texture the filepath to the texture
optional keys:
FOV the field of view in radians. eg 2pi will result in the pin being always visible, pi means the pin is visible as long it is not behind the player.
sizeCallback a function which receives the pin, the angle between the player and the pin, the normalized angle (-1 = left border of the compass, 1 = right border of the compass, 0 = center of the compass), normalizedDistance (0 = same position as player, 1 = pin is at maxDistance)
This function can modify the size of the pin via pin:SetDimension(width, height)
If no function is given, the pin has a size of 32x32 and will become smaller if abs(normalizedAngle) > 0.25
additionalLayout another table with 2 components, each one needs to be a function.
The first one receives the same parameters as the sizeCallback function. It can be used to implement additional visual effects. eg: you could do something like pin:SetColor(1,0,0,1) to make the pin red.
The second function receives only a pin as parameter. As the pins are pooled (saved to be used again), the additional modifications of the pin need to be cleared again. So in the previous example this function should call pin:SetColor(1,1,1,1) to make the pin white again.
The pin object
a pin has the following attributes:
pin.xLoc x coordinate
pin.yLoc y coordinate
pin.pinType the pinType
pin.pinTag the pinTag
As the pin is the first given parameter in the layout callback functions, you can pass any data to these functions via the pinTag (eg an alternate texture that is different from the one specified in the layout table)
important functions
pin:SetAlpha(value) 1 = pin is opaque, 0 = pin is transparent. Usefull for fadeout effects.
pin:SetHidden(bool) if bool is true, the pin is invisible
pin:SetDimensions(width, height) sets the width and height of the pin (usefull if you want to implement your own a zoom effect near the border or something like that)
pin:SetColor(r, g, b, a) changes the pins color. you can create some kind of highlighting effect with this.
pin:GetNamedChild( "Background" ) returns the texture control.
ABOUT THIS LISTING
This page describes CustomCompassPins by Shinni. The description and screenshots are the author's own, imported from their listing on ESOUI on 31 August 2026: https://www.esoui.com/downloads/info185-CustomCompassPins.html
Mythiq.net hosts no files for it. The download button goes straight to the release file on cdn.esoui.com, so you are downloading from the author's own host, not from a copy of ours.
The download count, rating and comments on this page start at zero and count Mythiq.net only. The source's own figures are not copied here — they measure a different site, and a number that cannot be checked against our own ledger is not worth printing.
Requirements
Game version
11.0.0
API VERSION
Built for ESO API version 11.0.0. After a patch the game marks add-ons built for the previous API as out of date; the "Allow out of date add-ons" checkbox in the add-on menu loads them anyway, and most work.
LIBRARIES
Many ESO add-ons depend on a shared library — LibAddonMenu-2.0 above all — which is installed separately, exactly like an add-on. A dependency that is missing shows as the add-on simply not appearing in the list.
CONSOLE
Add-ons are PC and Mac only. There is no way to load them on console.
Installation
1. Download the archive with the button on this page and unzip it.
2. Move the unzipped folder into your add-ons directory:
Windows — Documents\Elder Scrolls Online\live\AddOns
3. Start the game, and at the character select screen click Add-Ons.
4. Tick the add-on. If it is greyed out and marked out of date, tick "Allow out of date add-ons" at the top of the same panel.
5. Log in. Most add-ons need a /reloadui after they are first enabled.
UPDATING
Delete the old folder first. ESO loads everything it finds, and two copies of one add-on is the usual cause of "an add-on has produced an error" on login.
This release downloads from cdn.esoui.com, not from us, so
there is no checksum to compare against. Scan the archive before you unpack it.
v 1.35, v 1.36, v1.37
- Optimizations for synchronizing map pin filters with compass pins
v 1.34
- Restored arguments for additionalLayout to access distance of compass pins
v 1.33
- Optimizations for better compatibility with U46
v 1.32
- fixed lua error that occurs on deadlands PTS
v 1.31
- added name tags for Scootworks
v 1.30
- updated api version and added IsLibrary tag
v 1.29
- updated api version for those that use the lib as standalone
v 1.29 (Shinni)
- adding multiple pins with the same pinTag doesn't result in stuck pins anymore
v 1.28.1 (Shinni)
- changed how pins are indexed, individual pins can now be deleted and accessed directly
- removed a buggy background texture that would display behind the pin's real texture
- updated API version
v1.26 (Garkin)
- updated API version
- minor changes in callbacks
v1.25 (Garkin)
- changed timing of WorldMap update, so shuttering when map is closed should be less noticeable
v1.24 (Garkin)
- update from version 1.21 now should work correctly
v1.23 (Garkin)
- fixed bug introduced in 1.22, map should be updated correctly now
v1.22 (Garkin)
- fixed bug where library could have loaded pins for different map
v1.21 (Garkin)
- changed way to detect map change, it should be more efficient
- :AddCustomPin method now checks if arguments are valid
- callback has now just one argument mapName (eg. "auridon/auridon_base"):
CALLBACK_MANAGER:RegisterCallback("CustomCompassPins_MapChanged", function(mapName) end)
v1.20 (Garkin)
- updated APIversion to 100004
- changed GetDistanceCoefficient function
- changed update frequence from 10ms to 20ms.
- added callback "CustomCompassPins_MapChanged". To register for callback use:
CALLBACK_MANAGER:RegisterCallback("CustomCompassPins_MapChanged", function(zone, subzone) end)
v1.19 (Garkin)
- fixed issue with invalid map size
v1.18 (Garkin)
- another fix for refreshing pins and distance coefficient
v1.17 (Garkin)
- fixed bug with refreshing pins
v1.16 (Garkin)
- different method to detect map change, previous didn't work when player had no quests.
v1.15 (Garkin)
- fixed possible issue with distance coefficient
- added addon manifest (.txt)
- added delay to update function
v1.14 (Garkin)
- compass distance is now scaled with the mapsize (approximate)
v1.13
- when creating and removing a lot of pins the pinTypes could mix up, resulting in incompabilities of different addons
v1.12
- only create controls when needed
v1.11
- fixed an error where one addon could accidentally delete the pins of other addons.
v1.1
- released
Off-site on cdn.esoui.com —
no checksum, because we never held this file.
Link checked by our review team on 31 Aug 2026.
Tell us if something is wrong — a file that will not work, content taken from
someone else, or anything that looks unsafe. Reports go to our review team, not
to the author.
We use cookies to ensure that we give you the best experience on our website and improve your experience. By continuing to use this site you consent to such use of cookies.