The Pet Store allows players to not only fill their settlements with interesting creatures, but also to gain themselves an extra creature companion.
The system behind it does a number of things:
We have several additional features planned long term for this system (so keep an eye out on patch notes for these to be introduced):
(There are also plenty of dream scenarios we could chase with this in the future, such as trainable pets, or battle systems, but don't get me started on all of my feature creep ideas for this as its one of my favorite parts of SS2... Maybe one day when we finish our already crazy list of plans for settlement gameplay features and Chapter content.)
Let's start with the easiest part, injecting new Pet Names!
You can set the model if you like, we opted not to, and just used the default Dog Collar, but no reason you can't change it to something else. Just be sure to pick a Preview Transform to match if you do.
That's it!
Now that your names are set up - you can tell SS2 about them so they become available to name your little buddy!
If this is your first time working on an addon, or you haven't created addon configuration data yet, check out this tutorial).
On to the meat of the guide. Setting up pets is a multi-step process. I'm going to focus on setting up the records SS2 requires, including the required settings on the actual ActorBase record. So you can get an existing creature into SS2 as a Pet quickly!
This will NOT go into any detail on setting up new NPC records, or custom creatures. For now I will just suggest you take the creature you want to make a pet, and duplicate one of their ActorBase records to start with so you can tweak it.
There is a ton of power and flexibility in the ActorBase form, including introducing unique variations through the Object Template and Leveled Character system of the Creation Engine, but these topics are outside of the scope of this tutorial and you should research them separately if they interest you.
The ActorBase record represents the actual template that will be used to generate the player's purchased pet.
We'll go through an example copying a specific NPC record, and you can repeat these steps for other creatures you want to tackle.
In general, the only box you should have checked in here for a Pet is Protected unless you really know what you are doing. For example, if you wanted to sell a unique creature, then you would need to use a script to un-inject your creature's purchaseable record, which is not a simple task.
Some creatures will be in factions you can leave, to check that, double-click on their default faction and look at the General tab. If you see PlayerFaction listed as an enemy, you need to remove that faction.
You can read more about this tab on the Skyrim portion of the CreationKit.com wiki.
The key for a good pet, is ensuring you aren't using Very Agressive or Frenzied, and do not use Aggro Radius Behavior. Otherwise you can use the other fields at your discretion to make a pet that acts how you want it to.
The other part of AI to keep in mind is the AI Packages tab, which for our Deathclaw example is set up well. If you find any packages are defined in the upper white box area of this screen for other creatures, you should remove them.
If the creature you duplicated already had this record, you can simply make sure the WorkshopParent is filled out, and that bCountsForPopulation box is unchecked, and leave the remaining properties as they were.
When you start looking for creatures to set up, your best bet is to start with records that begin with Enc in their ID. These generally don't have any templates set up, and instead are themselves used for creating templates.
The Templates tab will limit what you can change on your record, and so if you are ever unable to follow a step form this section in the future, try clearing out the entries in the Templates screen as those will prevent certain edits.
This record doesn't need to be injected anywhere like most SS2 content, that will instead happen to the record you create in the next sub-section.
It's not possible to put NPCs in inventories, much less the barter system. So we use a proxy item that serves as the item the player buys as well as the controller for handling dynamic Pet Store display (ie. allowing your creature to sometimes appear on the plot building where it is for sale).
Technically, this does support remote loading creatures through the UniversalForm system, but be sure to test any you use this way. Since you won't be able to make the customizations we did in the previous sub-section, you're at the mercy of however that creature is setup in that plugin.
Search under WorldObjects > Furniture for part of the creature name to try and find some that will work. You can even use Ambush furniture if it looks good in the preview, as that won't actually trigger Ambushes without some other configuration.
You can also set the model if you like! At the time of this writing we had only done it for our Dogs, but will very likely go back and do it to all of our creatures in a patch.
You can generally find a good model to use by searching for your Creature type under Items > ArmorAddon. These records have a Biped Model field that you should be able to use in the Model field of your Purchaseable Pet form's model field. Just be sure to set the Preview Transform dropdown on your Purchaseable Pet form to something similarly sized, or else the model will be ridiculously huge on the player's screen.
Time to get your pets put into the Pet Store system so you can purchase them and test out how they operate!
If this is your first time working on an addon, or you haven't created addon configuration data yet, check out this tutorial).
To test in-game, build and assign a settler to a Commercial Plot, then choose the Pet Store class from the Choose Building Plan menu of the ASAM Sensor. If you haven't unlocked this yet, you can force unlock it via the Tools > Cheats section of the holotape.
Once you've assigned the settler and chosen the Building Class, you can select the plot in console use this console command to jump to whatever level you set your iVendorLevel field for your purchaseable item.
cf forceplotlevel X -1 (where X is the level you want the plot to go to)
SS2 should automatically inject newly registered Pet Store Item lists into all vendor inventory, but if not, the inventory is reset for settlement vendors every 48 hours, so you can sleep or use the passtime console command to trigger their inventory reset.
After purchasing your pet, you will receive a prompt asking you to assign it a Settlement home. The creature should appear near the plot or you within a few moments of completing the transaction.
If you already have a pet following you from the Pet Store, your new purchase may start wandering towards the selected settlement, otherwise it will be following you. Either way, if you get close to it, you should find an option to bring up a menu where you can handle things like Renaming or making your active pet (to test out your new name injections if you made any!)