Live Builds have been updated with version 0.10.6. This release patches a massive number of bugs, and we still made time for some new features. I’ll provide a quick summary of the major stuff first.

Quest Lists (Hazelnut)

If you enable setting Advanced > Enhancements > Guild quest player selection, then guild quest-givers will offer multiple quests at a time, rather than needing to keep clicking “no” until you see a quest you like.

Quests will rotate every so often to give you a fresh selection to choose from. This feature also has thanks to Firebrand who entered all the quest display names.

Quest Marker Refactor (Interkarma)

Quest markers are an invisible scene object onto which quests will associate various targets (NPCs, Items, Foes). From 0.10.6, Daggerfall Unity is using a new process for placing quest resources to markers that fixes a couple problems and helps the game behave more like classic.

One major issue resolved by this was introduced when DFU added the facility to move quest resources between locations. An example of this is Barenziah’s Book, which moves the target from Orsinium to Scourg Barrow if the player does not retrieve it in time. Due to an error in the resource culling code, it could sometimes remove items from other quests that used the same symbol name. For example, if the quest wanted to place/relocate an item with the symbol name _item_, it would also cull items from other executing quests that had already placed an item also using the same symbol name _item_. The quest most commonly affected by this was the Wayrest Painting.

I recommend everyone update as soon as possible to get this fix. While it was a fairly rare bug and required a specific set of circumstances, it was a showstopper if you were affected by it.

The second issue resolved by this was to make marker selection more like classic. DFU would place items to Quest Item markers and NPCs/foes to Quest Spawn markers. But sometimes a quest foe needs to be placed on an item, or an item placed onto an NPC. Classic will stack subsequent resource placements onto the first, such as the item’s guardian in screenshot below. With the new marker selection, both item and guardian will appear together as they should.

When loading a save game from prior to 0.10.6, DFU will migrate any marker placements to the new system automatically. This works even if you’re in the target location. Any new quest will just use the new marker system by default.

SDF Font Refactor & Book Reader Refactor (Interkarma)

The first implementation of SDF fonts would stretch each glyph to occupy the same physical space as the classic glyph. While this made the fonts smoother, it still had some major limitations:

SDF text was stretched or squished to occupy the same physical space as its classic counterpart. SDF text was limited to using the same character type as classic, namely ASCII, which greatly limits translation support. SDF text inherited the same bad layout as classic text in places like books. Creating SDF fonts was a difficult process.

Fixing all of the above is a key part of future translation support. There’s no point in having translated text if the game is unable to render it properly. So a general rework of SDF fonts was required.

The first major change from 0.10.6 is that DFU uses a UTF32 code format internally for all SDF text. Unlike ASCII, you can throw pretty much any text at it, and provided the font has glyphs for those codes it will be rendered correctly in-game. This also means you can create SDF font atlases with thousands of characters rather than being limited to 256 for ASCII. And translators will be able to write text in their actual language rather than entering gibberish using the high-range areas of ASCII code space.

The second change is how SDF fonts are created. Rather than using external tools, you can use the TextMesh Pro font asset creator and DFU can load these assets directly. Note that DFU is currently being compiled under Unity 2018.2.x, so TMP 1.3 is still in use. DFU also does not use TMP for font rendering, as we have a very custom UI setup including fonts, but it can use these TMP font assets. I’ll post an updated article soon showing how to create new fonts and mod them in-game. Any old font mods will no longer work in DFU.

The third change is to how text is laid out on screen. DFU will no longer stretch text to match classic scale and use the actual font’s true proportions at all times. This makes for better-looking and more readable text layouts all around. It might be an unwelcome change if you’ve become adapted to the old stretchy font, but SDF text really looks better now and is far more flexible. This whole process was an important step in breaking free of classic text limitations and enabling future translation support.

Finally, the way text is laid out needed to be reworked. We’ve all seen how classic books often have text scattered all over the place. I’ve completely rebuilt the book reader to use the new text setup and automatically layout book text. This makes 99% of books more readable than ever. And they now support any left-to-right language with the right font and text driving them. The book reader will be used to help pilot all the new translation features later in Alpha lifecycle.

Here’s a screenshot of the old book reader and new book reader for comparison. I’m using a book with bad formatting layout to show how the new reader overcomes this issue present in classic data.

You’ll notice right away the formatting is better, the text proportions are better, and the margins have been expanded to make the text easier to read. I have also changed the book reader to use a scrolling setup rather than a page flip, as I feel this makes text much easier to follow with the eye.

Fix Resistance Checks & Ranged Enemy Spellcasting (Interkarma)

A bug was preventing correct resistance checks, so a character who should be 100% immune to something (e.g. Paralysis) was still occasionally stricken by that during combat. I finally got to the bottom of that problem and have resolved it now. If you have true 100% resistance to something, this will now work 100% of the time.

