STEAM GROUP
Skyrim Creation Kit (Public) CKPublic
STEAM GROUP
Skyrim Creation Kit (Public) CKPublic
66
IN-GAME
857
ONLINE
Founded
February 7, 2012
How to Add Random Dungeon as Reference Alias
I'm trying to set the reference alias for a quest to "boss chest in nearest unexplored dungeon," but I'm not quite sure which settings to use on the reference alias menu. My goal is to have a quest stage where the player must find a specific item that spawns in said random boss chest.

I used a story manager node to trigger the start of the quest whenever the player learns a new word of power.

I was able to set up the courier quest, and it's working OK. I'm just not quite clear how to place my "Tempered Aetherium" item in the boss chest of a random dungeon (stage 30).

When I try to set a reference alias for the dungeon, I'm not sure which settings to use on the reference alias menu to make it a random unexplored dungeon, or do I need to make another node in the story manager to identify the dungeon alias?

Here is a list of the planned quest stages:

10. courier visits player, delivers note.
20. when player reads note, script adds book to player inventory and starts quest objective to read book.
30. when player reads book, quest objective changes to retrieve Tempered Aetherium from boss chest in <alias=dungeon>
40. when player retrieves Tempered Aetherium, quest objective changes to obtain Amulet of Talos
50. when player obtains an Amulet of Talos, quest objective changes to visit hidden Shrine of Talos on High Hrothgar
60. when player activates shrine of talos, message box asks if player wishes to craft Amulet of Dovah Mir or locate another source of Tempered Aetherium
70. if player chooses "craft amulet," message box tells player to insert Aetherium and Amulet of Talos inside a container
80. when player shouts at container, message box tells player to retrieve Amulet of Dovah Mir
Last edited by IcyDeadPeople; Sep 22, 2012 @ 8:09pm
< >
Showing 1-6 of 6 comments
hellay Sep 23, 2012 @ 6:19pm 
Yes, did that for some of my librarian quests. Very powerful option.
You may define some (or even all) your alias by randomness that the game will fill when the quest start.
From what i see about your situation, you don't need special infos depending on StoryManager trigger directly. (That may be used in the conditions of your random Aliases.

So, the Thing is to define your Conditionnal Aliases in the right order.
You may already know that Alias are filled from top to bottom. That is how you set for example the reference of a chest into an alias, then an other alias that Create your quest item in that Alias (if you did that before the chest alias , it fail)
Well, Conditional aliases have the same top to bottom rule to remember.
...
Next important thing if you want to build Conditional aliases is to understand/spy/check the "Loc Ref Types" There is a tutorial talking about it on creationkit.com (radiant quest ready).
Many area of the Game are set with keywords for it (dungeon, bandits, crypt, etc), and markers or clutters inside have also keywords markers (boss, boss chest, captive position, etc).
You will use them next....
So....
You create an Alias for your Dungeon location.(Location Alias, not Reference Alias)
Option : find matching location
(the from event part is here if you wanted something linked to the SM, but no need here i think)
In the conditions block , you define what you want for your situation.
For Ex, i had one with:
LocationHasKeyword "LocTypeDungeon" AND LocationHasRefType "CaptiveMarker" (that one allowed me to find random dungeon where i may place a captive on the marker.
In your case, a better example may be :
LocationHasKeyword "LocTypeBanditCamp" AND LocationHasRefType "BossContainer".

You now have a location for your quest.
NEXT:
You setup a Reference Alias, also on the "find matching reference" with conditions:
GetIsID "MapMarker" AND GetInCurrentLocAlias "Whatever-alias-you-set-first-step".
You see the idea?
It will search and grab the mapmarker of YOUR random dungeon found. So you may point the objectives to it.

NEXT:
You may setup any of the RefType that you had in your condition earlier for the Location.
In the second location example for you, you could try a :
New Reference Alias."MyTargetChest".. with type : "Location Alias Reference" , choose your Location alias as first drop down menu. and RefType dropdown pointing to "BossContainer"

Now you have your dungeon, your map marker, and your chest...
Create an other Alias with your Quest item, Create Reference to Object with your item , and the "Create IN" MyTargetChest .....
Could also use scripts to move the item into the Alias chest if already existing item , depend on your setup.
hellay Sep 23, 2012 @ 6:20pm 
Feel Free to Msg me or catch me in Chat if want help with it. Tried explaining it here quickly to guide you in the right direction (or anyone else interested) but may miss steps as i did that one months ago and explaining from memory at 3am :p )
IcyDeadPeople Sep 24, 2012 @ 2:06am 
Awesome, thanks so much hellay

Does this look OK for the script on the trigger box I will use for the stage 70 objective, which is to shout at the container?

Shout Trigger Script[pastebin.com]

Also, here is a draft of a script I'm trying to use for stage 60, which is where the player must put two items in the container. This one is not compiling.

Container Script[pastebin.com]

Perhaps I should forget about the container script completely and just have the shout trigger script check to see if the items are inside? I suppose I could change the quest objective description to read "insert items and shout at the container" in order to combine the two quest stages.
Last edited by IcyDeadPeople; Sep 24, 2012 @ 2:52am
hellay Sep 24, 2012 @ 8:44am 
np happy to help =)

About yourFirst script, never used on hit so far but all seems good to me about it.
Only one little thing. You use States but have only one state in the script?
Should either remove the stage (that is useless alone) or do not use the disable and an other state "finished" with nothing in it and a gotostate("finished") inside your script where you disable the thing.
Both versiosn should work and be clean =)

other script i see some things :
line 51 you use "akNewContainer()" also doing it on an other line.
but i"akNewContainer" is not a function, remove the "()", should use => akNewContainer.GetItemCount(......
same line you use "MarkarthFreeformTalosAmulet" but it s never defined as a property?

"ST_AetheriumPiece" used inthe script but you defined it in properties as "AetheriumPiece"

PS: rename the script , so you don t overwrite a default script !


You may merge the two easly yes if you prefer. and depending on how you do your scripts generally, that default script can be shortened easily. in it s current form it s made to be able to use it on many different way depending on properties, but if edit your own script many steps are not useful
IcyDeadPeople Sep 24, 2012 @ 10:25am 
ok, so how about if I add the following nested if GetItemCount conditions to the Shout Trigger Script, so before updating the quest stage, first it will check to make sure the player has inserted at least two different items into the nearby container (which in the quest has a ReferenceAlias labeled "Shrine").

Does the following part make sense to add to this trigger box script? Or should I make it a separate quest stage and a separate script?

Also is "GetOwningQuest.Alias_Shrine" the correct way to reference the container?


if (GetOwningQuest.Alias_Shrine().GetItemCount(MarkarthFreeformTalosAmulet) >= 1)
if (GetOwningQuest.Alias_Shrine().GetItemCount(ST_AetheriumPiece) >= 1)

EndIf
EndIf
hellay Sep 24, 2012 @ 10:38am 
Not sure if you can directly call the alias like this or not. But what i m sure, is that you can't use "()" for it. it is only for functions call, and Alias_Shrine is not a function, it is a variable/object/property thing =)

But yes you may do all in one "if" , or split the "if" and add "else" with some notification message to tel something is missing. To hint the player about what he need to do.
< >
Showing 1-6 of 6 comments
Per page: 1530 50