Skyrim Special Edition

This article is intended to give a basic guideline about the steps necessary to convert a Starting Option from Live Another Live to Alternate Perspective
Note that this is not intended a beginner tutorial, if you have no experience working with the CK or xEdit, you will likely have a hard time. With that said, let's start by comparing the fundamental architecture between LAL and AP:

  • In LAL, an Intro Quest is chosen by entering dialogue with the Mara statue and then sleeping in the Bed
  • In AP, Intro Quests are chosen by talking to the Messenger, which opens a menu to choose an option and then leaving the Starting Room

The Following Guide will cover the Steps taken to convert New Beginnings to Alternate Perspective. 

Prerequisite
  • The Creation Kit -- I assume you have a basic understanding on how to navigate it
  • xEdit -- This will simplify some things a lot and is mandatory to remove the LAL Dependency
  • Basic Papyrus knowledge -- You will not be able to do this without linking some properties and editing/writing some basic Code
  • PapyrusUtil -- Ensure its sources are in the correct folder (Sources/Scripts if you didn't tinker with .ini files)
  • The sources of the mod you wish you convert -- If necessary, use Champollion to decompile its .pex files
  • Alternate Perspectives "AddToQueue" Script -- Part of the Main File. Make sure the Script is in the correct folder


1) Finding the Statue Dialogue
The best way to start will be to find where exactly the Statue Dialogue is located. I recommend using xEdit for this, load the mod up and inside the "DialogueTopic" branch, look for the Dialogue that is used to talk to the statue. The Dialogue prompt the player uses is in the "Name" column of xEdit, on the very right of the leftern panel
Once you found it, check in its data for an entry called "QNAM - Quest". Remember this Quest (write it up somewhere if necessary) and open the Creation Kit, load the mod up and look for Quest you noted down; the Quest which holds the Statue Dialogue

Open this Quest and navigate to Player Dialogue, find the Dialogue you were looking for in xEdit. In the appropriate Topic, there will be (usually only 1) response, open it and ensure it has a Script attached to it which looks similar to this:
ChargenQuest.SetAddonQuestStage(10, TempleQuest)


Found it? Good! Finding this Dialogue is the first big step done.
You can close the response again and minimize the Quest, we will come back to this shortly

2) Creating Alternate Perspective's Option
In Alternate Perspective, each individual starting option is resembled by its own unique Quest, which is exactly what we are doing now!
Create a new Quest and make sure to confirm the Quest and reopen it again to be able to write a Quest Fragment Script. Head over to the "Quest Stages" Tab and create a new Quest Stage. Mark this stage as "Start Up Stage"
To avoid problems with what comes next, I recommend putting a comment into the Fragment (" ; ") and confirm the Quest again. This will create the Fragment Script which we are going to need now

Remember the Response Info you kept open in the Background? Now we need that one again. Copy all of the fragments contents and paste them into the Quest Fragment script, make sure to rewrite lines that are referencing LAL. For example:
ChargenQuest.SetAddonQuestStage(10, TempleQuest)

.. is used to tell LAL's controller script to start the quest "TempleQuest" with the initial Stage of "10". Because Alternate Perspective has no such controller script, you want to rewrite this into:
TempleQuest.SetStage(10)

.. otherwise you will be unable to compile the Script correctly, or will be unable to remove the dependency on LAL.

Next, make sure to also create a property with the same Type and Name as the original Script in the LAL Response Fragment and link it to the same Quest as in the LAL Response. To do this, right click the Response Fragment in the Statue Dialogue, click on "Edit Source" and head down to a line with the following Pattern:
[Type] Property [Name] Auto

In the Quest Fragment you created, you want to click on "Properties" and add a new Property. The first box (the type) should be the same as the [Type] inside the Response Fragment and the second one, right below it, will be for the [Name]. Make sure the property is linked (filled) to the same object as in the LAL response text
To know which object the property is linked to, navigate to the Response Fragment Script and click on Properties, then find the Property with the name you try to copy over and on the right side will be an object listed. The same object should also be shown when you click on the respective property in your newly created Quest Fragment.

Notice: Sometimes it happens that a response fragment has multiple properties (more than 2), in those cases you want to repeat this process until you created a copy of every property in the fragment script which is NOT prefixed with "arth_lal".

Once you are done copying over the fragment and its properties, you should be able to confirm the Quest and compile it without errors. If there are errors, the most likely reason will be that you forgot to add a Property or have a typo in a type or name.
Lastly, good practice is to stop quests that are no longer needed. Since the quest you created is only used to replace the Response Fragment, you no longer need it once this little bit of code stopped running. Open the quest again and create a new Stage, give it the ID 10 and open it. Create a new Fragment Box and simply add
Stop()

to it. Then in the quest fragment you previously copied the response text in, at the very bottom, add
SetStage(10)

and confirm the Quest.

By the way; now might be a good time to save your project :)

If the LAL Extension has more than one Option you wish to translate to AP, you will need to repeat this entire process for every start option - this means for every response the Statue offers the player. Tedious? Most certainly!

3) Stripping the LAL Dependency
Assuming you did everything correctly, you should now have one (or more) Quests which all include a single Quest Fragment which contains the code of the Response Fragment from the LAL Dialogue
What comes next is getting rid of the unwanted dependency on LAL. This following section will be the by far most difficult part of the entire conversion procedure and I will be unable to cover every issue you may encounter here, especially if you have no or barely any experience with the CK and xEdit this following part may prove to be extremely difficult, I recommend you to properly read up on topics in the CreationKit Wiki if you are unsure about certain things
So! If your motivation isn't shattered yet, we can continue our journey:

