Do you ever find yourself in the middle of nowhere, in the northern Ashlands of Vvardenfell, and suddenly think: “Damn, what’s my fastest way to Tel Branora from here? I still have to deliver Mistress Therana’s skirt!"
Depending on the character you play, the answer to this question can vary wildly. For one you could try to reach Khuul and rely on regular fast travel services like the Silt Strider and the Guild Guide, but maybe you’re playing a particularly stuck-up Telvanni and would like to avoid interacting with the Imperial rats of the Mages Guild. Valenvaryon or Falasmaryon is close, and you have picked up all Propylon indices already, so that is a very good alternative. Or maybe you’re feeling the need for some fresh sea air and would like to sail all around Vvardenfell.
Morrowind’s fast travel system is extensive and complex, so figuring out the fastest routes from any one location to another is not an easy task. Even worse, some of the best travel options (the intervention spells that teleport you to the next Temple or Imperial Shrine) are hard to know when to use optimally.
Morrowind veterans probably have a very good idea of the intricacies of Vvardenfell’s travel routes and can figure out the above problem in seconds, but maybe you’ve just started the game and feel a bit overwhelmed, or you just installed Tamriel Rebuilt and have to suddenly juggle a multitude of new routes.
The latter is true for me, so I ended up writing ywalk, a command-line tool that figures out the fastest route between a set of places in Morrowind. It can consider certain limitations (Telvanni disdain for the Mages Guild perhaps, or having to escort yet another lost pilgrim1 who can’t teleport) and give you an optimized route.
Connections between places are parsed from a simple text file with tab-separated values. A connection definition is simply the origin, the destination, the mode of travel, and how long the journey takes in in-game hours:
Origin Destination Mode Time
Seyda Neen Balmora Silt Strider 3
Vivec Hla Oad Boat 5
Balmora Seyda Neen Silt Strider 3
Balmora Vivec Guild Guide 0
Since a very small number of routes are one-way only2, I decided to keep things simple and require every route to be specified explicitly. As you can see above, the route between Seyda Neen and Balmora is specified twice, once for each direction.
To collect these routes, I used the indispensable Unofficial Elder Scrolls Pages and my own copy of the game running on OpenMW. I made each catalogued journey myself at least once, just to be sure.
ywalk ships with definitions for the entire fast-travel network for the Game of the Year version of Morrowind (meaning the Master Index plugin is enabled by default). For Tamriel Rebuilt it includes definitions that are active with TR_Travels. For now, only places with fast-travel options are considered. An exception to this rule are available player homes in Vvardenfell, for use with the Recall option. If you are curious, check out goty.tsv and tr-travels.tsv.
Installation
ywalk is written in Python and is supposed to be installed per user. The data files and manual need to be installed separately because Python packaging is a nightmare. For a full install as a user, get the sources from the git repository and run the following commands:
$ python setup.py install --user
$ make install
This will install ywalk to ~/.local/bin
, the data files to their canonical
path ~/.local/share/ywalk
, and the manual to ~/.local/share/man/
.
Usage
ywalk offers a simple command-line interface. Invoke it with the list of
places you want to travel through or to, and it will print a route if it can. By
default it allows all modes of travel, but you can allow only specific modes
with -m
, or restrict them with -M
. For detailed usage information, see
the manual.
Let’s see it in action! Consider a regular character that has no problem with land-based transport and can use the Mages Guild relays, but has no way of invoking Almsivi or Divine Intervention and never even heard of a Propylon chamber. In that case, we’d head over to Khuul and then start our journey:
$ ywalk -M almsivi,divine,propylon Khuul 'Tel Branora'
Start in Khuul
then take the Silt Strider to Ald'ruhn (5 hours)
then take the Guild Guide to Vivec
then take the Boat to Tel Branora (5 hours)
Arrive in Tel Branora after 10 hours.
Now for the stuck-up Telvanni that raided every single Dunmer stronghold and completed their Propylon Index collection. We start in Falasmaryon in that case and avoid Mages Guild relays like the Corprus disease:
$ ywalk -M guide Falasmaryon 'Tel Branora'
Start in Falasmaryon
then travel by Propylon to Caldera
then travel by Propylon to Telasero
then invoke Almsivi Intervention to Molag Mar
then take the Boat to Tel Branora (2 hours)
Arrive in Tel Branora after 2 hours.
And finally for our sailor, again from Khuul:
$ ywalk -m boat Khuul 'Tel Branora'
Start in Khuul
then take the Boat to Gnaar Mok (7 hours)
then take the Boat to Hla Oad (4 hours)
then take the Boat to Vivec (5 hours)
then take the Boat to Tel Branora (5 hours)
Arrive in Tel Branora after 21 hours.
Let’s say our character absolutely hates the swamp. We can make sure to avoid
Gnaar Mok with -P
. This will lead to a journey around the eastern parts of
Vvardenfell:
$ ywalk -m boat -P 'Gnaar Mok' Khuul 'Tel Branora'
Start in Khuul
then take the Boat to Dagon Fel (8 hours)
then take the Boat to Sadrith Mora (10 hours)
then take the Boat to Tel Branora (8 hours)
Arrive in Tel Branora after 26 hours.
By default, ywalk optimizes for least travel time. It recommends using
teleportation over regular Silt Strider or boat services even though using the
latter would usually decrease the number of hops needed. If you’re interested
instead in a route with the least number of hops, you can change the weighting
method for the path-finding algorithm with -w
.
I hope you’ll have fun trying this out. Feel free to send any improvements along!