Skip to content
Bryn Stringer edited this page Sep 9, 2024 · 12 revisions

Creating a Seed Plugin

There is a seed plugin in the release and also the content folder.

Startiller works by laying out packins based on proc gen. Before building Startiller scans the selected plugin for packins that match have a editorid that contains one of the types defined in the generator.

As seen here: https://github.com/kaosnyrb/StarTiller/blob/9eb9660a521c907076c847b191e63292054eb32a/ssf.models/POI/Cellgen/FortCellGen.cs#L42

For example the Fort generator looks for to_pkn_wall_ which then finds all the packins that match that editor id.

When we are placing packins on the map we select one at random and remove it from the pool. This allows for a limitless amount of wall packins to be made which will be used in generations.

If an packins editorId contains "reuse" then it wont be deleted from the pool. This prevents you running out of packins to place.

We also inc# lude a worldspace that is cloned as a base to work on. We also grab the BTD file to copy over the terrain info

Squishing the formIds

Startiller currently has an issue where it doesnt like gaps in the formid distrubion. To fix that load the seed ESM in xEdit and rightclick on the esm and hit Renum er formids. This will squish the IDs into proper shape.

Backup -> Test -> prefab cycle

Startiller only works on ESMs.

The way Ive worked so far is:

  1. Build a new packin type in the esp
  2. Squish ids
  3. Backup esm amd esp
  4. Add code to add new type to gen
  5. test
  6. revert to backup esm, make more changes.

I use the Plugin bridge to go from ESM -> ESP : https://www.nexusmods.com/starfield/mods/10189

Making a POI Playable

Once youve generated a POI you need to edit it in the CK.

Convert it to an esp as mention above and then add the following to the new POI

Mapmarker Lvl_human_boss (for bounties) Alert box (for ai)

Creating a new generator

Ive tried to split the generation into a seperate interface:

https://github.com/kaosnyrb/StarTiller/blob/main/ssf.models/POI/Cellgen/StartillerGeneratorInstance.cs

which is passed into the POIbuilder

To make a new one create an implementation of this interface and add it to the form constructor and dowork function: https://github.com/kaosnyrb/StarTiller/blob/9eb9660a521c907076c847b191e63292054eb32a/Seedstarfield/Form1.cs#L23