First things first, you remember the dialogue responses we used to create the Intro Quests? Delete them. They are no longer necessary and there are multiple things which create a dependency to LAL in them, I recommend deleting the entire dialogue branch (if you are in the Quests "Player Dialogue" Tab, the dialogue branch is the option on the very left side of the window)

Second, we want to go through all Scripts in the mod which you wish to convert. And yes, all of them. Look for lines which are referencing LAL in some way, such as the following two:
ARTHLALRumorsOfWarQuest.RegisterForSingleUpdate(0.25)

arth_lal_startquest Property ChargenQuest  Auto

The second one we already know when we created our Fragment Scripts, its a property which links to one of Arthmoor's quests. The first one is a simple line in a function call which uses one of those properties and works on them. Depending on the size of the project you wish to convert, this can be quite tedious but is an essential step to remove the dependency
One tip I can give you here is that you should always first scrim through the properties. When trying to save (through the CK) the Compiler will complain and tell you every instance where this Property you deleted is being used. You can use this to easily track down those references
Remember that every time you found and eliminated a property from a Script, you will have to check that Scripts properties again (2x LMB on the Script, or use the "Property" button near the Script). Simply open the Properties Window and the confirm it again. This will remove the actual property from the .esp too

Third, scripts that are owned by LAL itself will have to be removed and replaced with identical counterparts. One common example that I was stumbling across quite a lot in New Beginnings is the Script named "ARTH_LAL_GuardsExtensionPlayerAlias".
If you find this script, you can replace it with one looking like this:
bool LeftStartCell = false

Event OnLocationChange(Location akOldLoc, Location akNewLoc)
  If(!LeftStartCell) ; We assume this Quest is always started in the start cell
    LeftStartCell = true ; thus akOldLoc will be the Starting Cell and akNewLoc your Intro Location
  ElseIf(akOldLoc != akNewLoc) ; so the next time you change Locations, it means you left the Intro area
    GetOwningQuest().Stop() ; which is where this script wants to stop your quest
  EndIf
EndEvent


Fourth, it is also important to remember that Scripts can link to Properties owned by LAL, for example a Quest could use a "FriendFac" Faction Property which links to a faction owned by LAL. It's also possible that objects such as Quests or NPC use Factions or Keywords owned by LAL, so its not just the scripts. Look closely to spot those wherever possible
To remove those kinds of LAL references, you want to create a new object of the same type (e.g. a Friend Faction can only be replaced by another Friend Faction) with the same functionality (a Friend Faction becomes a Friend Faction). This is where basic CK knowledge becomes essential, as I am unable to help write up every single thing LAL potentially does that other mods make use of in some way


xEdit is again extremely useful here as you can use it to quickly find all instances in your .esp where LAL is being referenced. To do so, open it and load your mod. Then right click on its header (this is where the name of the mod is listed) and select "Apply Script", choose the Script "Report Masters" and let it run. There will be a prompt asking you to select the Master you want to check against, you want to select LAL here. The Script will then list all instances in which your esp is still referencing LAL. If you dont know how to properly replace those references with one you own yourself, make a screenshot of the scripts output, boot the CK back up and hunt them down one by one

Once all references are removed, you want to load the mod in xEdit again, right click the header and look for an option called "Clean Masters". If all references have been removed successfully, this will remove the LAL dependency from your mod and you can start properly linking it up to be used with Alternate Perspective!

4) Linking it up
Technically it is now possible to test out your mod by starting the quests manually through the console ("startquest my_quest_editor_id"). One of the more essential parts of making your mod actually playable however is letting the Messenger know how to access those intro quests you created.
I'm going over this in much more detail in a different article which can be found here, so I will cover the basics here:

To complete your conversion and link it all up correctly, your first step will be to create yet another quest, similar to the other ones, you want create it, then confirm it, then open it again
This time, rather than creating a Fragment Script, you want to head over to the "Scripts" Tab, there you want to select "AddScript" and look for a Script called "APAddToQueue", this Script is an Utility Script which allows you to easily add all the Quests your created into APs Menu without the need of much scripting on your part (depending on how complicated the 3rd section was you def deserve it owo). All thats left to do for you know is filling in the properties of that Script as described in this Article.

Article information

Added on

Edited on

Written by

Scrabx3

2 comments

  1. karithay
    karithay
    • member
    • 0 kudos
    This article would greatly benefit from a video walkthrough example. I grew lost quickly and ultimately just gave up attempting to convert Bruma's LAL for personal use. I suspect that your familiarity with the subject matter leads to assumptions as to the knowledge base of users wanting to implement this. Would such a video be possible?
  2. Stormchaser1
    Stormchaser1
    • premium
    • 0 kudos
    What program to use first.  Step 1 is what program
    Step 2 should be what are we looking for and how to open
    Step 3 is help us!!!

    There are only 3 more LAL 

    Alternate Start - Child of Coldharbour at Skyrim Special Edition Nexus - Mods and Community (nexusmods.com)
    Alternate Start Options for Beyond Skyrim - Bruma SE at Skyrim Special Edition Nexus - Mods and Community (nexusmods.com)
    Coldhaven - A Vampire City 2.1 SE at Skyrim Special Edition Nexus - Mods and Community (nexusmods.com)

    There are no other popular LAL and that is the last of them.  So please help us for those who do not know how to program and are severely disabled.