This guide is geared towards someone who has little-to-no knowledge of the CK.
For those of you who are more knowledgeable, skip to the Quick Instructions section at the bottom of the page.



Download the Skyrim Creation Kit (if you don't already have it), then navigate to your base Skyrim directory (Where the .exe files are) and open CreationKit.ini. Find the section labeled [General], and underneath it add the line bAllowMultipleMasterLoads=1. Save and close the document.



Extract SkaldsMail.bsa to your data folder using a tool like Bethesda Archive Extractor, making sure that the file structure for the loose files is as it should be (Meshes end up in Meshes, Scripts in Scripts, etc).

Download SSEEdit and install it by extracting the files in its archive to your base Skyrim directory. Start it up by opening SSEEdit.exe, make sure that SkaldsMail.esp is checked in the Module Selection window, then click OK. Wait for the message Background Loader: finished. When it appears, expand SkaldsMail.esp and click File Header. Over on the right, right-click the field next to Record Flags (sorted) and click Edit. Check ESM, then click OK.



Click the menu button in the top-left, then click Save. Make sure SkaldsMail.esp is checked, then hit OK. Close SSEEdit.

Next, start up the Creation Kit. In the top-left click File -> Data to bring up the list of plugins and masters. Scroll to SkaldsMail.esp and mark the checkbox next to it by double-clicking. If you're adding a mailbox to a house from a mod, mark that mod's checkbox as well.



Hit OK, click Yes to the warning about not having an active file selected, and wait for everything to load. It will probably take a while. When any warnings appear, just click Yes to All (This is completely normal).




After everything is done loading, the first thing we're going to do is create our new mailbox's container. On the left-hand side of the Object Window under World Objects, click Container. Then, in the top-left of the Object Window type "D_MailboxContainer" into the Filter text field. Right-click one of the forms in the list which starts with "D_MailboxContainer" and select Duplicate from the context menu. This will create a new form with the suffix DUPLICATE001



Right-click your newly created duplicate form and select Edit from the context menu. In the new window which appears, change the ID to something easy to remember (I recommend something like "MailboxContainer_MyHouseName"), and change the Name to the name you would like your mailbox to appear as in-game. I'm adding a mailbox to the Alchemist's Shack near Ivarstead, so my ID is "MailboxContainer_AlchShack", and my Name is "Alchemist's Shack Mailbox".



Hit OK, then click NO when prompted to create a new form. It will ask if you're sure you don't want to create a new form. You're super-duper sure, so click yes.
Next, in the Cell View window, click anywhere in the list of cells and begin typing "WICourierCell" until the cell with the EditorID WICourier is highlighted. Double-click on it to load it, and again hit Yes to All when warnings appear. 



After the cell has loaded, take a moment to familiarize yourself with the camera controls, if you aren't already familiar. This page has a section on Camera Navigation in the Render Window. When you're done, drag-and-drop the container item we created to the Render Window, somewhere outside the walls of the room.






Now, in the Cell View window, navigate to the cell which contains your house. If you don't know what it's called or where it is, there's a very easy way to find out. Start Skyrim, go to your house, and open the console with the tilde key. Click on something nearby, such as a rock, and write down the RefID which appears. The object you choose should ideally be something NOT added by a mod, otherwise you'll need that mod loaded in the editor, so make sure the RefID starts with 00010203, or 04.



Quit Skyrim. Back in the editor, click Edit -> Find Text. Enter the RefID you wrote down, then click the Objects, etc tab and hit Find Text. You can then just double-click the reference it finds, and it will automatically load the appropriate cell in the Render Window.



With the Render Window selected, double-tap M to hide markers, then navigate to roughly where you want to place your mailbox. Now, in the Object Window under World Objects click Activator. Then, in the top-left of the Object Window type "D_Mailbox" into the Filter text field, and drag the D_Mailbox form into the Render Window. You may then drag your created mailbox around by clicking and holding left-click, and rotate it by clicking and holding right-click. You may lock movement to a particular axis with the Z, X, and C keys. For finer adjustment, you can right-click the mailbox and select Edit to change specific coordinate values. Take some time to position your mailbox exactly where you want it.






Now, right-click the mailbox and select Edit. Un-check Respawn, then click the right arrow next to the tabs to navigate all the way to the Scripts tab. Click it, then click Add, and type "D_MailboxMaster" into the Filter text field. Double-click D_MailboxMaster in the script list to attach it to the mailbox.



Now, select D_MailboxMaster and click Properties. In the bottom-left of the window that appears, click Auto-Fill All. Then in the properties list, find ContainerForThisMailbox. Select it by clicking on it, and click Edit Value. Click the Cell dropdown, and begin typing "WICourierCell" until it appears. Select it. Click the Reference dropdown and begin typing the ID you gave your container during the Adding Your Container step, or just find and select it in the list.



Scroll down in the properties list until you find the D_MailboxAliasStorage property. Select it and click Edit Value, then begin typing "D_MailboxHelper" until it appears. Select it.



Scroll down in the properties list until you find the property Mailbox1. Select it and click Edit Value, then in the Pick Quest dropdown begin typing "D_MailboxHelper" until it appears. Select it. Click the Pick Alias dropdown, and select Mailbox1. Follow the same process for the properties Mailbox2, Mailbox3, Mailbox4, Mailbox5, and MailboxPrimary. MAKE SURE you select the matching alias for each one.



Now, take a moment to think about how your mailbox will work. Do you want it to be a mailbox you need to pay for, or should it be free? If it's free, should you require a house key to claim it? Should it only be available after a certain quest? Think that over, then fill out the following properties according to how you want the mailbox to function:
  • BuyPrice: The price you pay to purchase the mailbox (Can be left NONE if HouseMailbox is True)
  • RentPrice: The price you pay per month to rent the mailbox (Can be left NONE if HouseMailbox is True)
  • HouseMailbox: Set this to True if the mailbox should be free
  • KeyForOwnership: If HouseMailbox is True, this can point to a key required to claim the mailbox (Can be left NONE if HouseMailbox is False)
  • OwningQuest: If HouseMailbox is True, this can point to a quest which you should be able to claim the mailbox after a certain stage in (Can be left NONE if HouseMailbox is False)
  • QuestStage: If HouseMailbox is True, this defines the stage of OwningQuest after which you can claim the mailbox(Can be left NONE if HouseMailbox is False)

If you want the mailbox to be free from the start with no requirements, set HouseMailbox to True, OwningQuest to D_MailboxHelper, and QuestStage to 0

There's one more property to fill out, distance, but it requires a bit of explanation. Distance is represented by a single float (a number with decimal places). The value to the left of the decimal represents longitude (east/west), with 0 being right around Markarth. The value to the right of the decimal represents remoteness, ie how difficult it is to reach the location. The table for vanilla locations is below:



Generally speaking, if it's near one of these locations you can get away with using the same value, or a very similar one with a slightly different remoteness value. The formula for determining travel time in hours is as follows: ((Greater_Longitude - Lesser_Longitude) + ((Remoteness1 + Remoteness2) * 2.5)) * 24
Packages sent between mailboxes with the same distance value will always have a travel time equivalent to the Base Shipping Time set in the MCM.

Once you finish setting up your mailbox's properties, hit OK, then hit OK again. In the top left, select File -> Save and choose a name for your plugin to save it. Close the Creation Kit.




Open SSEEdit again, and make sure the new plugin you just made is selected, then hit OK. Wait for the message Background Loader: finished. When it appears, expand the plugin you just made, and expand the Worldspace section (Or Cell if your mailbox is placed in an interior). Continue expanding until you find your placed D_Mailbox object. Select it, then over on the right right-click the field next to Record Flags and click Edit. Check Persistent, then click OK.



Now expand SkaldsMail.esp and click File Header. Over on the right, right-click the field next to Record Flags (sorted) and click Edit. Un-Check ESM, then click OK. Click the menu button in the top-left, then click Save. Make sure both your new plugin and SkaldsMail.esp are checked, then hit OK. Close SSEEdit.

At this point it's a good idea to run SSEEditQuickAutoClean.exe on your new plugin, to make sure it doesn't contain any "dirty" edits (basically, vanilla records carried forward which have the potential to overwrite mods and cause problems).

Load up your plugin in-game and check out your mailbox to make sure everything works as it should. If so, quit Skyrim and delete the loose files you extracted from SkaldsMail.bsa. 

That's it! You're all done.



-




This section is for advanced users who know their way around the Creation Kit. 

Very briefly, what you need to do to get a new mailbox working is the following:


  • Flag SkaldsMail.esp as an ESM using xEdit
  • Unpack SkaldsMail.bsa to your data folder
  • Load SkaldsMail.esp in the CreationKit
  • Create a new Container form and place a reference to it in an easily-accessible cell, making sure its Name is what you want the mailbox to appear as in-game
  • Place a reference to the D_Mailbox activator wherever you want your new mailbox
  • Attach the script D_MailboxMaster to the D_Mailbox activator you placed and fill out its properties according to the Defining Properties section above
  • Save your plugin and open it in xEdit, flag the D_Mailbox activator reference you placed as persistent
  • Un-flag SkaldsMail.esp as an ESM
  • Delete the loose files you unpacked from SkaldsMail.bsa

Article information

Added on

Edited on

Written by

AlistairRodryk

3 comments

  1. StormBeyondReality
    StormBeyondReality
    • supporter
    • 1 kudos
    If I can find instructions on how to make a custom house compatible with LotD's Safehouse storage, combined with this might just get me using custom houses again that aren't just reworks of the in-city vanilla homes!
  2. Rohdog
    Rohdog
    • supporter
    • 0 kudos
    These are excellent instructions!
    I was able to add a patch for Wynter's Breezehome using your walk through.
    Thank you!
  3. urbon
    urbon
    • premium
    • 1,207 kudos
    Thank you!!