This tutorial assumes the following:
You can create your own or if you just want to learn the puzzle logic you can feel free to use the PuzzleDemo01Populated.esp file provided for this tutorial. This file has all the actors in place with no logic in the Puzzle1Prep cell.
For this example we are going to use the standard 3 pillar challenge. You can use more or fewer pillars should you choose.
Position your first pillar on it's bases so that one of the animals clearly faces the arrow on the base (see image below).
This will help prevent any issues with solving the puzzle and make sure that the correct face is pointing towards the player. In addition make sure the arrow on the base is positioned so the player can stand infront of it with no difficulty.
Repeat this process for the remaining pillars you wish to use. Remembering to match the base with an animal face. Note: You do not have to worry about which face is facing the arrow as the puzzle logic will take care of that in the next step. Hint: you can select both the pillar and base then press ctrl+d to duplicate them and move them to another position. This will save you time repositioning the two new objects together.
After you have your pillars in the dungeon. you will need to have a portcullis and lever to activate it. For the demo I used "NorPortcullisLarge0"1 but you can use any, for example: "NorPortcullis".
Next you need a Lever. As of writing this tutorial It appears you must use the"LeverPushAnimatingPillarPuzzle" object as your lever. PullChains or PullBars do not seem to work. I am sure as people get to playing eith Papyrus this will change. You can place this lever on a wall or even upsidedown. Do not let "blueman" fool you into thinking this can only be on the floor.
Lastly we need an "xMarkerActivator". This is used as an invisible chain/bar/lever which our "LeverPushAnimatingPillarPuzzle" lever will trigger once your player has solved the puzzle. You can place this anywhere on the ground in front of the portcullis.
That's it! We are now all set up to work on the puzzle logic.
For our puzzle we are going to have, from right to left as your look at your three pillars, Whale, Eagle and Snake as our solution to the puzzle. You may choose whatever you wish but if you are using the provided shell this the desired result because of the hints through the windows.
So double click on first puzzle store to get the reference box.
we then navigate to the last tab titled "scripts".
You should see "defaultPuzzlePillarScript" in white area. We want to double click on the name to edit the pillar's properties.
As you can see there are two properties we have access to:
For these pillars it asks for an integer value of 1, 2 or 3. if you hover over the either of the properties you will get a context helper letting you know which of the values represents each animal.
As you can see:
Seeing as we wanted our first pillar to be a whale. We will click on "solveState" and enter a value of 3. You can either click OK or click on another property (like initialState) to save the value
We want all our pillars to be on eagle for their inital state so we will need to change our initial state from the default 2 to 1. Then click OK to return us to the NorDefaultPuzzlePillar01's reference box.
The last step for our pillar is to create a link between the pillar and the lever so the lever can determine when the correct face of our Pillar is rotated. We find the "Linked Ref" tab in the Reference Box.
Before we link references it is handy to get both visible within the render window (like below)
We want to double click in the white area to create a new reference to our lever. Warning: If you have used the Creation Kit for any reasonable amount of time you will know that dialog boxes can disappear behind the render window. If it disappears just move the render window to relocate it
This will display the "Choose Reference" dialog box (seen below). You can choose to "Select Reference in Render Window" or manually select the cell and object reference.
For this tutorial we will click the "Select Reference.." button. The dialog boxes will disappear and the cursor will change to a crosshair that turns white on objects which can be linked. Double click on the "leverPushAnimatingPillarPuzzle" to link it.
The dialog box will reappear with the "Cell" and Ref Fields filled in.
Click "OK" to finish creating the link between the first pillar and Lever. You will be returned to the reference box with "LeverPushAnimatingPillarPuzzle" showing in the references list (see below)
That is it for the first pillar. We need to repeat this process for each remaining pillar. To recap the steps:
Middle pillar script setttings:
Right pillar script settings:
The next part of the puzzle is linking the door to the Lever. As learned from the official reference ( http://www.creationkit.com/Bethesda_Tutorial_Traps_and_Prefabs#Basic_Activation_Parenting) we will be following the same steps for linking our door to an "Activate Parent". The difference comes with what we are linking as an Activate Parent. Because this portcullis can not be allowed to open until the puzzle is solved. If we were to declare the lever as the Activate Parent of the portcullis it would raise regardless of the puzzle's state. What we need is an invisible handle that the player can't physically touch. So we will place an xMarkerActivator on the floor in front of the portcullis. We will then set it as the Activator Parent of the portcullis.
Double click on the portcullis to access it's Reference dialog windo
Locate the "Activate Parents" tab in the Reference Dialog
Double Click in a blank area of the list to open the "Activate Ref" Selection dialog window
Click on the "Select Reference in Render Window" and double click on the the xMarkerActivator. Alternatively you can manually select it by "Cell" and "Reference".
Click ok and view it in your list of "Activate Parents" for your portcullis.
In the example aboice I also have a regular Lever, NorLever01, on the other side of the portcullis which allows the player to control the portcullis on the other side after solving the puzzle.
Our door is now ready for our final piece: the lever.
We are almost done. Our lever is all that remains.
Find your lever in the render window or Cell View window.
Double click on the the lever to open it's Reference dialog window.
Click on the right arrow to locate the "Scripts" tab.
Double click on the "defaultPillarPuzzleLever" script to open it's properties dialog window.
Because we have three pillars we are going to set the property "pillarCount" to, you guessed it 3.
Next we are going to set the "puzzleDoorActivator" to the xMarkerActivator we made the parent of our portcullis
Lastly we select the portcullis as the actor we want to use when the puzzle is solved.
As you can see there are 4 refActOnFailure properties. In the next tutorial I'll show varuous traps and actions which can happen on not solving the puzzle.
Now save your work and go check it out in game.You can test it out from the main menu screen by pressing the thilda(~) key to bring up the console. Type "coc xxxxxxxx" where xxxxxxxx is the name of your cell.
You can view the final setup by downloading the complete plugin. The cell it is located in is called "puzzledemo01"
Barry Cogan - Author
Bethesda Game Studios - Creation Kit, The Elder Scrolls V: Skyrim
bwillb @ bethesda forums - Helping me figuring out puzzle pillars
I hope you find this tutorial of use! I am writing these tutorials as I learn on my free time. Please do not expect them to be perfect. If you find a mistake or an error I will be only too happy to fix it.
You can reach me at: me at offbeatgeek dot com. Any suggestions/constructive criticism/feedback is always appreciated :)