top of page

Toy Box Authoring

Updated: Nov 5, 2022

No scripting is required. You need art assets for your new toys, or you may clone toys from Toys. You need some basic knowledge of using Creation Kit or XEdit.

To get started, download the Toy Box Template. It's on the Toys&Love DL page.

Follow this guide...

Guide - How To Make A Toy Box:

Summary - Its as simple as completing these:

  1. Fill ToyBoxHandler script Properties

  2. Add Toys in Armor/ArmorAddon

  3. Fill FormLists, designating toys to their slot names

  4. Fill the LeveledItem list, for merchant use

What This Guide is NOT... It's not a guide for Creation Kit.

This guide requires that you have a working dev environment (the Creation Kit etc), and some knowledge of using it. If you need help, there are other resources on the internet that can bring you up to speed.


Important: Creation Kit needs supporting source files available to it, in order to open & edit properties for your toys. See Troubleshooting #2 at the end of this article or see Compile Requirements in Mod Author's Documentation.

Steps:

  1. Download Toy Box Template from the Toys Framework download page - Downloads Here

  2. Install it with a mod manager. The template is a mod like any other basic armor mod. Toys is its only requirement, and must also be installed

  3. Load up your game. In the Toys MCM - Toy Boxes tab, select "Template" from "Selected Toy Box" (1rst pic). You will see that the template has two toys. They are working samples. Feel free to modify and use them in your own toy box, or for practice

  4. Note that the name "Template" will rename to your own "short name". Toys will be arranged under headings for each slot, like "Neck" in this example. The numeric labels, 0 and 1, are the "index" that you control, in other words, it's your sort order

  5. Load up Creation Kit. The following CK steps can alternatively be done in XEdit but this guide is going to use CK

  6. Select File - Data - click on ToxBox Template.esp in the list, then click the "Set as Active File". Don't select anything else. Click OK and the ToyBox Template plugin will now load

  7. Type "Toy" in the Object Window filter (2nd pic). Select Quest in the tree menu. Double click on ToyBoxHandler to open it. On the Scripts tab, select ToyBoxHandler and open its Properties.

  8. Edit the properties in the 3rd pic. Changing any other properties will break it. The purpose of each property is self-explanatory. More details for each can be found within the ToyBoxHandler.psc script. Full Name and Version are only used in Toys logging. Short Name is seen in the Toys MCM.

    1. Updated.. ToysVersionRequired is no longer a property. The version is now stored in a JSON file. Used to determine if the Toy Box changed and needs re-load

    2. Location: Data/SKSE/plugins/<your ToyBoxShortName>/ToyBoxVersion.json

    3. File is added automatically the first time Toys&Love loads your Toy Box, and the Version is set to v1.0. Make sure to include this file when you Package & distribute. Change the version, by editing the JSON file, if your toy box is released with changes, so that it auto-reloads

  9. Add your toys in the Armor and ArmorAddon portions of the Object Window. The sample toys that come in the template are shown in the 4th pic and can be used to see how toys are set up. The prefix is TBT, so type "TBT" in the filter to view. It's important that you adopt your own prefix for your mod. Details on setting up your toys are in the Mod Author's Documentation, under the "Toy Setup & Properties" section.

  10. Select FormList in the tree. Use "ToyBox_" in the filter. This is where you list your toys so when they are loaded into Toys Framework, they are categorized by their slot name. For example, the sample toys are in ToyBox_Neck. You can open the FormList, then switch back to Armor, and drag and drop into the FormList. It's that easy.

    1. Only place toys a user should see. If your mod does other things, you might keep some toys private. Also, the "transformed variant" of a toy would not normally be shown to a user

    2. Order within each list is the order you see in the Toys MCM. The index here is displayed in the MCM. This index is also what is used by a mod author in the GetToys() function, if they are using your toys explicitly (i.e. not random selection). You should avoid changing the index/order in future releases, for that reason

  11. Select LeveledItem in the tree, and then with "ToyBox_" in the filter, open ToyBox_ALL. In this list you drag and drop ALL toys you want to be seen by the user, for the purpose of merchant containers. A mod such as a bondage shop uses this. These would normally be the same toys you placed in the FormLists, but can be different

  12. Don't forget to rename Toy Box Template.esp to your own mod name, and to make any mesh/texture folders, your own unique name. ESL Flagging for SE is strongly recommended if the mod fits the criteria to be ESL

Your mod can be more than a Toy Box, since you can add other content. It could become a quest mod that happens to also contain a Toy Box. A Toy Box can be merged to become part of a mod. If you have an existing mod and want to include a Toy Box within, copy all the records from the template to your mod, minus the sample toys.

Further documentation can be seen within ToyBoxHandler.psc.


Note: Max Toys in a Toy Box is 110, excluding variants that are not exposed to the user in MCM (i.e. only the toys you placed in the box's FormLists are part of the count. It's an MCM interface limit.

Troubleshooting

1. Why is my toy invisible?

The most common causes:

  • slot (partition) within the nif for your toy, is not the same slot assigned in your Armor and/or ArmorAddon

  • the slot you've assigned in your Armor item is not the same as the slot you've used on the ArmorAddon

  • the slot you've used in the above is not correct for the ToyType you've assigned (the ToyType keyword)

  • the ToxBox FormList that you've placed your toy into, is not the matching ToyType you've assigned to the toy

2. Why am I getting errors when trying to edit script properties?


Pic 1

Pic 2

Pic 3

Pic 4

Pic 5


2,414 views
bottom of page