# Thread: Zones and coordinates --> World to Zone coordinates

1. ## Zones and coordinates --> World to Zone coordinates

Hi,

Lately I was looking for a list of all zones and their coordinates so I could calculate the ingame-coordinates of the player or the objects around the player.
It resulted in a file I extracted from one of the MPQ's. I would like to share it with you guys, might come in handy for your WoW-programming.
If this might help you in your programming, I can publish the new coordinates each release. Let me know if you want them.
Column 1 => ZoneID
Column 2 => Y1
Column 3 => Y2
Column 4 => X1
Column 5 => X2

How to calculate ingame offzet:
Code:
```Your character/object has an X and Y location (and Z, but not needed). Abbreviated with CharacterX and CharacterY. Your character is also in a ZoneID. These values can be extracted from memory.

Now;
1) Get Y1, Y2, X1, X2 from the list for the ZoneID
2) Calculate X2 - X1 --> Abbreviated with Xdifference
3) Calculate Y2 - Y1 --> Abbreviated with Ydifference
4) Calculate CharacterX - X1 --> Abbreviated with Xspace
5) Calculate CharacterY - Y1 --> Abbreviated with Yspace
6) Calculate Xspace / Xdifference and multiply the outcome by 100.
7) Calculate Yspace / Ydifference and multiply the outcome by 100.
8) Because the calculations of 6) and 7) can have a negative outcome, also make sure to use the ABS() function to make it positive
9) Or put everything together: ABS(  (CharacterX-X1)/(X2-X1) * 100 )   and ABS(  (CharacterY-Y1)/(Y2-Y1) * 100 )

Example(i removed decimals for clarity): Player in Elwynn Forrest (ZoneID = 12). Player position X = -9457, Y = -1360
1) Y1 = 1535, Y2 = -1935, X1 = -7939, X2 = -10254
2) 2315
3) 3470
4) -1518
5) -2895
6) -83,42939481
7) -65,57235421
8) X=65,57235421, Y=83,42939481
9) Look at 8```
Code:
```1|2137,5|-2760,417|-3941,667|-7206,25
3|-1902,083|-4972,917|-5854,167|-7900
4|-1193,75|-4856,25|-10583,33|-13025
8|-2081,25|-4589,583|-9535,416|-11208,33
10|833,3333|-1866,667|-9716,666|-11516,67
11|-389,5833|-4525|-2147,917|-4904,167
12|1535,417|-1935,417|-7939,583|-10254,17
14|-1962,5|-7250|1808,333|-1716,667
15|-975|-6225|-2033,334|-5533,334
15|-975|-6225|-2033,334|-5533,334
16|-3372,917|-8887,5|5381,25|1704,167
17|202,0833|-5543,75|1810,417|-2020,833
28|416,6667|-3883,333|3366,667|500
33|1743,75|-2356,25|-11016,67|-13750
38|-1993,75|-4752,083|-4487,5|-6327,083
40|3016,667|-483,3333|-9400|-11733,33
41|-833,3333|-3333,333|-9866,666|-11533,33
44|-1479,167|-4047,917|-8514,583|-10227,08
45|-1127,083|-4604,167|-141,6667|-2460,417
46|-464,5833|-3616,667|-6985,417|-9085,416
47|-1575|-5425|1466,667|-1100
51|-322,9167|-2554,167|-6100|-7587,5
65|3627,083|-1981,25|5575|1835,417
66|-600|-5593,75|7668,75|4339,583
67|1841,667|-5270,833|10197,92|5456,25
85|3033,333|-1485,417|3837,5|824,9999
130|3450|-750|1666,667|-1133,333
139|-2287,5|-6318,75|3704,167|1016,667
141|4235,417|-1639,583|11847,92|7931,25
148|3016,667|-3447,917|8222,916|3912,5
209|4500|300|1133,333|-1666,667
210|5443,75|-827,0833|9427,083|5245,833
215|2204,167|-3245,833|-168,75|-3802,083
267|1850|-3012,5|1481,25|-1760,417
331|1700|-4066,667|4672,917|829,1666
357|5441,667|-1508,333|-2366,667|-7000
361|1797,917|-4264,583|7237,5|3195,833
394|-1110,417|-6360,417|5516,667|2016,667
400|-433,3333|-4833,333|-3966,667|-6900
405|4233,333|-262,5|452,0833|-2545,833
406|3902,083|-1997,917|3404,167|-529,1666
440|-62,5|-7275|-5770,833|-10579,17
490|533,3333|-3166,667|-5966,667|-8433,333
491|2766,667|966,6666|2733,333|1533,333
493|-1381,25|-3689,583|8491,666|6952,083
495|-1397,917|-7443,75|3116,667|-914,5833
616|-929,1666|-5175|6195,833|3364,583
616|-929,1666|-5175|6195,833|3364,583
618|-991,6666|-7141,667|8793,75|4693,75
722|2766,667|-633,3333|3266,667|999,9999
796|1508,333|-800|1918,75|379,166
1176|1625|241,6667|2052,083|1129,167
1196|3275|-3275|2166,667|-2200
1377|2983,333|-1075|-5872,917|-8579,166
1497|873,1926|-86,1824|1877,945|1237,841
1519|1722,917|-14,58333|-7995,833|-9154,166
1537|-713,5914|-1504,216|-4569,241|-5096,846
1581|1966,667|-3033,333|1133,333|-2200
1637|-3506,354|-5245,729|2486,667|1327,083
1638|516,6666|-527,0833|-849,9999|-1545,833
1657|3187,5|1647,917|10464,58|9437,5
1977|-693,75|-2570,833|-11308,33|-12560,42
1977|-612,5|-2733,333|-11225|-12639,58
2017|-1766,667|-5166,667|4333,333|2066,667
2057|633,3333|-1166,667|600|-600
2366|7650|6562,5|-1500|-2225
2367|1854,167|-477,0833|3127,083|1572,917
2597|1781,25|-2456,25|1085,417|-1739,583
2677|633,3333|-2766,667|-6333,333|-8600
2817|1443,75|-1279,167|6502,083|4687,5
3277|2041,667|895,8333|1627,083|862,4999
3358|1858,333|102,0833|1508,333|337,5
3428|3033,333|1233,333|-7933,333|-9133,333
3429|3035,417|522,9166|-8233,333|-9908,333
3430|-4487,5|-9412,5|11041,67|7758,333
3433|-5283,333|-8583,333|8266,666|6066,667
3456|-2520,833|-4377,083|3597,917|2360,417
3457|-1191,667|-2950|-10389,58|-11562,5
3483|5539,583|375|1481,25|-1962,5
3487|-6400,75|-7612,208|10153,71|9346,938
3518|10295,83|4770,833|41,66666|-3641,667
3519|7083,333|1683,333|-999,9999|-4600
3520|4225|-1275|-1947,917|-5614,583
3521|9475|4447,917|1935,417|-1416,667
3522|8845,833|3420,833|4408,333|791,6666
3523|5483,333|-91,66666|5456,25|1739,583
3524|-10500|-14570,83|-2793,75|-5508,333
3525|-10075|-13337,5|-758,3333|-2933,333
3537|8570,833|2806,25|4897,917|1054,167
3557|-11066,37|-12123,14|-3609,683|-4314,371
3562|1935,417|1277,083|-1041,667|-1479,167
3606|-1525|-4025|6145,833|4479,167
3703|6135,259|4829,009|-1473,954|-2344,788
3711|6929,167|2572,917|7287,5|4383,333
3805|1852,083|583,3333|568,75|-277,0833
3820|2660,417|389,5833|2918,75|1404,167
3959|1150|366,6667|949,9999|427,0833
4075|1206,25|300|2012,5|1408,333
4080|-5302,083|-8629,166|13568,75|11350
4100|2152,083|327,0833|2297,917|1081,25
4131|250|-297,9167|325|-39,58333
4196|-377,0833|-1004,167|-168,75|-587,5
4197|4329,167|1354,167|5716,667|3733,333
4228|2337,5|-262,5|1956,25|222,9167
4264|2766,667|-633,3333|2200|-66,66666
4272|2500|-899,9999|2200|-66,66666
4273|1583,333|-1704,167|1168,75|-1022,917
4277|1020,833|-52,08333|872,9166|158,3333
4298|-4047,917|-7210,417|3087,5|979,1666
4384|787,5|-956,2499|1883,333|720,8333
4415|983,3333|600|2006,25|1750
4416|1310,417|166,6667|2122,917|1360,417
4493|1133,333|-29,16667|3616,667|2841,667
4494|-233,3333|-1206,25|849,9999|202,0833
4500|2766,667|-633,3333|2200|-66,66666
4603|1033,333|-1566,667|600|-1133,333
4706|3439,583|293,75|-533,3333|-2631,25
4709|1356,25|-6056,25|204,1667|-4737,5
4710|525|-2125|1708,333|-58,33333
4714|3439,583|293,75|-533,3333|-2631,25
4714|3439,583|293,75|-533,3333|-2631,25
4714|3439,583|293,75|-533,3333|-2631,25
4714|3439,583|293,75|-533,3333|-2631,25
4720|4383,333|-131,25|2881,25|-129,1667
4720|4383,333|-131,25|2881,25|-129,1667
4720|4383,333|-131,25|2881,25|-129,1667
4722|2100|-500|2200|466,6667
4723|2100|-500|2200|466,6667
4737|2129,167|777,0833|-7731,25|-8631,25
4742|2797,917|-879,1666|10781,25|8329,166
4755|1933,333|1043,75|-1306,25|-1900
4809|7033,333|-4366,667|6466,667|-1133,333
4812|6366,667|-5833,333|5933,333|-2200
4813|839,5833|-693,75|1256,25|233,3333
4815|5070,833|2268,75|-4018,75|-5887,5
4820|7033,333|-5966,667|6466,667|-2200
4922|-2437,5|-7708,333|-2156,25|-5670,833
4922|-2437,5|-7708,333|-2156,25|-5670,833
4926|2100|-500|1133,333|-600
4945|2366,667|-1833,333|600|-2200
4950|1166,667|-2233,333|600|-1666,667
4987|902,0833|150|3429,167|2927,083
5004|2100|-500|600|-1133,333
5031|931,2499|-283,3333|2266,667|1456,25
5034|2441,667|-3752,083|-8029,167|-12158,33
5034|2441,667|-3752,083|-8029,167|-12158,33
5035|2366,667|-1833,333|600|-2200
5042|3052,083|-2047,917|2795,833|-604,1666
5088|2766,667|-633,3333|2200|-66,66666
5094|1033,333|-1566,667|600|-1133,333
5095|2010,417|-4,166667|-560,4166|-1904,167
5108|1933,333|1043,75|-1306,25|-1900
5144|6681,25|1831,25|-4756,25|-7989,583
5145|8233,333|4158,333|-4906,25|-7622,917
5146|8754,166|1808,333|-3720,833|-8352,083
5287|2108,333|-1837,5|-12516,67|-15147,92
5334|1166,667|-2233,333|600|-1666,667
5339|2977,083|-3575|-10964,58|-15333,33
5351|1933,333|1043,75|-1306,25|-1900
5389|2412,5|575|377,0833|-847,9166
5396|-1004,167|-1975|-10591,67|-11239,58
5416|1556,25|6,25|1370,833|337,5
5449|1745,833|443,75|1604,167|735,4166
5600|2633,333|33,33333|1133,333|-600
5638|2100|-500|600|-1133,333
5695|3891,667|-158,3333|-8033,333|-10733,33
5723|718,75|-868,7499|425|-633,3333
5733|933,3333|-256,25|1702,083|908,3333
5736|4979,166|2308,333|1785,417|6,25
5785|1452,083|-5531,25|3652,083|-1002,084
5788|-4650|-5902,083|3766,667|2933,333
5789|2260,417|-1035,417|4697,917|2500
5799|2660,417|389,5833|2918,75|1404,167
5805|2679,167|-1245,834|1095,833|-1520,834
5840|2481,25|-52,08398|1947,917|260,416
5841|4839,583|-1418,75|5618,75|1445,833
5842|7079,166|1335,417|4558,333|729,167
5844|1791,667|-1252,083|5327,083|3297,917
5861|7268,75|5410,417|-3322,917|-4562,5
5892|-833,5928|-3940,301|-565,0928|-2628,158
5918|3362,5|2300|4210,417|3502,083
5956|-2154,166|-2918,75|1197,917|687,5
5963|1664,583|814,583|-458,334|-1025
5976|3133,333|1333,333|1666,667|466,666
6006|812,5|-981,25|1689,583|493,75
6040|-3979,166|-5037,5|-3468,75|-4175
6051|1743,75|904,167|2083,333|1522,917
6052|977,083|60,41602|1372,917|762,5
6066|1597,917|-1708,334|1612,5|-591,666
6067|-2497,916|-3200|-789,584|-1258,334
6101|-875|-1343,75|2389,583|2077,083
6109|2233,333|-1166,666|2200|-66,66602
6125|2633,333|33,33398|4866,666|3133,333
6126|1320,833|-929,166|1495,833|-4,166016
6134|2947,917|-1739,584|-110,416|-3235,416
6138|6139,583|787,5|1416,667|-2152,084
6170|187,5|-781,25|-8570,832|-9216,666
6176|979,167|14,58398|-5962,5|-6606,25
6182|-700|-4100|-3133,334|-5400
6208|3587,5|1175|1608,333|0
6209|-1397,916|-2322,916|2372,917|1756,25
6214|5762,5|4747,916|2029,167|1352,083
6219|902,083|145,834|4008,333|3504,167
6297|1279,167|-243,75|-1714,584|-2729,166
6309|1220,833|314,584|-2564,584|-3168,75
6328|5616,666|2933,333|-252,084|-2041,666
6419|2102,083|1372,917|4168,75|3683,333
6426|747,917|-222,916|2216,667|1568,75
6449|1743,75|904,167|2083,333|1522,917
6450|1491,667|41,66602|11033,33|10066,67
6451|-3641,666|-4991,666|0|-900
6452|233,334|-1533,334|-2577,084|-3754,166
6453|-4491,666|-6297,916|-525|-1729,166
6454|2147,917|1058,333|2270,833|1543,75
6455|-5383,334|-6983,334|10833,33|9766,666
6456|-12814,58|-14633,33|-3604,166|-4816,666
6457|1206,25|-643,75|-4727,084|-5960,416
6500|-3979,166|-5037,5|-3468,75|-4175```

