Quantcast Map making tutorial (revised and detailed) - EQ2Interface
Search Downloads

Go Back   EQ2Interface > Featured Projects > EQ2MAP

Thread Tools Search this Thread Display Modes
Unread 02-13-2009, 02:56 PM
jacobian163 jacobian163 is offline
A Grizzled Badger
Join Date: Oct 2005
Server: Nektulos
Posts: 45
Default Map making tutorial (revised and detailed)

Here's my map creation tutorial:

First of all, let me say that there are probably other ways to do this, some more programming oriented, I’m sure. However, this is what I’ve used and it works just fine for me.

First off, you’ll need to download a few things:
  1. An xml editor – I use Jedit, which is freeware and easy to use and can be found at:
  2. The .dds plugin for photoshop (I have to switch computers for this step since there is no plugin for the 64-bit Photoshop… I have CS4 on my good computer). I use this plugin in Photoshop CS2.
  3. You will also need Adobe Photoshop and Illustrator. I’m not sure if there are shareware/freeware trial versions of these programs. If not, you’ll have to buy it or get It from somewhere :-P.
  4. Need to download Inkscape for editing the resulting .svg files.
  5. The Map Template .psd file:
  6. Tacoman’s Zonerect calculator:
  7. The MapperGUI in the post by Seion:
  8. Know where your files are for EQ2 and the maps. All mine are inside Program Files/Sony/EverQuest II/ . The Folder "Logs" contains your log files from your characters. The "Everquest II\UI\EQ2MAP2\" folder contains the .xml test file "_User_MapStyles.xml", and the "Everquest II\images\maps\" folder is where you will put your finished .dds map files for testing.

