File information

Last updated

Original upload

Created by

RedRoryOTheGlen

Uploaded by

RedRoryOTheGlen

Virus scan

Safe to use

About this mod

Allows the interruption of vanilla fast travel with random encounters. Android version also available.

Share
Requirements
Permissions and credits
Changelogs
With this mod, performing fast-travel has a random chance of it being interrupted and you will instead experience a random encounter (usually combat) in a place between your origin and destination. Once you are finished with the encounter (either by killing enemies or running away), simply return to the Travel Menu to resume your journey. The scenario of the encounter also changes depending on the time, place and alertness of the player.

If you think vanilla Daggerfall's reliance on fast travel is too non-interactive and accelerated travel with Travel Options is much too demanding of your time and hardware, give this a shot!
HOW IT WORKS

When fast travel is initiated, the base encounter chance (X) for a random encounter is determined by the selected options in the Travel Menu:
  • Reckless travel has a higher base encounter chance than Cautious travel
  • Camp Out will significantly increase encounter chance 
  • The player's Luck can have a slight effect on encounter chance if it is better or worse than average
Once encounter chance is determined, we will roll a D100 for every day of travel until either the number of rolls equals the number of days or the D100 rolls under X. In the latter case, an encounter will occur. The number of rolls will represent the number of days travelled before the encounter and is used to determine the point in-between the origin and destination that the encounter will take place at. When fast travel ends, the player will end up in that place instead and the encounter begins.

SCENARIOS

There are several scenarios that can begin the encounter, dependent on the choices made when initiating fast travel as well as the location and time of the encounter:
  • Travelling is used if the encounter occurs during the day. If the location is a town or dungeon, the player is placed in a start marker closest to their direction of travel. Otherwise, the player is placed in the center of the location.
  • Resting is used if the encounter occurs at night. If the location is a dungeon, the player is placed in a random dungeon entrance. If in a town, they are transported to the interior of a random tavern. Otherwise, the player is placed in the center of the location. A bonfire and tent (if in the wilderness) will be placed near the player.
  • Ship is used if the encounter takes place in the High Rock Sea Coast (aka, the ocean). Rather than basing it on time of day, it is instead based on whether the player is surprised (see below). If not surprised, the encounter will take place on the deck with the enemies spawning amidship. Otherwise, the player will start in the ship's interior with enemies spawning around them.
VANILLA ENCOUNTERS  - This only applies when using the vanilla encounter pool in the Mod Settings. Before enemies are spawned, surprise is determined. The base surprise chance is determined by the speed of travel (Reckless or Cautious). Then the encounter's location, weather, time the player's special advantages and (sometimes) Luck are taken into account. A D100 is rolled and if the result is under the surprise chance, the player is surprised.
  • When surprised, the enemies will be spawned around the player in a large radius.
  • When not, the enemies will spawn in a cluster a short distance ahead of the player
The number of enemies to spawn is determined by your character's level modifier. The level modifier is half your character's level rounded up. The range of spawns will be from half the level modifier rounded up to the level modifier.

The types of enemy encountered is based on the current climate and time at the encounter location. Instead of picking a single enemy type like the vanilla RandomEncounters class does, this mod chooses an EncounterGroup made up of similar enemy types and spawns them with some cost constraints (eg, more powerful enemies can only spawn if a certain number of less-powerful enemies have already been spawned, etc). It is possible to revert to the old style of selection (albeit with some of the extra constraints) by disabling the Vanilla Encounter Groups toggle in the Mod Settings.

There is a small chance of an encounter of the appropriate pool being a "Boss" or "Elite" spawn. In this state, the encounter building works in reverse and it will try to add as many high-cost enemies before adding smaller enemies once it can no longer afford to add bosses or elites. This allows bosses and elites to show up at lower levels, albeit with a smaller entourage. This type of encounter will be preceded by a unique message (one for Bosses, one for Elites).

Enemies added by Daggerfall Enemy Expansion are automatically added to the encounter pools.

For Warm Ashes encounter handling, see the relevant section under Mod Compatibility.

RESUME JOURNEY - Once there are no longer any enemies nearby (either dead or far enough away), opening the Travel Map will bring up a prompt allowing you to continue on to your destination. Declining will cancel the journey and allow you to explore your current location or fast travel elsewhere.

LOCATION SEEKING - In addition to the above, there is a feature that allows affecting the final encounter location. From the initial location, every neighboring map pixel up to a distance is checked whether they are towns or dungeons. If the Travel mode is set to Stay at Inns, the initial location will be set to the nearest town with an inn if any. Otherwise, a dungeon will be used for Camp Out.

SHIP TRAVEL - If an encounter takes place on a map pixel in the High Rock Sea Coast, the player will be spawned on the ship, either on the deck or in the hold. Once the enemies have all been defeated and suitable looted, the player may resume the journey by bringing up the Travel Map.

