
StoryKit
Add an NPC to Outward as plain data: StoryKit builds the character, spawns it at a fixed spot, wires its dialogue, and compiles a trainer skill tree that sells from the vanilla Trainer UI. Requires SideLoader at runtime. A library dependency.StoryKit — add an NPC, trainer, and skill tree
📖 Full documentation: StoryKit wiki page
A BepInEx library plugin for Outward (Definitive Edition, Mono branch) that lets a mod add an NPC: a standing character in the world with a dialogue graph and, if it's a trainer, a full in-game skill tree the vanilla Trainer window sells from. A consuming mod describes the NPC as plain data; StoryKit builds the character, spawns it at a fixed spot, wires its conversation, and compiles its skill tree — no custom UI, no NodeCanvas hand-editing.
StoryKit covers NPCs, trainers, and dialogue. A quest/story-event engine is not part of the kit — there is no quest-authoring API here.
Requires: BepInEx 5 (Outward's Mono branch — see Compatibility), ForgeKit, and SideLoader present at runtime.
Installing (for players)
You don't install or interact with StoryKit directly. It arrives as a dependency of a mod that adds an NPC — for example Beastwhispering, whose animal-taming trainer is a StoryKit NPC that sells the mod's pet-skill tree. The NPC and its dialogue are what you actually meet in-game; StoryKit is the plumbing behind it. A mod manager installs it automatically alongside whatever mod declares it as a dependency.
Consuming the kit
A consumer calls NpcRegistry.Register(NpcSpec) in Awake, describing the NPC's placement,
appearance, dialogue tree, and (if it's a trainer) the skills it sells. NpcDirector spawns the
registered NPC at player-ready on every scene load (master-only in co-op, duplicate-safe), and
DialogueBuilder compiles the described conversation into a real NodeCanvas graph reusing
SideLoader's own trainer dialogue nodes. See the wiki page for the full NpcSpec/SkillTreeDef
shape and worked examples.
Compatibility
Outward must be on its Mono Steam branch, not the default IL2CPP build. If your game runs but nothing looks modded, check that first.
Config
BepInEx/config/cobalt.storykit.cfg — kill-switch and diagnostic-recon toggles. Commands (dev
verbs) live on BepInEx/config/StoryKit_cmd.txt.