Fallout 4

RobCo Teleshopping supports addon mods which inject new products or product categories into the shop. Here's how to create such a mod:


The Basics

  • Product Categories are FormLists, and are stored in the FormList "praTS_TeleshoppingList_Root". They must have a name, and at least one product.
  • Sub-Categories are not possible.
  • Injected entries will always appear below the default entries.
  • A Product Category must contain either item baseforms (Weapon, Armor, Potion, MiscItem, Key, Book, Holotape, Ammunition), or a Product Helper.
  • A Product Helper is an Activator with the script "praTS:ProductHelper" attached. In can be used for advanced product configuration, like Product Bundles.
  • A Product Bundle is several items packed into one product, like the Baseball Set, consisting of a bat, a ball, a glove, a home plate, and 3 bases.
  • By default, the shown price is calculcated by dividing the product's value by the value of the Pre-War Money item, and multipylling it by a surcharge factor (rounding up).

Warning: RobCo Teleshopping can display at most 128 categories or products. Try not to overfill a category. If you plan to add a lot of products, consider adding your own category.

Preparation
To begin, open the CreationKit and load "TeleShopping.esl"

Create a new Global Variable, call it something like "myMod_MyModVersion". Set it's value to 1, and flag it as constant. If you need to update your mod, you must increment this global's value, in order to signal to the mod that it must regenerate it's lists.

Duplicate the quest "praTS_InjectorQuest_Template", call it something like myMod_TeleshoppingInjectorQuest. Open it, "Start Game Enabled".
In it's script properties, put the "myMod_MyModVersion" into "myVersionGlobal".

Adding A Single Item

The simplest way to add a new product to a category, is to inject it into one of the existing categories.
To do so, add a new entry in your quest's script properties under "myNewProducts". In that entry, set "productOrList" to your item, and "targetCategory" to the category in question.

To see the list of available categories, open "praTS_TeleshoppingList_Root".

Adding Several Items
If you want to add several items at once to the simple category, you don't have to add them one-by-one. Instead, create a FormList, fill it with your products, and put the FormList into "productOrList" as described above.

Adding a new Category
To add a new Category, simply create a new FormList, and add it to the script property "myNewCategories" on your quest. Make sure it has a name. Then, just fill it with your products.

Using a Product Helper

A product helper can be used instead of an actual item. It can override the item's name, price, add a product description, sell more than one item at once, or sell a bundle of different products.

I also recommend using Product Helpers when selling items which can have sorting mod tags, like MiscItems. This way, these sorting tags are never displayed in the terminal.

To create a Product Helper, duplicate "praTS_ProductHelper_Template".
Name it like you want the product to show up in the terminal. If you want to sell more than one, add the amount to it as well, like "My Item (10)".

In it's script properties, put your item into "ProductForm".

If you are selling more than one, put the amount into "numProducts". This will be automatically multiplied onto the item's value, unless "OverridePrice" is also set.

If you want a product description, create a new Message, with your text in the Title field. Put it into "ProductDescription".

To override the price, put the value in caps into "OverridePrice". The "numProducts" will not be multiplied onto it, so pick a good value for the entire stack.

You can also disable the "UseObjectName" setting. This will make the name of the actual item be displayed, instead of the name of the Product Helper. If you do this, keep in mind that the configured item amount will not be shown, but any sorting mod tags on the item's name will be.

Creating a Product Bundle

To make a Product Bundle, create either a FormList or a LeveledItem containing all of the necessary items. I recommend the latter, since then you can also specify an amount on a per-item basis. Just make sure to check "Use All" to actually recieve every item from the list.

After that, set up a Product Helper as described above, where "ProductForm" points to your FormList or LeveledItem.

In this case, you must specify an "OverridePrice", it won't work otherwise. If you use a LeveledItem, you must also use the helper's name, because LeveledItems don't have one.

Article information

Added on

Edited on

Written by

pra

0 comments