CONSIDERATIONS AND KNOWN ISSUES

Sometimes after an encounter, the Resume Journey may not prompt you to continue travelling. In this case, there might have been an exception thrown by the game during the transition. I would appreciate it if people who have this occur to them send me their player logs to see if I can pin down the cause.

Whether travelling by ship, staying at inns or both, a player may notice after a particularly grueling series of random encounters that the gold deducted from their account is around 5GP-20GP larger than the projected amount when starting the journey or that they arrived 1-4 days earlier/later. Unfortunately, this is just a consequence of how map coordinates are rounded out to whole numbers as well as the location seeking behavior causing the player to "jump" to the nearest dungeon or town with an inn, resulting in the whole  journey taking a zig-zag path instead of the projected "straight line" towards their destination. Just let the moral of the story be: Never trust straight-line estimates and always have extra cash on hand when travelling long distances.

The way Ship encounters are implemented is very hacky and flimsy and there are several issues with the current build:
  • While in a Ship encounter, DO NOT select the SHIP option in the TRANSPORT MENU. This will dump you into whatever Ocean tile the encounter actually took place in. You can just re-enter the Ship via the TRANSPORT MENU but now you've just broken the illusion.
  • Exiting the Ship's hold despawns all the active enemies inside. This occurs whether the character owns a ship or not. Make of that what you will.
Another issue with ship encounters is that if the map pixel chosen for the encounter is in the Ocean, the encounter will take place on a ship, regardless of travel mode. I am still looking into a good way to handle this.
CONFIGURATION

In the Mod Settings, you can configure the following:
  • Base values of the encounter formula (Encounter Chance and Surprise Chance)
  • Encounter Level Adjustment slider value is added to your player level when building encounters. Use this if encounters ramp up too slowly or too fast for your tastes.
  • Static Encounter Level slider completely overrides player level scaling when set to a non-zero value. Then all encounters will be scaled according to the slider.
  • Radius of Location Seeking behavior (0 disables it)
  • Maximum allowed Diversion angle from the main direction for Location Seeking
  • Change encounter pools to Warm Ashes encounters. Warm Ashes encounters will only work with Warm Ashes Wilderness v1.6 or later. If you are using an older version of Warm Ashes Wilderness, nothing will spawn during encounters.
MOD COMPATIBILITY

Travel Options
- Compatible. This mod will not affect how Travel Options handles accelerated travel. Fast travel performed with Travel Options can be interrupted by random encounters as normal.

Basic Roads - Compatible and recommended. With Basic Roads installed, road pixels will be prioritized as encounter locations over plain wilderness using Location Seeking. The player will (usually) be placed on the location appropriate to the scenario.

Daggerfall Enemy Expansion - Compatible and recommended. DEX automatically adds the modded enemies to the Vanilla encounters to increase the variety!

Warm Ashes Wilderness - Compatible and more! With Warm Ashes Wilderness v1.6, it is possible to replace the vanilla encounter pool with appropriate ones from Warm Ashes. Simply make sure Warm Ashes is loaded and change the sliders in Mod Settings. Lastly, go to the WA settings and disable the "encounter on fast travel" feature (unless you're up for the chaos of double-spawns). Ship encounters for WA are still unavailable hence they will remain Vanilla in the current version. HIGHLY RECOMMENDED as it adds A LOT encounters, including non-hostile ones.

ANDROID VERSION

  • Made for use specifically with Vwing's DFU port. I can't guarantee it will work with different forks or projects. Refer to the github for instructions on installing mods.
  • My access to Android devices is limited, so I'd appreciate any feedback regarding the mod working on other devices. As with the previous point, I can't guarantee it will work perfectly with every device, but with your help, I will try my best to figure out whether it's in my capability to fix.
  • Many thanks to Vwing for their work on porting DFU to Android as well as being extra mindful of modding support.
FUTURE PLANS

  • Add more variables that affect encounter/surprise chance (player character's skills, gear, spells, etc)
  • Make encounters prioritize map pixels on land if not using Ship travel. 
  • More scenarios like encounters inside a tavern's common room, etc
  • Revamp the encounter pool to allow other mods to slot in their encounters for each scenario
ACKNOWLEDGEMENTS

Much thanks and credit to Excoriated for their help. Without their example and assistance, this mod would never have gotten moving, let alone released. Big thanks as well to SquidKamer who was willing (and patient enough) to work on allowing Warm Ashes to augment the encounters of this mod and carademono whose timely intervention allowed me to integrate support for Basic Roads very quickly.
Honorable mention to thenameisthegame from the Lysandus' Tomb DFU Modding Discord server for breaking the mod during testing so hard that I questioned whether I actually knew how to play Daggerfall.