OK! Now if you have all that, you are ready to begin. I’m going to "steal" the first bit from the existing tutorial at (http://maps.eq2interface.com/index.p...on=maptutorial).
  1. Find the logfile for the character you are using to make the map. Then copy it somewhere else, or just open it up and delete all the text so It becomes a blank text file.
  2. Create two macro buttons (type "o" and go to the macro tab in EQ2. Then insert a "command" and type "/loc" for the first macro, and "/em start new map line" for the second macro.) Put them in a hotbar for ease of use.
  3. Load EQ2 and start outside the entrance to the zone you want to map, then type /show_map_style_name 1 and turn on your logging by typing /log.
  4. Enter the zone you want to map. This will add a line in the log file telling you part of the file name you'll need to use for the map. For example, this line appears when entering Bef:HoF –
    (1232778629)[Sat Jan 24 00:30:29 2009] Map style name: exp05_dun_befallen_forsaken_
    So you'll take that name and add the word "map_" to the front end, and possibly a number at the end if there are multiple floors to your maps (otherwise, remove the last underscore and the final file will have a name like: map_exp05_dun_befallen_forsaken.dds).
  5. Run around any walls and objects you can find that you'll want to map, hitting the /loc macro as much as you can. Start with the outline of the map if you can, but don't be afraid to branch out to get more details for your map (such as tables, pillars, drawings on the floor, etc.). Technically you can hit the second macro to start a new line, but every time I've done it and then opened the .svg file in inkscape, those points are still connected anyway and have to be uncoupled manually. Either way, just go ahead and use the /loc button to map every feature you want on your map for outlines.
  6. If you are making a multi-level map, I recommend just turning off your log file when you finish mapping each floor, copy it to another location and rename it, then delete all the text in the original logfile before turning logging back on to map the next floor. Repeat this for each floor and then you can make each floor's map separately with the following steps.
  7. Take your log file(s) that you created and use the MapperGUI.exe program. There will be two buttons with "…" in them, use these to browse for the file locations. In the "Logfile" box, find the location of the logfile you want to turn into a map. In the "Svg File" box, just type in the name of the file you want to create and it will by default place the .svg file in the folder where your MapperGUI.exe file is stored.
  8. Open the .svg file in Inkscape (this is where the fun begins). At the start, the map will appear very tiny in the upper left hand corner. Just drag it onto the drawing area and stretch it to the desired size. Once you've done this, click the map image and then click the "edit paths by nodes" button on the left-hand toolbar. Across the top another toolbar appears, click the one that says "convert selected object to path". This shows all the /loc points for the entire map that you've created.
  9. Now, some handy shortcut buttons: use the "-" key to zoom out, and the "+" key to zoom in. Clicking any line will highlight the two node points that create that line. Clicking an individual node or a group of nodes and hitting delete will remove those nodes, but not the lines. For example, if you delete one point, the neighboring points which were originally attached to that point will become connected (you'll see what I mean when you try it). To disconnect points there is a "split path between two non-endpoint nodes" button. To connect two points, use "join selected endnodes with a new segment". This will not work if they are not endpoints. Also handy is the "insert new nodes into selected segments" button. Just highlight a line by clicking it, and then click this button to add points to the line, then you can adjust these points individually. I find this handy to create more curves and texture to the outlines of the map.
  10. At this point, it's up to you how you want the outlines of your map to look, so feel free to use this tool to do what you want to the map. Keep in mind, that the positioning of the edges is based on the /loc's you obtained from the map, so try not to do any drastic changes, especially to the outer walls of the map, or the alignment won't be right when you go to do that step.
  11. Once your outline looks the way you want it to, then save the .svg file as an .emf file. This preserves all the points for the lines and can be easily opened up in Illustrator.
  12. Open your .emf file in Adobe Illustrator. Use this program to add colors and other objects to your map before importing it into Photoshop onto the template. The tools I use the most are the selection tool and the live paint bucket.
  13. At first, the entire map is one object, but for individual features that you want to color in (they have to be closed paths though), you will need to double click the object a few times to get it isolated from the rest of the map. Once you have it selected, then click the live paint button and select the color you want to fill it with. Then click the inside of the object to fill it and make it a live paint object. Repeat this for any objects you don't want to have the background coloring (which we'll add in photoshop).
  14. Don't forget to add any other features that you think the map needs. Artistic license is key here ? . I usually add the lines for stairs, as well as colored circles to represent camp fires, braziers, and other features of the map. (It usually helps if you have EQ2 open while making the maps so you can explore the cleared zone with your character to get more of the details for this step)
  15. Once you are happy with the coloring and additions you've made to the map, then click "ctrl+A" to highlight everything, and copy it ("Ctrl+c").
  16. Open the template.psd file in Photoshop. This will have the map template we will use. To begin, there are a few layers you can delete that have the watermark and whatnot. All you want to leave is the main layer with the parchment image on it and the black vertical stripe on the right. Paste your map onto this template as a "Smart Object", and use the pre-made guide rulers to align, center, and resize the map as necessary. Make sure it fits in the parchment section of the image and doesn't go off into the black area. Click the move tool (the black arrow) once it is in place to officially "place" the image.
  17. In the layers window, highlight this map (the "vector smart object") and duplicate it. Now select the middle layer, the one between the copy and the background. Under the Layers menu on the top toolbar, click "Rasterize -> Smart Object". This will allow you to use the "fill" function to make the background color for the map.
  18. Use the magic wand tool to select somewhere outside the map image, then under "Select" in the top toolbar, click "Inverse".
  19. Under "Edit" in the top toolbar, click "Fill…" and a window pops up. Click the dropdown box and select the word "Color" (even if it's already selected, do it again to get the color palette to show up). Then select the background color you want for the whole map, this will show up behind any feature you didn't manually color in Illustrator. Click "ok" twice to make the fill color happen. Then use the rectangular marqee tool to deselect the image. Now you are almost done.
  20. If you want to add your name to the map (don't put a map name on it, or they won't accept the map because sometimes the maps get re-used and need to remain as general as possible), then click the background layer in the layers window. Click the text tool and in the lower right corner add your name to the map.
  21. Now you have a finished map! A few things remain to be done. First off, we need to get the boundaries of the map (in pixels). If you don't have it set up already, open the "Info" window in your toolbars, this will show you the cursor position on the map. Also, under Edit -> Preferences -> Units and Rulers, change the units to pixels.
  22. Use the rectangular marqee tool to completely enclose the map image without any extra space on any side. It needs to be touching the northernmost, westernmost, easternmost, and southernmost points on the map. Once you have this then highlight over the top left and bottom right corners of this selected area to get the X,Y pixel locations. These will be used to calculate the Zonerect to align your map when it's used in the game.
  23. Now, save your map as a .dds file. If you properly installed the plugin, then it should be an option under the file type in the save as window. Another window pops up, in which you need to select "1 bit alpha", and deselect all the other options on the right except for "DXT1". Also select the radio button for "no mips maps". Then click "Save". Now you have your map file.
  24. In Photoshop, crop the image to 436x506 pixels and save it as a .jpg (quality setting "6") to post with your map on the website.
  25. Now, in the game, you need to run to the furthest points of the map on each side (using the map you just made helps you figure out where to go) and get the /loc for those positions. For the right and left sides of the map, you'll want the first of the 3 numbers given (for the X-coordinate), and for the top and bottom sides of the map, you'll want the 3rd of the 3 numbers given (for the Y-coordinate). Then you can pair up the upper left pixels you got in photoshop to the left and top x and y /loc, and do the same for the lower right pixels with the right and bottom x and y /loc's. Type all this information into the Zonerect.exe window and click "calculate" to get the zonerect for the map.
  26. Open Jedit and find the _User_Mapstyles.xml file from your UI/EQMAPS/eq2map2 folder. In here you need type the following (for a one-level map):
    <ImageStyle Name="exp05_dun_miragul_shard" displayname="Miragul's Phylactery: The Crucible" menugroup="Everfrost (Island)" zonerect="-94.45, -69.38, 137.30, 227.21">
    <ImageFrame Source="images/maps/map_exp05_dun_miragul_shard.dds" SourceRect="0,0,436,506" />
  27. Change the parts in "" to reflect the map you are adding. Don't forget to type in the correct zonerect that you calculated, as well as the proper file and map names. Leave the SourceRect part alone. (NOTE: I have had trouble figuring out what to type in the menugroup part, any insight on this from more experienced people would be great) Once you've done this, save the file and close it. Also take the .dds file of your map that you created and place it inside the UI/EQMAPS/images/maps folder. Now you are ready to test your map!!
  28. For multi-level maps, you will need to have that bunch of code repeated for the number of floors you made maps for, and you will need to get the height cutoffs to transition between the layers. You can easily do this by going between the levels in the zone and using the /loc key you made and recording the center number (the z-coordinate) as the height at which to transition from one level to the next. Then you'll need to add additional pieces to the code above, just after the zonerect, but before the ">". You need to add a heightmax="XX.XX" for the lowest level, a heightmax and heightmin for the middle levels, and a heightmin="YY.YY" for the highest level. (note: I got this to work when testing Najena's Hollow Tower, but can't get the code working for Nu'Roga yet)
  29. Now, you need to completely shut down EQ2 and reload it in order for the updated map to show up. If everything works out, you should see a zone map when you log back in. Now the trick will be to run around the map and see if you show up on the right place or not. If not, the zonerect may need to be tweaked a little bit, but most of the time my zonerects are dead-on using the method I described above. Also, for multi-level maps, don't forget to run between the levels to make sure it transitions to the other maps at the right places.
  30. Now that you have a working map, go ahead and post it in a new thread in the EQ2MAP>EQ2MAP New Maps forum. Post a cropped .jpg, the .dds file, and the zonerect (as well as any relevant info on height cutoffs for multi-level maps) in the thread you create. Then it's just a waiting game to get it posted when the dev's have time ?.
Disclaimer: I’m by no means an expert on Adobe photoshop and illustrator, nor am I an xlm programmer. All this information is based on my experiences with Adobe CS2 and CS4, and using the other software mentioned above. Feel free to experiment with the artistic steps in this process, and add any comments that are helpful to getting people comfortable with making their own maps. I hope this walkthrough/tutorial is clear and helpful to those of you who want to dive into the world of map making for EQ2. ?
-Josh Tietjen

Last edited by gm9 : 03-17-2009 at 02:43 PM.
Reply With Quote
Unread 02-13-2009, 11:49 PM
shadow2004 shadow2004 is offline
A Young Mystail Rat
Join Date: Feb 2009
Server: Unkown
Posts: 7

Very very nice helped me allot on my map but may I suggest u put spaces between each numbers section as the text sort of runs into each other at min and can make it a bit hard to keep up with where ur at if ur reading then tabbing to go do it then coming back.
Reply With Quote
Unread 02-14-2009, 12:23 AM
lordebon lordebon is offline
Fetish Core author
This person is a EQ2Map developer.
Join Date: Jun 2005
Server: Antonia Bayle
Posts: 2,660

Originally Posted by shadow2004 View Post
Very very nice helped me allot on my map but may I suggest u put spaces between each numbers section as the text sort of runs into each other at min and can make it a bit hard to keep up with where ur at if ur reading then tabbing to go do it then coming back.
Seconded. That wall of text is rather impressive hehe, but easy to get lost in.
Reply With Quote
Unread 02-14-2009, 03:41 AM
Landiin Landiin is offline
Slayer of clock cycles
This person is a EQ2Map developer.
Join Date: Nov 2004
Server: Oasis
Posts: 3,464
Send a message via ICQ to Landiin Send a message via AIM to Landiin Send a message via MSN to Landiin Send a message via Yahoo to Landiin

maybe one day I'll finish my mapper app and it'll cut out over half of them steps..
Landiin's EQ2MAP Updater Discussion Download
Reply With Quote
Unread 02-14-2009, 07:12 AM
gm9 gm9 is offline
Premium Member
EQ2Interface Super Mod
Join Date: Feb 2006
Posts: 6,479

This is pretty cool, thanks for that. I went and cleaned up the formatting somewhat but don't bother too much with it, I suggest that after this is finalized I'll cast it into HTML and put it on the main site (giving you credit of course).

I'll post some comments and answers to your question later or tomorrow.

PS: Moved, stickied (and renamed) the thread.
P R O F I T U I ∙ R E B O R N [Auto-Updater] | [Portal] | [F.A.Q.] | [Support Forums]
~ Retired ~
If it does not work, you likely installed it incorrectly. Always try a clean install before reporting bugs.
Reply With Quote
Unread 02-14-2009, 03:17 PM
shadow2004 shadow2004 is offline
A Young Mystail Rat
Join Date: Feb 2009
Server: Unkown
Posts: 7

I fort id also mention the mapper mod Mapper2 as an alternative for MapperGUI i know i found Mapper2 allot better.

Reply With Quote
Unread 02-15-2009, 06:29 AM
gm9 gm9 is offline
Premium Member
EQ2Interface Super Mod
Join Date: Feb 2006
Posts: 6,479

Some comments:

Re #4: It's still good practice that you name the files yourself like that but I have since created some admin tools for adding new maps to the server which will rename the files regardless of their original name, so for our purposes it doesn't matter anymore what the name is.

Re #24: As soon as I find out how to convert and crop the .dds via .php that step will become redundant as well but for now it's still needed.

Re #27: The menugroup defines under which category of the left map drowdown the map appears in game. It should reflect the region of Norrath the dungeon you mapped is located in. Currently supported values are:
  • Karan
  • DLere
  • Zek
  • The Enchanted Lands
  • Everfrost (Island)
  • Feerrott (Island)
  • Lavastorm (Island)
  • Desert of Ro
  • Overrealm
  • Mara
  • Faydwer
  • Kunark
  • Innothule
  • Miscellaneous
As new expansions covering new regions are released we will be adding to this list.

Re #28: In addition to the heightmin/heightmax values for switching between maps of different heights you can also use AvailableRect to switch maps within a horizontal plane. An AvailableRect is the same as a ZoneRect, but only for a segment of that zone.
Furthermore, if you have overlapping AvailableRects (e.g. a large map for the entire zone and a more detailed map for some part within it) you can use the AvailablePriority parameter to tell the game which map it should give priority if it finds that you are within the ZoneRect/AvailableRect or more than one map.
P R O F I T U I ∙ R E B O R N [Auto-Updater] | [Portal] | [F.A.Q.] | [Support Forums]
~ Retired ~
If it does not work, you likely installed it incorrectly. Always try a clean install before reporting bugs.

Last edited by gm9 : 02-15-2009 at 06:32 AM.
Reply With Quote

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

All times are GMT -5. The time now is 06:20 AM.

Our Network
EQInterface | EQ2Interface | War.MMOUI | WoWInterface | VGInterface | LoTROInterface | MMOInterface