2. Thank you very much, but have you already tried to read the DBC ingame? I think that this would be way faster, cheaper in regard of ressources and better to maintain.

3. Originally Posted by Frosttall
Thank you very much, but have you already tried to read the DBC ingame? I think that this would be way faster, cheaper in regard of ressources and better to maintain.
I haven't done any reading of the DBC ingame. I havent found really good examples of how to do it. Is there some kind of example? I agree its easier to maintain the way you suggest.
In my programme I load all coordinates into memory and upon changing zones, the programme just changes the border-coordinates. So when my programme finds X/Y of an NPC/Object, i can quickly calculate the ingame-coords. I don't think there's much difference in speed in this method.

I haven't done any reading of the DBC ingame. I havent found really good examples of how to do it. Is there some kind of example? I agree its easier to maintain the way you suggest.
In my programme I load all coordinates into memory and upon changing zones, the programme just changes the border-coordinates. So when my programme finds X/Y of an NPC/Object, i can quickly calculate the ingame-coords. I don't think there's much difference in speed in this method.
See this post by Apoc and this post by TOM_RUS for help with DBC reading.

5. This information was really helpful, thanks for sharing.

Do you know what the # after the ',' in some of the data is?

12|1535,417|-1935,417|-7939,583|-10254,17

Is there a way to determine which zone a specific set of in-game coordinates falls into? It looks like some of the coordinates fall into more than one zoneid. Is that just the relative nature of game coords?

