In order for radiant quests to be able to appropriately select locations, dungeons must first be set up correctly. This involves marking various references in your dungeon, creating a location, and adding keywords/parent locations to the location. It is pretty simple, but very essential to making a dungeon that works with radiant quests.
Locations should also be set up for interiors, with parent locations and keywords. There are also a few RefTypes for use in interiors (such as shops), but less so. Still should be set up for interiors. That said, this focuses on dungeons and does not talk about the appropriate RefTypes for interiors. They'll have to be looked at individually - see under WorldData>LocationRefTypes.
Locations should also be set up for interiors, with parent locations and keywords. There are also a few RefTypes for use in interiors (such as shops), but less so. Still should be set up for interiors. That said, this focuses on dungeons and does not talk about the appropriate RefTypes for interiors. They'll have to be looked at individually - see under WorldData>LocationRefTypes.
Making the Location
Since much of what we will be doing is contained within the location, you will need to MAKE a location for your area. Locations are "objects" (records) under WorldData in the Creation Kit (CK), which allow you to refer to an entire area - one or a collection of cells. You can then set data for this location. Locations can be exterior (a collection of exteriors) or interior (a collection of interiors) cells, or just one cell, or a combination of both. In order to set a cell's location, you must first create the location.
To do this, go to WorldData>Location. Right click and create a new one, give it an appropriate editorID. The name should be the name of the area. For example, if you're leaving a cell to enter the location TamrielLocation, it shows something like Open Tamriel. That is based off of the name of the location. It should be something appropriate. If you are making a location for the Bannered Mare, the ID would be WhiterunBanneredMareLocation (according to vanilla naming conventions) and the name would be The Bannered Mare. Press OK to save the location, then reopen it. This just makes sure you won't have to remake the whole thing if the CK decides to crash.
If the collection of cells (hereafter referred to as location) should have one, a parent location should be set. This is the location that this other location is in. For example, The Bannered Mare location has a parent location set as WhiterunLocation, because the inn is located in Whiterun. EldergleamSanctuaryLocation, on the other hand, has EastmarchHoldLocation set as the parent, because it is not in a city - but in a hold. EastmarchHoldLocation has TamrielLocation set as parent location, because the hold is in TamrielLocation (Skyrim). WhiterunLocation is in WhiterunHoldLocation, which is in turn within TamrielLocation. Therefore, WhiterunBanneredMareLocation is in WhiterunLocation>WhiterunHoldLocation>TamrielLocation, and The Bannered Mare is in Tamriel. This is all linked, but you only need to set the most direct parent location for your location, if there is one, provided that the other parent location and its parents are set up correctly. Quest makers can then check if a location is in WhiterunLocation, OR TamrielLocation, or WhiterunHoldLocation - and The Bannered Mare would be valid for any of those.
World Location Marker Ref should be pointed to the Map Marker reference set for your location, if there is one. This should only be set if your location actually has a map marker. Otherwise, ignore it. Horse Marker Ref appears to be unused (for city locs, stable locs, and various others), though the CK Wiki says: "Press the "Select Horse Marker" to select the Horse Marker for the location.". Music also appears to be unused, as everything is set to default. Music should be set in a Cell's individual data, but if you would like, you could try setting it in the location as well. If it works for the whole location, please tell me as well as whether or not cell or location music overrides. Unreported Crime Faction is also unused.
Keywords are very important, and essential to radiance for your location. They are used to describe what type of location it is - and thus are called LocType and LocSet keywords. You should only add these keywords, as well as any other keywords you made for your mod/in DLC that fit. You should add ALL LocType and LocSet keywords that fit (not loosely, but clearly fit) the location to the area. I have compiled a complete list of all LocType and LocSet keywords from vanilla Skyrim, as well as describing a bit more about them. I recommend bookmarking it and you can easily Ctrl+F it for keywords later on.
Now, you have done all you can within the location. Let's add the cells to the location, and add LocRefTypes.
To do this, go to WorldData>Location. Right click and create a new one, give it an appropriate editorID. The name should be the name of the area. For example, if you're leaving a cell to enter the location TamrielLocation, it shows something like Open Tamriel. That is based off of the name of the location. It should be something appropriate. If you are making a location for the Bannered Mare, the ID would be WhiterunBanneredMareLocation (according to vanilla naming conventions) and the name would be The Bannered Mare. Press OK to save the location, then reopen it. This just makes sure you won't have to remake the whole thing if the CK decides to crash.
If the collection of cells (hereafter referred to as location) should have one, a parent location should be set. This is the location that this other location is in. For example, The Bannered Mare location has a parent location set as WhiterunLocation, because the inn is located in Whiterun. EldergleamSanctuaryLocation, on the other hand, has EastmarchHoldLocation set as the parent, because it is not in a city - but in a hold. EastmarchHoldLocation has TamrielLocation set as parent location, because the hold is in TamrielLocation (Skyrim). WhiterunLocation is in WhiterunHoldLocation, which is in turn within TamrielLocation. Therefore, WhiterunBanneredMareLocation is in WhiterunLocation>WhiterunHoldLocation>TamrielLocation, and The Bannered Mare is in Tamriel. This is all linked, but you only need to set the most direct parent location for your location, if there is one, provided that the other parent location and its parents are set up correctly. Quest makers can then check if a location is in WhiterunLocation, OR TamrielLocation, or WhiterunHoldLocation - and The Bannered Mare would be valid for any of those.
World Location Marker Ref should be pointed to the Map Marker reference set for your location, if there is one. This should only be set if your location actually has a map marker. Otherwise, ignore it. Horse Marker Ref appears to be unused (for city locs, stable locs, and various others), though the CK Wiki says: "Press the "Select Horse Marker" to select the Horse Marker for the location.". Music also appears to be unused, as everything is set to default. Music should be set in a Cell's individual data, but if you would like, you could try setting it in the location as well. If it works for the whole location, please tell me as well as whether or not cell or location music overrides. Unreported Crime Faction is also unused.
Keywords are very important, and essential to radiance for your location. They are used to describe what type of location it is - and thus are called LocType and LocSet keywords. You should only add these keywords, as well as any other keywords you made for your mod/in DLC that fit. You should add ALL LocType and LocSet keywords that fit (not loosely, but clearly fit) the location to the area. I have compiled a complete list of all LocType and LocSet keywords from vanilla Skyrim, as well as describing a bit more about them. I recommend bookmarking it and you can easily Ctrl+F it for keywords later on.
Now, you have done all you can within the location. Let's add the cells to the location, and add LocRefTypes.
Adding Cells to a Location
Adding the cells to the location is the easiest part. Just find your cell, whether it be under Interiors or another Worldspace in the Cell View. Click Edit to open the Cell's data. Alternatively, you can go to World>Cells (interiors) or World>Worldspaces (makes the ENTIRE WORLDSPACE in the location, rather than just one cell). That's all there is to it for adding the cell(s)/worldspace(s).
Setting LocRefTypes
"A Location Reference Type or LocRefType, as we more commonly refer to it, is a special type of flag that you can place on a Reference in your level that Radiant Story (our procedural quest generation system) uses to find the right objects. Essentially it lets you define for the quest system which actor is the "Boss" or which would be a good "Container" to place a quest item in, for example." If you'd like some more examples of them in use on a real dungeon, see here. There are a lot of different LocRefTypes, but the main ones are pretty simple and self explanatory:
Boss - The boss of the location (1+ possible) BossContainer - Main treasure container of location/boss chest Container - Placed on containers in the location. Shouldn't be placed on all containers, just a couple to several. (I.e. Bleak Falls Barrows only has 2 set.) CaptiveMarker - Placed on an XMarkerHeading where a captive would be placed, if there were one. (I.e. the spriggan in a hagraven cave, the marker was in a cell and the spriggan spawned to the marker.) (1+ possible) FriendMarker - Where a friend could be spawned if they would be spawned. Usually by entrance, usually interior. | BossTreasureMarker - Placed on an XMarker near the Boss, where treasure might be. (I.e. the Honed Axe of Cold in Bleak Falls Barrow, near the Draugr Overlord, on the table.) InsideEntranceMarker - On an XMarkerHeading just inside the entrance. Important LocationCenterMarker - On an XMarkerHeading in the relative center of the location. Important OutsideEntranceMarker - On an XMarkerHeading just outside the entrance. Important LocationEdgeMarker - Set on an XMarkerHeading at the far end of the exterior cell. MapMarkerRefType - Set on the map marker for the location. Mostly for exterior locations. |
Be sure you set all LocRefTypes that fit. That said, some places can avoid a few when logical. "For example it doesn't always make sense for Draugr to have a captive so that might not be needed." Some locations have as many as 15-20 Loc Ref Types. Some only have 2. Do what fits your location best - don't leave anything out, but don't add anything unnecessary either. Strive to be as accurate to your dungeon as possible.
To actually add the LocRefType, find the reference in the Render Window that you would like to add a LocRefType to. (Make sure that the cell that the reference is in has been added to the location!) Double click them to open the Reference window. Using the arrows, move to the tab Location Ref Types. From there, choose the appropriate Loc Ref Type from the dropdown.
If you want to ensure it worked, go check out your location after clicking OK in the Reference window. The Loc Ref Type should show up in the Location Ref Types tab in the Location window. Success! Finish adding Loc Ref Types to all appropriate references, and save.
You're done, your dungeon is complete... was that so hard?
Feel free to - and please do - comment if the tutorial was useful/helpful/you have any questions. Thanks!
To actually add the LocRefType, find the reference in the Render Window that you would like to add a LocRefType to. (Make sure that the cell that the reference is in has been added to the location!) Double click them to open the Reference window. Using the arrows, move to the tab Location Ref Types. From there, choose the appropriate Loc Ref Type from the dropdown.
If you want to ensure it worked, go check out your location after clicking OK in the Reference window. The Loc Ref Type should show up in the Location Ref Types tab in the Location window. Success! Finish adding Loc Ref Types to all appropriate references, and save.
You're done, your dungeon is complete... was that so hard?
Feel free to - and please do - comment if the tutorial was useful/helpful/you have any questions. Thanks!