For my use case I need one central mod to control the map information of where the player is. I don't want to call SetMapToPlayerLocation() and CALLBACK_MANAGER:FireCallbacks("OnWorldMapChanged") at various times in 5 mods.
Intent
For my use case I need one central mod to control the map information of where the player is. I don't want to call SetMapToPlayerLocation() and CALLBACK_MANAGER:FireCallbacks("OnWorldMapChanged") at various times in 5 mods.
With this library used as a dependency for the intended mods, FireCallbacks:OnWorldMapChanged is only used when GetMapTileTexture() changes. This reduces the chance that the mods it is used with are changing the map too frequently.
Grated SetMapToPlayerLocation() is called when the player closes the map and for events EVENT_ZONE_CHANGED, EVENT_LINKED_WORLD_POSITION_CHANGED, and EVENT_PLAYER_ACTIVATED to make sure the map information is current.
However, it happens within the library not the mods that depend on it resulting in fewer calls to those API commands for maps.
Intended use, for now
This will be used eventually with Destinations, Quest Map, LibQuestData, Skyshards, Lorebooks, and ScrySpy.
You could use it to convert a zoneId, mapIndex, or texture name mod to mapIds only. Although some map names and textures have multiple mapIds. You would have to manually convert anything that has multiple mapIds.
Current State
Work in progress but since it will be used with 5 mods at least then I will upload it and update it as I go.
Upcoming Additions
A pseudo mapIndex for all the various submaps in a zone. This can be used to gather pins for the entire map all at once. If you format your pin data with proper keys then you can display pins for both the mapId for the city and the zone itself without the need for two pin locations. Only needing a separate pin if the map pin information is from a Delve or Public dungeon where the player is underground.
Possible addition for a specialized scale that will place a map pin from a subZone or Dungeon map on the main zone without the need for additional pin data. This is a current system for Quest Map. The scale is created by measuring the map after placing a player waypoint. Written by CaptainBlagbird for Quest Map.
Also possible API for attaching map pins to the POI using something like GetPOIMapInfo() rather then a scale system as mentioned above. Destinations uses a table for the unknown POI built from the available POIs on the current map. As long as you know which POI you need the pin to be close to then the pin would use the POIs coordinates.
Slash Commands
NOTE: I use the DebugLogViewer's Quick View to see the player location information
/lmdgetpos : Returns the player location information and coordinates
Current API
local LMD = LibMapData
Global Variables
Note: Only use the game API for the x,y coordinates GetMapPlayerPosition("player") and if used with LibGPS then convert the local coordinates to global or whatever you need.
for i = 1, lib.MAX_NUM_MAPIDS do
mapName = GetMapNameById(i)
if mapName ~= "" then
<< Do Stuff>>
end
end
Functions
lib:GetMapIdByTileTexture(tileTexture)
Given: String, full texture name of map see lib:GetMapTileTextureFromMapId()
Returns a table of the mapId numbers for that texture name. There can be more the one mapId.
lib:GetMapIdByMapName(mapName)
Given: String, can be obtained with GetMapNameById()
Returns a table of the mapId numbers for the given map name. There can be more the one mapId.
lib:ReturnSingleIndex(indexTable)
Given: Table
Returns a single value from a mapId table such as GetMapIdByMapName(). Returns nil and a LibDebugLogger warning if there is more then one mapId.
lib:GetZoneMapIdFromMapId(mapId)
Given: integer
Returns the mapId for the zone regardless of the map you are on. For example if you are in The Hall of the Dead it will not return the mapId of Windhelm, you will get the mapId for Eastmarch.
lib:GetZoneMapIdFromZoneId(zoneId)
Given: integer
Returns the mapId for the zone regardless of the map you are on. For example if you are in The Hall of the Dead it will not return the mapId of Windhelm, you will get the mapId for Eastmarch.
lib:GetMapTileTextureFromMapId(mapId)
Given: integer
Returns the first tile index from GetMapTileTextureForMapId() for the given mapId for use with GetMapIdByTileTexture() or for use with your mod if you prefer using map textures to mapId.
This page describes LibMapData by Sharlikran. The description and screenshots are the author's own, imported from their listing on ESOUI on 3 October 2026: https://www.esoui.com/downloads/info3353-LibMapData.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.3.0
API VERSION
Built for ESO API version 11.3.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.
- Rough Draft for Seasons of the Worm Cult Pt2 U48
v117
- Rough Draft for Seasons of the Worm Cult Pt1 U46
v116
- Added subZoneId when present
v115
- API bump for Update 44
v114
- Added Eyevea
v113
- Rough Draft for Gold Road
v112
- API Bump
v111
- Rough Draft for PTS
v110
- API Bump
v109
- Added check for arubis
v108
- Added function for overland map for Destinations
v107
- More Updates to how switching zones or areas on the map alters the internal variables for use with other mods like Lorebooks and how they get their map pin information
v106
- Updated detection routines when player moves between areas
v105
- Added new zone data for future updates
v104
- Pre PTS Version
v103
- Hotfix for version mismatch
v102
- Added RegisterCallback and UnregisterCallback for updating pins or other map related information from LibMapData without the need for the mod to check and verify the map state independently of LibMapData
v101
- Hotfix for: LibMapData.lua:160: table index is nil
Off-site on cdn.esoui.com —
no checksum, because we never held this file.
Link checked by our review team on 3 Oct 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.