Skip to content

Creating mapping for a new Dungeon

Wouter Koppenol edited this page Aug 15, 2023 · 8 revisions

Prerequisites

Important

If the mapping already exists in MDT you MUST edit the mapping in MDT and NOT through Keystone.guru. See https://github.com/Wotuu/keystone.guru/wiki/Editing-an-existing-mapping-(through-MDT). This is done so that the community has one consistent mapping instead of two competing projects having their own (inconsistent) mapping. I have agreed with Nnoggie on this one and MDT's mapping format is leading. I have written importers and exporters to support this on my side.

Important

If you have a combat log of someone (or yourself) running the dungeon you can use it to generate an initial placement of enemies and their NPCs. This will cut down on the time required to create the mapping yourself. You will still need to go through and edit placements, add packs, add patrols etc. for which you can use the below instructions.

Important

To re-iterate, you only need these instructions if you're creating a new dungeon mapping from SCRATCH.

Mapping editing fundamentals

If you're editing the mapping you must do so in the special mapping environment found at https://mapping.keystone.guru/. Any mapping changes you make will be tracked and an automatic pull request will be created to offer your mapping changes for review in the Github repository of Keystone.guru.

You have to register a new Keystone.guru account on that subdomain (since it uses a completely separate database) and be made an admin before you have access to all relevant admin tools.

Note

If you edit the mapping on any other location of Keystone.guru (such as the main site or https://staging.keystone.guru/) the mapping will be lost eventually and will not be retrievable.

Adding new enemies

From the sidebar on the left, select "Enemy" (or use hotkey 3). Your mouse cursor will change to an enemy which you can place on the map anywhere you want. Left click to place the enemy:

image

Once you've placed the enemy, you can edit it by click on it. A popup shows up.

image

  • You must select the NPC that this enemy is.
  • Most other options you don't need to touch for most enemies.

Options

Faction

You can align an enemy with a certain faction. They will then only show up in the mapping when the route has a matching faction. This was used to fix Siege of Boralus which had a different mapping based on the faction of the player. Horde enemies were marked as "Alliance" and vice versa. That way if you were Alliance you had the Horde enemies show up.

NPC

Select an NPC that this enemy represents from the list. There's certain enemies which are available throughout all dungeons (think seasonal enemies). If you want to edit health values of NPCs you have to visit the page for that specific NPC and edit it there.

MDT ID

This is important since all enemies are tied to a pull by a combination of NPC ID + MDT ID. That is how routes can be made consistent when cycling through mapping versions (when there's an update to the mapping). Generally, the first enemy placed has MDT ID 1. Second enemy 2, etc. The IDs are NOT 0 based (because Lua). Usually you do not have to edit this number yourself but sometimes you do.

Legacy options

Teeming

Mark an enemy as Teeming or not. No longer used since Teeming has been removed.

Enemy forces override

Sometimes there were exceptions for enemies where they didn't give the same enemy forces as their NPC would give them. This allows you to override the enemy forces for this specific enemy only. I have not used it in a long time so it's moved under Legacy.

Enemy forces override (teeming)

Same as above, but then for Teeming. Not sure if I ever used this.

Advanced options

Dungeon difficulty

Used to differentiate between 10-man and 25-man versions of legacy raids. Used in Ulduar for now but pretty sure it'll be used for all WotLK-raids.

Seasonal type

This allows you to mark an enemy with a seasonal "affliction" or affix such as Inspiring.

Seasonal index

Certain seasonal affixes had iterations where there'd be for example 3 different presets of enemies. Take Awakened for example, the Awakened bosses were on a separate rotational cycle. You can mark an enemy with a seasonal index if you want them to show up for rotation 1, 2, 3, etc. This is also related to a Season's presets column. Entering a number higher than the presets count is going to render it always invisible.

Required

This functionality is broken (see https://github.com/Wotuu/keystone.guru/issues/594) and I've kept it that way for a while. It was created for for example Kings' Rest where you had certain enemies that you MUST kill before you could continue with your route. You can mark enemies as required and the mapping would not allow you to publish a route unless you actually went and killed those enemies. It'd also show a warning if you didn't kill all required enemies yet.

For now I decided it was too confusing/limiting so I've kept it broken. But I may fix it later and re-enable it.

Skippable

Very important feature which allows Live Sessions to work. If an enemy can be skipped by walking past it without Shroud/invisibility it should be marked as skippable. That way the Live Sessions feature knows that this enemy may be skipped if the user accidentally overpulled enemies earlier in the route, in order to still reach 100% trash and not go 10% over.

Kill priority

Used for auto route generation tweaking. It will consider enemies with a higher priority over enemies with a lower priority when searching for enemies to match to an NPC + location in the combat log. Note, there's still an issue in the implementation: https://github.com/Wotuu/keystone.guru/issues/1958.

Adding enemy packs (groups)

From the sidebar on the left, select "Enemy pack" (or use hotkey 2). From that point on, clicking will allow you to draw a polygon by hand. Any enemies captured in the polygon will be marked as part of this enemy pack.

image

Creating a new enemy into your polygon will highlight the polygon to indicate that the enemy will be added to the pack.

image

You can always verify that an enemy is added to a pack by hoving over the enemy and viewing the Pack property:

image

Adding enemy patrols (and coupling enemies to patrols)

Similar to adding new packs, click the "Patrol" button on the left sidebar. This will allow you to draw a patrol route. You should always try to make a complete circle with patrols, even if an enemy patrols up and down the same hallway.

image

After creating your patrol, you can click on the patrol itself to edit it. Then, select Select enemies. This will allow you to (surprise) select enemies to attach to the patrol:

image

Enemy attaching mode:

image

If you select an enemy part of a pack, it will attach the patrol to all enemies in said pack. I see that there's no cancel snackbar, but you can always press Escape to exit this mode. Or when in doubt, F5 always works.

Adding new floors

Click the "Floor" button on the left sidebar. Place the floor switcher where you want to. Then click the floor switcher and select the target floor. The floor switcher should update its icon to reflect the direction of the new floor.

image

Note

If the icon remains a question mark, you need to configure floor connections first.

Adding mountable areas

Click the "Mountable area" button on the left sidebar. Place the mountable area as you would an enemy pack. This mountable area is used for generating SimulationCraft strings with more accuracy. You can adjust the mountable area's speed as well. For speed references, see config/keystoneguru.php:character or https://wowpedia.fandom.com/wiki/Movement.

image

Editing map elements

Click the "Edit" button in the left sidebar. This converts the map into Edit mode and allows you to drag any element around, add polygons to patrols/packs etc. When you're done, hit Save and your changes will be committed.

image

Note

Drag enemies slowly - after an update of some Leaflet plugin, dragging enemies around quickly causes your cursor to lose the enemy you're dragging. It hasn't been that big of an issue for me to fix it yet but it's not you if you encounter this.

Deleting map elements

Similar to editing map elements, click the "Delete" button in the left sidebar. Then proceed to click on map elements you want to remove. You can also delete patrols and enemy packs by clicking on them. When you're done, hit Save and your changes will be committed.

Clone this wiki locally