Porting ASLAL Plugins - KrisV-777/Alternate-Perspective GitHub Wiki
Alternate Perspective and Live Another Live are both Alternate Start mods that follow a similar trend to allow players to start their journey from a set or available starting options. The characteristics these two mods follow share some similarities, which makes translated one mods starting options into the other quite easy in most cases.
Before we begin, ensure you have the Creation Kit installed and properly set up. I also recommend installing Creation Kit Platform if you haven't already. We will also need xEdit to remove the dependency later.
Step 0: Setup
Before doing anything else, you want to start the Creation Kit (duh) and load the plugin which contains the starting option you want to port. It may seem more beneficial to create this port as a patch in a different plugin, but remember you will have to make changes to the plugin anyway in order to remove the LAL dependency from it. Once loaded, create a new quest. This quest will be the entry point for Alternate Perspective and defines all the important details when starting the starting option via Alternate Perspective.
Confirm the quest creation and open it again to access all quest tabs and move to the Quest Stages tab. Create a new stage and make sure to mark it as a Start Up Stage. This is important to ensure the script is actually run when the quest is started. You can move the quest to the side now, we will be coming back to this in a moment.
Step 1: Statue Dialogue
Lovating the statue dialogue is the first and most essential step that you want to take. The starting options in LAL are presented to you when talking to the statue in its starting cell. The first step will be to find this dialogue, which is usually stored in one of the quest objects referenced by the mod. Once you found it, you should be seeing a Topic Script inside it that looks similar to this:
ChargenQuest.SetAddonQuestStage(10, TempleQuest)
Here we need to do a little bit of scripting. In the Quest you just created, you want to add the following into the Papyrus Fragment box of the Start Up Stage we created before:
TempleQuest.SetStage(10)
Ensure to adjust TempleQuest & the desired stage (here 10) depending on which values were given in the LAL Topic Info Script. Next, take a look at the Topic Info's properties, and copy the one representing TempleQuest into the properties of the quest fragment script. Also fill it out with the same value as in the Topic Info.
If you did everything correctly, you can now confirm the Quest you created and it should close the window without any errors.
Notice: Sometimes quest fragments are a little more complicated. In these cases, you still want to copy over everything it does in the Topic Info, but ensure to remove any references from objects owned by LAL. I can't cover everything here for obvious reasons and won't go into much detail beyond this, but with some basic understanding of Papyrus scripting it shouldnt be too difficult to handle. LAL script objects are easily identified by their arth_lal prefix.
Step 2: LAL Dependency
As for Alternate Perspective, this is pretty much all the Creation Kit work needed to get the option displayed in Alternate Perspective. The next step will be to get rid of the LAL dependency, since we can't have both Alternate Start mods installed at the same time.
- First things first, the dialogue topic you copied the starting script from, delete that. We no longer need it and it most certainly has a direct reference to some LAL objects.
- Next, you need to remove the script references that are linking to LAL.
- A commonly found line would be
ARTHLALRumorsOfWarQuest.RegisterForSingleUpdate(0.25)which can be completely removed. - Also look for any script properties starting with
arth_lal. As already mentioned, these scripts are usually introduced by LAL and we no longer want them. It is unlikely that you encounter many of them or that any of them are actually important to the alternate starting scenario itself. I still recommend you to double check though.- In case a script is necessary to be preserved as it contains some vital logic for the quest to function, you still want to remove it and replace the script with something you can include without relying on LAL to be installed.
- Also remember to remove any properties from the script objects themselves. It is not enough to just delete the lines in the Papyrus Script and recompile.
- A commonly found line would be
- Lastly, it sometimes happens that mods use objects in LAL, such as Friend Factions, themselves. Make copies of these objects and reimplement them in place of their LAL counter parts to remove dependency to the plugin itself.
Once you're done, open xEdit and load the Plugin in question. Right click it and select Clean Masters. If you successfully removed all LAL references, then the dependency on LAL will be removed in the process.
If this is not the case, right click the mod again. This time, you want to select Apply Script and run the Report Masters script. This will print you a list of all remaining references to LAL. Replace them either via the CK or using xEdit directly, whichever you are more comfortable with.
Repeat this process until you successfully removed the LAL dependency.
Step 4: Alternate Perspective
Now that you've gotten here, the only left to do is to inject your starting option into AP. First things first, you want the FormId of the quest you created in Step 0. Once you have the FormId you can close the CK and xEdit, we no longer need the Creation Kit at this point. In fact, at this point you won't be needing this guide anymore. On the side bar you find another page talking about how to create an Alternate Perspective event, head over there and follow the instructions.
The quest id mentioned there is the FormId you just collected, and the plugin name.. well.. that's self explanatory isn't it?
If you wonder where exactly the dependency to Alternate Perspective happens: It won't. One of the benefits of Alternate Perspective is that its integrations are completely silent, but since you made this conversion specifically to enable an Alternate Perspective integration, you can add one purely for documentation purposes either using xEdit or by loading the add-on plugin together with Alternate Perspective's plugin into the Creation Kit.
You're done here now, good luck and have fun testing!