Alternate Start

Discuss modding questions and implementation details.
Post Reply
TheWanderingSage
Posts: 3
Joined: Sun Apr 08, 2018 8:20 am

Alternate Start

Post by TheWanderingSage »

I was wondering how possible would be an Alernate Start mod, as I want to play in the world, but not the actual storyline, if that makes sense.

I remember seeing a topic on it a few months ago, but I could not find.

Thanks in advance!

User avatar
Interkarma
Posts: 7236
Joined: Sun Mar 22, 2015 1:51 am

Re: Alternate Start

Post by Interkarma »

Welcome to the forums. :)

I can't recall a mod like this, but it's possible to simulate quickly. After rolling your character and starting in Privateer's Hold, execute the following two console commands (console is opened and closed from backquote/tilde key).

Code: Select all

clearmqstate
tele2exit
The first command will erase all quest state, including globalvars and the backbone quest which drives the main story. The second command will teleport you to the dungeon exit. From here you can run south up the hill to Gothway Garden to start your adventuring career with one of the guilds. You can also take out a loan, buy a horse, and rent a tavern room. You might be a bit light on gold to start with if you skip PH, so even running a few quests for townspeople or non-member quests for one of the guilds will help you get started.

Right now, you can also refuse the main quest at startup while game is still in pre-alpha. This will be removed at some point closer to 1.0 however, so handy to know another way to skip the main quest as well.

I also like to play this way in ES games and usually ignore the MQ when possible. I should put in a tickbox during character creation somewhere for this so people have this option at start.

TheWanderingSage
Posts: 3
Joined: Sun Apr 08, 2018 8:20 am

Re: Alternate Start

Post by TheWanderingSage »

Interkarma wrote: Sun Apr 08, 2018 9:31 am
...I should put in a tickbox during character creation somewhere for this so people have this option at start.
That is awesome. Thanks for the tip. Hopefully my crappy laptop can run the DFUnity. If not I can wait. Still thanks for the all the hard and everyone else. Really wanted to try Daggerfall when I younger but could not get past the graphics and controls.

And if you ever add the option that I bolded, that would be awesome. I really like the concept behind Daggerfall (i.e a fantasy world simulation that you travel around in.) so ability to just explore would be awesome.

User avatar
delvisomanda
Posts: 84
Joined: Mon Jan 08, 2018 4:29 pm
Location: Argentina

Re: Alternate Start

Post by delvisomanda »

There's an easier way, that Interkarma forgot. In the advanced startup options, you can uncheck the "Start in the dungeon" checkbox.
Currently translating Daggerfall into Spanish.

User avatar
Jay_H
Posts: 4062
Joined: Tue Aug 25, 2015 1:54 am
Contact:

Re: Alternate Start

Post by Jay_H »

In classic Daggerfall this is immediately available. The file z.cfg allows you to edit your starting region and location so you can pop up anywhere. Your character can start outside a dungeon, by a nature shrine, outside a large city, and so on. I'm hopeful that at some point this would also be a possibility in DFU.

communityus
Posts: 47
Joined: Fri Apr 05, 2019 1:51 am

Re: Alternate Start

Post by communityus »

I figured this out as well, but had a question. Note below assumes you are in Unity and doing a custom build.

In SettingsManager.cs:

Code: Select all

StartCellX = GetInt(sectionStartup, "StartCellX", 2, 997);
StartCellY = GetInt(sectionStartup, "StartCellY", 2, 497);
The question: how does that code look up lines 96 and 97 of setting.ini?

(appears to be loading the: settings.ini)

Code: Select all

[Startup]
StartCellX = 109
StartCellY = 158
Change those to like 110 and 159 is another way to not start in the dungeon. If you wanted to leave "StartInDungeon = True" - my main goal here is to find a way to mod the StartCellX and StartCellY cells or tell someone how that is working on a mod like that. I also didn't want to always start there so had to figure out another place to start this way - but would love to do it in editor long term even if I override the code for my build for dev test.

But anyways here is what I found that code then goes to : StartGameBehaviour.cs
StartNewCharacter() has this:

