Simple custom courier
A Simple Custom Courier
This page is about how to make a courier that is similar to the courier in the base game, but not as complex.
This operation requires:
- Creation Kit
Create the Courier's Essentials
In the Creation Kit, create a new Actor that will be your courier. You can do this by going to Actors --> Actor in the Object Windows and changing the editor ID of an existing actor (like the original courier, for example) or you can create a new NPC by right-clicking in the list of actors and clicking "New". Another term for an actor is NPC or Non-Player Character; the terms actor and NPC will be used interchangeably.
- Once you have created your courier, go to the Cell View window and make sure the dropdown menu for World Space is " Interiors". Within the list below this menu find "WICourierCell" and double-click the name of the cell. The cell will appear in the Render Window. Click and drag your created courier into the middle of the room from the NPC list in the Object Window.
- Create a container that the courier will use to house the letters that he/she will deliver to the player. The original courier uses a barrel specially named "WICourierContainer" which is suitable for this purpose.
- Place an X marker near your courier's position in the room (in the Object Window, select All and search for "Xmarker"). This X marker must be inside the room and allow the courier to be teleported onto it.
Now that those items have been placed, give each of them a UNIQUE editorID (i.e. each of those three things will have a different editor ID). You can use something like "MyCourierContainerRef" and "MyCourierRef" etc.
Global Variable
The courier heads out when a Global Variable is set to higher than 0, so we need to create a Global Variable for our courier. Go to the Object Window --> Miscellaneous --> Global. Right-click in the list and click "New", then enter in a name for the variable. The radio button should already be set to "Short" and the Value should already be "0". Leave them as they are.
AI Packages
Next you will need to create (er, basically you will just copy the existing courier's packages) AI Packages for your courier. Go to the Object Window --> Character --> Package and enter "courier" in the search box. You will see a few packages but you want the two that are "WICourierDeliverToPlayer" and "WICourierWaitForPlayer".
- Double-click the "WICourierDeliverToPlayer" package and give it a new ID.
Create the Courier's Quest
- In the Object Window, go to Character --> Quest. Right-click in the list of Quests and click "New". Give the quest any ID you want, and the name can be blank or anything at all, the player will never see it.
- Set Priority to 40
- Click the dropdown menu for "Event" and choose Change Location Event. This means that the Story Manager will check to run this quest when the player changes location.
- For quest type, choose None.
- Click the OK button to create your quest (the Creation Kit needs you to create the quest first before it can be fully used)
Now we have to add aliases to the quest, these are very important. Open up your quest again and go to the Quest Aliases tab. Make sure your courier and the things we added in his/her cell are visible in your Render Window, it will make this easier. Here we go:
- Right-click in the empty field and select New Location Alias. Type in "Location" for Alias Name, and click the radio button for "Find Matching Location", then click the "From Event" checkbox. The dropdown menu should say "Change Location Event", if not, change it to that. Click the next dropdown menu and select "New Location. This makes it so that the quest recognizes when a player enters a new location and gets that location's information for the courier.
- Add a New Reference Alias, name it "LocationCenterMarker". Click the Location Alias Reference radio button, and make sure the following dropdown menu is "Location" and the RefType is "LocationCenterMarker".
- Add a New Reference Alias, name it "Courier". Click the "Specific Reference" radio button and click the box next to it labeled "Select Forced Reference". Click "Select Reference in Render Window" and double-click your courier when it brings you to the Render Window. If you have not given your courier an editorID, you will not be able to select him/her! You will need to add a few more things to the courier alias later.
- Add a New Reference Alias, name it "Container". Like with the courier, select the Specific Reference radio button etc. and select the container you put in the courier cell. Once again, if it doesn't have a unique ID you won't be able to select it.
- Add a New Reference Alias, name it "Marker". As with the courier and container, select the X marker you placed in the courier cell with the Specific Reference in the Render Window.
- Add a New Reference Alias, name it "Player". This time you will select the Specific Reference radio button, click the "Select Forced Reference" button but you will just click the cell dropdown menu and select "(any)" at the top of the list. This allows you to then select "Player" at the top of the list in the Ref dropdown menu.
Whew. Now you've created all the aliases for the courier. But don't close the quest yet!
Create the Courier's Dialogue View
Click the "Dialogue Views" tab next to the aliases tab. Right-click in the empty field on the left side and click "New". Give this a name that ends in something like "Dialogue" or "View".