Skyrim Special Edition
0 of 0

File information

Last updated

Original upload

Created by

zdostr

Uploaded by

zdostr

Virus scan

Safe to use

Tags for this mod

About this mod

Create your own quests with an element of randomness.

Requirements
Permissions and credits
Changelogs
What is this mod about?

So, you play Skyrim a million times. You know almost every dungeon and the location of where to find any NPC or monster. A lot of quests are familiar to you and have no element of surprise. It becomes predictable and boring.
Especially, if you are into a more hardcore-realistic-immersive-roleplayish style (maybe, you are using Wildlander?).

This mod allows you to create your own quests with an element of randomness. Let me give you an example.

So, you want to roleplay, say, your brother being lost and you are on the way to find him.


Existing ways to roleplay the quest


A. In a traditional way, you may open an editor and create the quest for yourself, but it got absolutely zero elements of surprise. Boring.

B. In a make-believe way, you may imagine everything that is missing on a screen. And still, you need to tell yourself where your brother is. So, you decide that the brother in some mine with bandits near the city of Whiterun. With that, you know exactly where to find him. Boring as well.

C. In a D&D-ish way, you may introduce an element of randomness by throwing a die.
Sort of, you come to an inn, roll a die, and if d20 is greater or equal to 8, somebody tells you that your brother is in... somewhere.
The location where the brother is can also be decided by the d20.

It is something, though it involves plenty of distraction from the actual gameplay.


Here comes the mod

Now, what if there would be a way to ask the game:
- to pick a random inn, and when you enter the chosen location - you get the information about your brother
- the location where your brother is also will be chosen randomly from a given pool


Essentially, this mod allows you to set up quests where:

- you define a list of, say, locations, and one of them can be randomly chosen. So, you will not know which one exactly, and it will be a cool surprise o you as a player.
- you define when to trigger the handler (e.g., OnLocationChange)
- when the trigger comes, what condition has to be satisfied (e.g., location needs to be cleared, or location needs to have the form ID that was randomly chosen before)
- if the condition is satisfied, here is a list of actions to perform (e.g., show message box, give some item to player)

So, you can have more immersive roleplay experience within a game.


How the mod works

Mod relies heavily on JContainer mod.

At the very beginning, you create a directory at path "<your Skyrim path>/data/zdosolodmfiles/<your player name>".
Quest blueprints can differ between characters because each character has dedicated directory.

Save files are not changed at all, the state is saved in "<your Skyrim path>/data/zdosolodmfiles/<your player name>/quest_instances.json".

Quest blueprint is a definition of how a quest needs to be performed (like a class in the OOP world).
There is examples of several blueprints in the archive.

One of them is:
- when quest is started, random inn is picked up
- when you visit that inn, random NPC in this inn is chosen
- that NPC will wear a ring
- when you kill, the quest is done


What it does?

- Quest blueprint has states. There is an initial state.
- Each state can be executed in respond to some triggers.
- When the trigger is triggered, the state's condition is checked.
- If the condition is satisfied, the state's actions are executed.

When mod is started, the quest blueprint gets instantiated (like object instantiated from a class in OOP).
Now we got the quest instance.

Quest instance has variables. There is at least one variables called "state" which indicates current state of the quest execution.

When the quest instance is started, the first state is "start", and it as no triggers or conditions. It means that the actions will be executed straightaway. 
The action picks a random location between two: Windpeak Inn or Bannered Mare Inn, and stores it in "targetLocationId" variable, and jump to the next state.

Next state waits for OnLocationChange trigger, and if the current location is the chosen one (saved in targetLocationId), then it shows a message box.

Quest instance can be active or not. "var" contains variables for this quest instance.
The quest blueprint is never changed in the game. All changes are happening within quest instance.


State of mod

Currently, this mod is pretty much a core with a lot of cool parts missing.

Take a look at source code at corresponding files to see what actions, conditions and triggers are supported.
UI editor would be a really cool thing. If you have time and know how to do it - you are welcome (I would recommend using something like nodejs/typescript/electron).

The existing code base should be pretty easy to extend, I made it intentionally as simple and extendable as I wanted.
If you know how to code, feel free to copy the mod and add more triggers/actions/conditions.
Also, feel free to send me patches in the "Posts" section.

If you copy the mod, I would like you to keep the original name of it though you can add whatever suffixes you want.


Image for the mod is generated by https://www.craiyon.com/