Code: Select all

if (NoWorld)
            {
                playerEnterExit.DisableAllParents();
            }
            else
            {
                // Start at specified location
                StreamingWorld streamingWorld = FindStreamingWorld();
                if (hasLocation && startInDungeon && location.HasDungeon)
                {
                    if (streamingWorld)
                    {
                        streamingWorld.TeleportToCoordinates(mapPixel.X, mapPixel.Y);
                        streamingWorld.suppressWorld = true;
                    }
                    playerEnterExit.EnableDungeonParent();
                    playerEnterExit.StartDungeonInterior(location);
                }
                else
                {
                    playerEnterExit.EnableExteriorParent();
                    if (streamingWorld)
                    {
                        streamingWorld.SetAutoReposition(StreamingWorld.RepositionMethods.Origin, Vector3.zero);
                        streamingWorld.suppressWorld = false;
                    }
                }
            }
So if I understand correctly, this bit here (from above but focused now)

Code: Select all

if (hasLocation && startInDungeon && location.HasDungeon)
                {
                    if (streamingWorld)
                    {
                        streamingWorld.TeleportToCoordinates(mapPixel.X, mapPixel.Y);
                        streamingWorld.suppressWorld = true;
                    }
                    playerEnterExit.EnableDungeonParent();
                    playerEnterExit.StartDungeonInterior(location);
That is the real bit of code that sort out where you start from all the settings and getters and setters I think. This is what lets you change the map x and y to not be on the Privateer's Hold pixel and then bam - you are not in a dungeon. Even if start in dungeon setting in the ini was left to true.

Not sure if someone can mod that - but there is what I found.

Bonus points:

Code: Select all

playerEnterExit.EnableDungeonParent();
                    playerEnterExit.StartDungeonInterior(location);
I believe refers to: /Quests/_BRISIEN.txt

Code: Select all

pc at PiratesHold set _exitstarter_ 
it also will call the tutorial dialogue box.


Lastly: StartGameBehaviour.cs

Code: Select all

// Start main quest
            //QuestMachine.Instance.StartQuest("_TUTOR__");
            //QuestMachine.Instance.StartQuest("_BRISIEN");
If you want to start all open world!

P.S.
Narf the Mouse wrote: Mon Mar 06, 2017 8:04 pm "What main quest? My character's a/n $Something who got accidentally trapped in a cave on their way to do $Nothing_To_Do_With_The_Main_Quest."
That was exactly me lol. Weren't we on a boat? Ok so a shipwreck and then I am at the bottom of a cave now? Who drug this tree (entire tree) down here!? Where did they find a 3d tree anyways - is this from morrowind?? Giants? Yes a giant drug it down. I am in a giants' cave! - no just giant rats. Am I a blabbering idiot that shipwrecks on a beach and wanders into a cave talking to myself? Wait, I got it - I was passed out on the beach and the rat got me and brought me here as diner. But then there is the whole problem rats can't open doors. How did I get here serioursly! Well look at my skills, I guess it could happen I am level 1. I am a blabbering idiot after all it seems. Someone should put out this campfire - lot of CO2 build up, getting hard to breath - said the mage. *Wish I did those leg exercises on the boat, I can't run fast enough to find the exit. Guess I am stuck down here. This would big game - open world, but my slow mage is gonna have a hard time.

Wait a tick - I can start somewhere else! we are saved!
Jay_H wrote: Mon Mar 06, 2017 9:02 pm I just started replaying Morrowind, and my second character was made using an alternate start mod. The role-playing aspect increased 5x with that, in that I can write his story entirely.

Vanilla Daggerfall has a quirk that does the same thing to a limited degree. In the file Z.cfg, two lines determine the starting location:

startMap
region
mapfile
Glad they had that for Vanilla. I agree the role play way better if you can write the story entirely.

So to be fair, they did explain it. I always skimmed it, because I wanted to play or remembered it wrong. Darn mudslide.
start.PNG
start.PNG (124.43 KiB) Viewed 2367 times

Post Reply