-
Notifications
You must be signed in to change notification settings - Fork 0
Creating A Plugin
Linear Spell Progression has its own format for plugins. First, download the Plugin Development Kit from releases. Below is an overview of the plugin and a guide to editing it. For testing, use Don't Eat Spell Tomes.
The plugin is made of a Package and at least 4 FormLists, arranged in a tree structure.
Image-based diagram
Text-based diagram
- Master List (in LinearSpellProgression.esl)
- YOUR Plugin!
- Spell Tomes
- Some Spell Tome (Repeatable)
- Some Spell Tome (Repeatable)
- Some Spell Tome (Repeatable)
- Spells
- Matching Spell (repeatable)
- Matching Spell (repeatable)
- Matching Spell (repeatable)
- Prerequisites
- Spell 0's Prerequisites
- Single Spell
- Requirements List
- Some Spell (Repeatable)
- Some Spell (Repeatable)
- Some Spell (Repeatable)
- Spell 1's Prerequisites
- Single Spell
- Requirements List
- Some Spell (Repeatable)
- Some Spell (Repeatable)
- Some Spell (Repeatable)
- Spell 2's Prerequisites
- Single Spell
- Requirements List
- Some Spell (Repeatable)
- Some Spell (Repeatable)
- Some Spell (Repeatable)
- Spell 0's Prerequisites
- Spell Tomes
- YOUR Plugin!
A quick look in xEdit shows that the template includes an AI Package??! What in the world? Well, allow me to enlighten you. I've used the Package to hold the script needed to install your plugin. Why not use a Quest, you might ask. Well, I've heard reports about the OnInit()
event having oddities and inconsistencies on Quests, and so I opted for another form that can hold scripts—and opted for packages. Because they're not a base object (like an Activator or Static), I don't expect xSE plugins to mess with it (causing a very minor performance hit). And because of its EditorID, I don't expect users to attempt to apply it to an NPC.
Alright, so now you know what that's all about. You may even understand this enough to jump in right now! But if you're not, here's what you do:
- Rename the plugin file. Don't want a bunch of plugins all called
LinearSpellProgression Plugin Template.esp
, now do we? - Open the Plugin Template, alongside any plugins you want to add spell prerequisites to, in either SSEEdit (Recommended) or the Creation Kit.
- Navigate to the FormLists. If you're doing this in the Creation Kit, you can search by `LSP_`
- Rename the FormLists using the EditorID Scheme below
- Balance to your heart's content! Here's how:
- Find your Spell Tome. Add it to the Tomes list.
- Add its corresponding Spell to the Spells list
- Add its prerequisites to the Prerequisites list. This can be EITHER a FormList or a single Spell
Do note these items' indexes must align. So if the Spell Tome for Fireball is at index 2, the spell Fireball should be at index 2 in the Spells list and the prerequisite spell/list should be at index 2 in the Prerequisites list.
It's a (relatively) simple system.
-
Universal Ending:
[DLC/CC/MOD]
_
{{3-letter abbreviation for author, such as BGS}}_
{{2-Digit Number}}{{Human-readable name}}
Example:DLC_BGS_00Skyrim
-
Plugin-Level:
LSP_Main_
+ Universal Ending
Example:LSP_0Tomes_DLC_BGS_00Skyrim
-
Tome:
LSP_0Tomes_
+ Universal Ending
Example:LSP_0Tomes_DLC_BGS_00Skyrim
-
Spells:
LSP_1Spells_
+ Universal Ending
Example:LSP_1Spells_DLC_BGS_00Skyrim
-
Prerequisites:
LSP_2Pre_
+ Universal Ending
Example:LSP_2Pre_DLC_BGS_00Skyrim
-
List of a single spell's prerequisites:
+ Universal EndingLSP_
{{Spell Name}}_
Example:LSP_FlameCloak_DLC_BGS_00Skyrim