I - What makes a bookshelf
Bookshelves in Skyrim are made of:
- PlayerBookShelfContainer, one per shelf your bookshelf contains. PlayerBookShelfContainers are containers like any other except that they are invisible and empty by default. These containers are remotely activated.
- a shelf you can choose among any piece of furniture that has shelves on which books can sit. In this tutorial, I'll use the CommonShelf03.
- PlayerBookShelfTrigger, one per shelf your bookshelf contains. PlayerBookShelfTriggers are activators that will be remotely activated.
- DefaultBookShelfBookMarker, as many as each shelf your bookshelf contains; the larger available shelves can contain up to 18 DefaultBookShelfBookMarkers. DefaultBookShelfBookMarkers are invisible and empty books that act as place holders for the books the player will put in the bookshelf.
- PlayerBookShelfClickTrigger, one per shelf your bookshelf contains. PlayerBookShelfClickTriggers are the activators the player interact with in order to add or remove books from the bookshelf.
- CollisionMarker, on each side of the bookshelf except the back. Frankly, I have no idea what these CollisionMarkers are for but each bookshelf I have seen in the game has them, so...
II - Preparation
For practical reasons, it is better that you create your bookshelf in a separate cell. Once you have loaded your plugin, click on World in the menu bar and then select "Cells".
In the window that opens, right click anywhere in the list and select "new". A dialogue box will open that requires you to give a name to your new cell. Name it "aaaabookshelf", so that it's the first cell in the Cell View window list.
It's in this cell that you'll test your bookshelf, so load it and put some floor and light in it. I'll use NorRmSmMidFloorOnly01 in mine. On this floor put a COCMarkerHeading on one side, the shelf you want on the other side and a light source in the middle. (Important: do not rotate the bookshelf when you place it in your cell, otherwise you may have problems following further instructions. )
III - Making the bookshelf
Now, the serious (and mildly tedious) work can begin:
1) Behind the shelf, put one PlayerBookShelfContainer; place it at the level of the lower book case.
2) On the lower shelf place one DefaultBookShelfBookMarker and orient it (for some reason, they come flat by default):
- rotation x: 90.0000,
- rotation y: 90.0000.
Make sure that there is some room left between the book and the wood.
3) Once the first book has been placed, duplicate it as many times as needed (maximum books 18, important).
4) After all the books have been placed, go to the PlayerBookShelfContainer that you put behind the shelf and double click on it: Move the PlayerBookShelfContainer reference window so that it's not hidden by the Render View Window and rotate the camera so that you face and see all the books. In the PlayerBookShelfContainer reference window, go to the "linked ref" tab:
5) Double click in the "linked ref" tab, in the "choose reference" dialogue box click on the "Select Reference" button, double click on the first book on the left; in the "Keyword" drop down menu select "BookshelfBook01" and click on OK.
Double click again in the "linked ref" tab, choose the second book, select "BookshelfBook02" in the "Keyword" drop down menu and click on ok.
Repeat the process for each book; make sure you don't overlook one. Click on OK in the PlayerBookShelfContainer reference window when done. Don't forget to save your mod too!
6) Select the bookshelf, go to the icons menu bar and click on the icon that has the shape of a cube with a "T" inside. A "Select Form" window will open, in the filter enter "PlayerBookShelfTrigger" without the quotes, select PlayerBookShelfTrigger in the results and click on OK. Your bookshelf is now surrounded by a nice trigger box. Use the handles to reduce it so that it surrounds the books on the lower shelf:
7) Get rid of the gizmo by pressing numpad key 2 and rotate the camera so that you can see both the trigger and the PlayerBookShelfContainer behind the shelf. Double click on the PlayerBookShelfTrigger you just created and
- go the the "primitive" tab and in the "collision layer" drop down menu, choose "L_TRIGGER",
- go to the "linked ref" tab. Double click in the linked ref tab, in the Choose Reference window, click on the "Select Reference" button and double click on the PlayerBookShelfContainer that is behind the shelf. Click on Ok and save.
8) Do not move the camera. Double click on the PlayerBookShelfContainer that is behind the shelf, go to the "linked ref" tab. Double click in the linked ref tab, in the "Choose Reference" window, click on the "Select Reference" button and double click on the PlayerBookShelfTrigger that is around the books. In the Keyword drop down menu select "BookshelfTrigger01". Click on Ok and save.
9) Click on the PlayerBookShelfTrigger that is around the books, go to the icons menu bar and click on the icon that has the shape of a cube with a "T" inside. A "Select Form" window will open, in the filter enter "PlayerBookShelfClickTrigger" without the quotes, select PlayerBookShelfClickTrigger in the results and click on OK.
Use the handles to move and resize the PlayerBookShelfClickTrigger.
Once moved and resized get rid of the gizmo by pushing the numpad 2 and double click on it. Then:
- go to the 3D Data tab and set Rotation Z to 180.0000 (for some reason the trigger comes with the wrong orientation making the trigger impossible to be reached by the player),
- go to the "Primitive" tab and check the "Player activator" box,
- go to the "Linked Ref" tab, double click in it, in the "Choose Reference" window, click on the "Select Reference" button and double click on the PlayerBookShelfContainer. In the "Keyword" drop down menu, select "BookshelfContainer", click on OK and save.
IV - Testing the bookshelf and finalising it
That's it for now; time to test your bookshelf. If your bookshelf doesn't work, try first resetting the PlayerBookShelfClickTrigger rotation to 0.0000. If it still doesn't work put the PlayerBookShelfClickTrigger rotation back to 180.000 and review everything you've done; you have probably overlooked something. Be patient with yourself.
All right, now that you've made one row of the bookshelf, you must make the other if needed. This can be done easily by duplicating the elements already existing and raising the duplicates to the second shelf.
Now that your bookshelf is finished, it remains to add the collision markers around it. Select the bookshelf and go to the icon menu, click on the "create collision cube" icon and press it:
Your bookshelf is now surrounded by a collision cube. Use the handles to resize it and place it on the left. Duplicate the collision box and move it to the right of the bookshelf.
Create other collision cubes and resize them using the same methods and place them:
- over the books and under the lower shelf, make sure they don't clip with the books,
- in front of the bookshelf, make sure the collision box doesn't clip with the books and doesn't cover the PlayerBookShelfClickTriggers:
There you are, you have made a bookshelf! To use it, select the entire bookshelf, copy and paste it wherever you want in your cells.