Note that the bug/exploits of combining High Elf Immunity to Paralysis with Critical Weakness to Paralysis still results in an impaired resistance in DFU, and that Immunity to Magic will only cover the Magic element (i.e. Arcane) not make you immune to all magic. But the problems of true 100% resistance not being correctly regarded have now been solved. During the process, I also restored the “save vs spell” message when you resist something so that you know what happened.

Also during this process, I found the cause behind enemy spell casters no longer hurling ranged spell missiles at the player. This has been fixed now, so this little green guy is properly dangerous again.

Virtual Mods (TheLacus)

This is a behind the scenes change to help support mod authors build and test their mods. If you’re a mod author, start with TheLacus’ description of this change in the following Issue on GitHub.

The gist is this change helps mod authors test and debug their work before bundling it as a .dfmod for end users. This is really important stuff that helps make the game and its addons better for everyone longer term. Thank you TheLacus!

Travel Map Refactor (Interkarma)

Over time, the travel map could leak a lot of texture memory. And if you knew how to trigger it, you could spam this leak in a few minutes to bring your game right to chugging point. I believe this issue is behind some of the problems with poor performance on systems that should be able to handle DFU just fine. If you notice your performance drops after a few hours of gameplay, and that restarting the game fixes it, this was likely the reason.

I had to rewrite about 50% of the travel map UI to make this change. Everything should just look and work exactly like before, except faster and without the memory leaks. I have tested this extensively before release, but if you encounter any regressions with the travel map please let me know.

General Fixed & Improvements

Lots of fixes this time around, large and small. So many that I’m going to sort them by developer.

FrozenFish24

Add exclusive fullscreen option to settings.ini – will be added to startup UI once Unity upgraded to 2018.3 or later

Ferital

Fixes and refinements to NPC talk reactions

Tone button in talk window now remembers last setting

Fix activation issues for Sheogorath and similar NPCs

Remove generic factions from rumour mill

Add Order of the Raven faction to their guild halls

Guilds now display “guild closed” instead of “shop closed”

Nystul

Fix for answer rumours (answers to tell me about topic) being incorrect

Fix automap user notes disappearing after saving and loading

%di macro improvements and bug fixes

Several talk manager fixes when asking for directions

Fix for talk window exception after classic save import

Fix %di exception when player in same building as target NPC

NPCs now always know the answer when NPC asked about is in the same building

Jay_H

Enable more classic quests

Several more classic quest fixes

Rebalance spawn rates for household vermin cleanup quests

Add alertness messages for vermin quests so player knows they’re in right place

Add delay to Morgiah’s Wedding quest so player can read invitation

Fix some change notes being visible in quests

Fixes to Dark Brotherhood acceptance quest

TheLacus

Sort mods by load order at startup

Add console commands to create specific items

Mod configuration now stored in persistent data

Automatic cleanup of mod configuration folder

Upgrade support for book replacement

Handle exception when upgrading mod config

Fix issues with billboard custom scale

Support texture replacement for cloak interior

JorisVanEijden

Fix arrow blood splash position

Fix crash for %di getting direction without location

Add location reference to quest when location comes from a person

Fix HaveItem clearing target when item is gone and revert workaround

Show author as unknown for broken/missing books

Add CAV action door type for secret doors in caves

Add logging to quest item creation and add error feedback to logs

Expand range of NPCs considered to be local residents

Fixes to classic quests

Prevent vampire sun damage in prison

Picking up dropped quest item will reset “has dropped” flag

Fixes to lycanthropy max health degrade and health top-up after curing

Support for magic item subclass selection from quests

Eric Prokop

Fix fast travel to arrive at night for characters with sunlight damage trait

Pango

Don’t display Find button on world map first use

Fix selecting EQUIP when opening inventory explicitly

Visually clamp difficulty dagger to gauge limits

Don’t ground player when onboarding ship

Fix fog being displayed on automap

Add openpotionmaker console command

Fixes to proximity wagon access in dungeons

Adjust default keybind text in tutorial quest

Fixes to receiving armour from knightly orders

Harden timescale against negative values

Add missing sounds for journal, notebook, and book reader

Fix typo in classic quest

Workaround for “water everywhere” tilemap issue on lower-end hardware

Change activation click to use button up rather than button down to prevent input fallthrough into some UIs

Adjust falling damage to better match classic

Hazelnut

Allow paintings to be sold at pawn shops

Fix removing single ingredient from wagon during potion making

Add journal message when buying a house

Fixes to reputation propagation for single factions

Fix enchanted items being regarded as ingredients

Update NPC presence when rest dialog dismissed

Cart now moves at correct slower speed

Fix coin anim on inventory window

Adjust riding volume to match footsteps

Add some modding facilities for horse riding

Fix to horse fatness by reducing width 20% to better match classic

Fix direct stat mods not being cleared when no effect bundle active

Fix default action mode not selected when opening inventory outside of dungeons

Interkarma