6. Originally Posted by kingkong69
This information was really helpful, thanks for sharing.
Do you know what the # after the ',' in some of the data is?
12|1535,417|-1935,417|-7939,583|-10254,17
Is there a way to determine which zone a specific set of in-game coordinates falls into? It looks like some of the coordinates fall into more than one zoneid. Is that just the relative nature of game coords?
The numbers behind the commas you mean? They are just the decimals / rational numbers...

It's not possible to determine the zone by the coordinates. Coordinates are set up for every area and can overlap each other.
Simply read the CurrentZoneID from the WoW-memory; 0xCC9EF0 for version 5.1.0.16309. Just read it from the base-address, it's a global.

7. In this example:

12|1535,417|-1935,417|-7939,583|-10254,17

The 417, the second 417, the 583 and the 17, what are those? Any idea?

I was able to "guess" the zone by taking the ingame x,y coordinates and seeing which zone coords were inside. There are multiple matches, of course, but if I narrow it down by continent I'll only get doubles when the coordinates are actually in both zones.

There are a few zones that don't seem to make sense. Western Plaguelands is extremely large and the two STVs seemed to be messed up. Is the data you shared from before Cata or is it old in another way? Is there a way I can update it?

Edit: I should mention that I'm not "in game." I'm doing a visualization of HonorBuddy profiles

8. Originally Posted by kingkong69
In this example:

12|1535,417|-1935,417|-7939,583|-10254,17

The 417, the second 417, the 583 and the 17, what are those? Any idea?

9. Originally Posted by kingkong69
In this example:
Is the data you shared from before Cata or is it old in another way? Is there a way I can update it?
It's "new" data... retrieved from the wow-files with the new MoP patch, patch 5.0.5. if i remember correct.
I extracted the data from the MPQ's in the gamedirectory, using MPQ Editor by Ladik. I specifically read WorldMapArea.dbc.
Using DBC editor i exported the list as SQL, manipulated in Excel and posted it here.
Doesnt seem to be up to date now, cause I just see that there are new entries (like brawlers arena, etc)

If you want, I can do an updated release on every client-update.
Just shout :-)

10. Originally Posted by kingkong69
This information was really helpful, thanks for sharing.

Do you know what the # after the ',' in some of the data is?

12|1535,417|-1935,417|-7939,583|-10254,17
It depends which country you are from --> some countries use a period (.) before decimal parts, some use a comma (,)

the 12 in front is his 'counter' variable. ie he prints 1| point data .... 2| point data .... 3| point data .... N| point data

11. Originally Posted by abuckau907
the 12 in front is his 'counter' variable. ie he prints 1| point data .... 2| point data .... 3| point data .... N| point data
Not completely true... its the reference to the ZoneID... its not an autonumeric

If you want, I can do an updated release on every client-update.
Just shout :-)
I would really appreciate that. If you have a format that is more "raw" and less manipulated I'd be happy to work with that too. Right now I'm parsing exactly what you have with PHP and then using it to try to determine the zone the hotspot (X,Y,Z) is in. It seems very strange that the points aren't lining up in zones that were changed in Cata (WPL, NSTV) and I'd like to get to the bottom of it.

I see what you guys mean about the comma instead of the period.