Daggerfall Unity 0.10.26

Daggerfall Unity 0.10.26 is now available on Live Builds page. Despite being tagged a preview, a lot of work has gone into this release to create the most stable update possible. If no major issues are found, our next minor release will be tagged as stable.

If you’re still on DFU 0.10.24, you might need to update your mods to be compatible with 0.10.25 and later. Check the release info for your mods to see if an update is required.

In other news, our Beta milestone is coming up fast! Just a few more items to tick off the Roadmap and Daggerfall Unity is feature complete. We should have more news on this before end of the year. For now, let’s unpack everything this new release.

New Features

Localization Preview (Interkarma)

A long-term goal has been to support new translation mods for Daggerfall Unity, delivered simply and easily through our powerful mod system. This has many challenges, as classic Daggerfall draws text from several different files and formats, some text is even baked right into the executable. Internally, classic Daggerfall used an 8-bit wide character format that did not easily support extended character codes. Language packs for classic Daggerfall had to work within these limits and compromise often, such as re-writing text with transcoded characters aligned with custom font glyphs under a 256 limit. Daggerfall Unity inherited a lot of these same systems early on, as we rely on the classic DOS game data.

For the last couple of years, we’ve gradually laid the groundwork for translation mods in Daggerfall Unity. This started with SDF font support built on TextMeshPro, followed by upgrades to how text is handled internally, and now building on the Localization features in Unity 2019 and integrating with Daggerfall’s unique text requirements. In the last few months, we’ve started migrating all legacy text handling from DOS files to centralised text databases and overcoming the limitations of classic Daggerfall a few systems at a time.

In this first preview release of Localization, all text from TEXT.RSC and text previously hardcoded into executable have been migrated to replaceable text databases easily edited via the Unity Editor. Helpers have been created to import text from legacy data and fix transcoding back to correct character codes. There’s no longer a limit of 256 characters and fonts can have any number of glyphs matched to their proper universal character codes. Underpinning this is support for locale detection, runtime locale switching, locale-based fonts, and more.

In the following screenshot (click for full size), a custom string table has been generated containing English, French, and German translations for the game. All text is imported from legacy TEXT.RSC files in a single click, automatically remapping transcoded characters back to their correct universal character codes. A simple plain-text RSC markup system has been developed so that translators can write text easily and natively without needing to remember bytecode for formatting RSC strings.


Default locale is selected by user’s current region at game startup. If no translations for that region are available, it will fall back to a parent region or to English. Regions can be switched at runtime in editor or by console. Screenshots below show switching between French and German for the STRENGTH info popup. Each translation can format text as they wish, and you’ll notice the imported French and German translations use different line spacing, the markup for which is visible in screenshot above.


Elements such as UI images with baked in text can be replaced via the standard image replacement process and delivered all together in a single .dfmod package.

Daggerfall Unity Localization is a new feature and will continue to evolve over time. As mentioned, only TEXT.RSC and previously hardcoded strings are currently available for replacement in this preview (which outside of quests is over 90% of all text in the game). Other systems like quests will be moved over to localization in future releases.

You can find more technical information about localization in Daggerfall Unity, including current limitations, in this forum topic. This topic contains a tutorial series in progress demonstrating the creation of a new translation mod from scratch.


Precompiled Mods (TheLacus)

Daggerfall Unity has an integrated C# compiler to build mod scripts at runtime. This compiler has a few limitations and can sometimes require mod authors to work around those limits. If you’ve built a large or complex mod for DFU, you’ve probably hit some of those limits by now. From 0.10.26, you can precompile mod scripts to a DLL using Unity’s built-in compiler. This overcomes the limits of runtime compiler and allows for creation of larger and more complex mods.


This will support using C# features like enum, tuple, and string interpolation – currently unavailable with the built-in compiler. If you’re concerned about safety of a precompiled mod, source can be extracted using tools like the JetBrains decompiler.

Precompiled mods are considered experimental for now. Future development of this feature will continue based on feedback by the modding community as directed by TheLacus.


Mod Dependencies Editor (TheLacus)

TheLacus has also created an easier way to define mod dependencies via the new Mod Dependencies window, available through Mod Builder window.


DungeonTextureTables for RuntimeMaterials (TheLacus)

A limitation of the RuntimeMaterials feature was that replacement dungeon parts would not inherit the correct dungeon texture set unique to each dungeon. TheLacus has refined this now so that replacement models using RuntimeMaterials will inherit the correct textures from the dungeon surrounding them.


Secondary Keybinding / KeyCodes Combos (jefetienne)

Moving on from mod features for a minute, jefetienne has further enhanced the control capabilities of Daggerfall Unity with a secondary keybind UI and support for keycode combos, e.g. “LeftShift + K”, “RightControl + K”, “K + V”, “[ + /”, “Joy3B0 + JoyB2”.

You can switch editing primary and secondary control using the Primary/Secondary button at the top-right of controls UI. Switching will show the loadout for that set of controls, with secondary not bound to anything by default.


You can now clear a selected binding by right-clicking on a previously bound action in the loadout.


With support for keycode combos, jefetienne recommends a new default controller layout.

Cast Spell – B
Recast Spell – LT + A
Use Magic Item – LT + B

Ready Weapon – X
Swing Weapon – RT
Switch Hand – R2

Status – D-Down
Character Sheet – D-Up
Inventory – LT + Y

Jump – Y
Crouch – L3
Autorun (Advanced Controls Window) – L2
Run – LT + L2

Rest – Select
Transport – R3
Steal Mode – LT + D-Down
Grab Mode – LT + D-Up
Info Mode – LT + D-Left
Talk Mode – LT + D-Right

Activate – A

Sneak – LT + L3

Logbook – LT + R2
Notebook – LT + X
Automap – D-Left
Travel map – D-Right

Pause (Advanced Controls Window) – Start
Quicksave (Advanced Controls Window) – LT + Start
Quickload (Advanced Controls Window) – LT + Select


Automap Dungeon Water (Pango)

Dungeon water is now displayed on the automap, helping you to plan when to pop your next water breathing potion. Pango implemented this in a way that water is rendered neatly inside the dungeon area, and it looks amazing.



City Bulletin Boards (GalacticChimp)

When visiting a large walled city, you might have noticed the bulletin boards posted by the gates. These are now up and running thanks to GalacticChimp, with an epic first contribution to the project.


Other than displaying city name, bulletin boards can also list news about witch burnings, changes to allegiance of the various politic factions, and other flavour text.


Additional Mod Support (Hazelnut)

Hazelnut has extended several classes and UIs to better support changes by mod system. This is hard to quantify in a few words or by screenshots, but will lead to some new and interesting mods from 0.10.26 onwards. For example, Hazelnut’s own Travel Options mod for 0.10.26 takes advantage of these enhancements with a fresh overhaul to travel system.


And Basic Roads, a WIP mod also by Hazelnut.


See Hazelnut’s listed items below for his other changes. It’s incredible to see the mod potential for Daggerfall Unity expand so quickly at this stage in the project.


General Fixes & Improvements


  • Additional quest fixes for dozens of quests
  • Fix typos in Noble, Commoner, Temple, Thieves Guild quests
  • Add display names to remaining quests
  • Add white space to K0C30Y03 to prevent debug comment showing
  • Fix _painting_ field in A0C00Y14/15
  • Replace %dat with %qdt
  • Fix text error Q0C00Y04
  • Fix typos in S0000001
  • QoL updates for S0000005 to clarify reward and time limits


  • Apply bonuses and phobias to all attacks, including enemies vs. player and unarmed attacks


  • Set Breaking and Entering as last crime comitted (10% chance) after successfully breaking in
  • Set IsDiseasePermanent() public and add IsDiseaseCompleted() helper


  • Faster AI obstacle avoidance
  • Enemy capsules dynamically resize to fit through doors
  • General enemy improvements to doorway pathfinding
  • Remove unstick handling as no longer required
  • Prevent point blank spellcasting into low obstacles
  • Fix parchment tearing in popup message boxes
  • Fix vertical progress bar showing single pixel row of gain colour where not intended
  • Prevent intermittent enemy spawns on ship
  • Remove extraneous empty quest messages
  • Support all cursor sizes, using a software cursor on Windows when larger than 32×32
  • Fix water splash sounds in very shallow dungeon water
  • More accurate pursuit formula
  • Fix clock quest timers that would return 0 days
  • Fix HUD spell icon blink time


  • Add IsLoitering flag
  • Allow removing keybinds with mouse right-click
  • Change screenshots to JPEG format
  • Change default binding of Run and Sneak to Left Shift and Left Alt respectively
  • Remove some GC creation in drawing Panels
  • Preprocessor definition for separate development persistent data path
  • Improve keycode display when not using SDF fonts


  • Allow tavern window extension in mods
  • Open permissions and expose buttons on travel popup window
  • Use unscaled time for transport animation speed is indepdendent of timescale
  • Expose location display name mapping from macros
  • Add motion limits for mods and expose applying force
  • Use advanced item list in item maker UI
  • Open DefaultTerrainTexturer to be extended
  • Don’t show holiday text message unless HUD is top window
  • Implemented %cn2 macro for jokes
  • Allow mods to set extra terrain blend space around locations
  • Make vampire satiation check public for mods
  • Allow TerrainSamplers to disable default job and do their own location blending
  • Move material selection into overridable formulas
  • Fix SearchItems method no template index specified


  • Do not destroy MobilePersonAsset gameobject to fix re-parenting prefab instance
  • Fix IsDirectionClear() for custom MobilePersonAsset
  • Improvements to mod builder
  • Add run quest action to start a quest and wait for it to complete to run task for success/failure
  • Log warning if textue is not readable but needs to be
  • Extract mod text assets to PersistentDataPath/Mods/ExtractedFiles which is always expected to be readable
  • Better error messages for missing references
  • Improvements to mod loader UI
  • Discard virtual mods without a valid title
  • Add conversion method between Tuple and ValueTuple


  • Correct %lp macro implementation
  • Fix %god macro to match classic behaviour
  • Fix quest faction macro expansion
  • Fix %imp, %mn, %fn macros
  • FACTION.TXT fixes
  • Use faction race ID for %oath
  • Set race of static NPCs
  • Fix spelling of “sorcerer” in quests display text


  • Made NextObjectOffset and PreviousObjectOffset public to fix dungeon activators


  • Update baseline engine version to Unity 2019.4.10f1
  • Allow DrainEffect to drain to 0 before player dies from attribute loss
  • Fix ElementalResistance and PacifyEffect spell keys
  • Fix CastWhenHeld recast costing another equip charge
  • Add matching “Sorcerer” to Quests-Foes.txt table so quests can use correct spelling
  • Fix spell expiring 1 round too early
  • Add black panel background to talk window
  • Round input values when updating border rects to further resolve parchment tearing
  • Enable resizable window again (disabled in 0.10.25)


For more frequent updates on Daggerfall Unity, follow me on Twitter @gav_clayton.

Daggerfall Unity 0.10.24

Daggerfall Unity 0.10.24 is now available on Live Builds page.

New Features

Improved Spectral Appearance (Pango/Interkarma)

So far in Daggerfall Unity, spectral enemies like Ghosts and Wraiths appear only as a grey solid. In classic, these enemies appear as a very dark semi-transparent solid with red eyes. The thing is, these classic sprites actually have a lot of fine details inside them like bones and cloth that aren’t visible in either classic or Daggerfall Unity.

After some collaboration between Pango and I, we’ve setup an import process and custom shader to finally show off these fine details and correctly render spectrals as semi-transparent with red eyes. This is how ghosts and wraiths look in classic game data, just the DOS game couldn’t render them this way.


Pango added a very small amount of emission to their lighter areas so they have just a hint of their spooky form in pitch darkness.


Daedra Seducer Transformation (Interkarma)

In classic, the Daedra Seducer can transform into a winged enemy. This transformation is now implemented in Daggerfall Unity, making the Seducer an even more formidable encounter.


Something worth noting is that classic lacks any sprites for winged-form Seducer from any orientation other than facing player. This isn’t a problem in classic as enemies will only fight player, but in DFU it means the winged Seducer cannot turn to face other enemies (as that art doesn’t exist in game data). For this reason, winged Seducers will not participate in infighting if that option is enabled. The humanoid form has these facing sprites and will continue to participate in infighting as before.


Joystick Window (jefetienne)

Now that Daggerfall Unity has controller support, the joystick window can finally be implemented. Jefetienne has done amazing work here in adding modern controller support to the game.


In case you don’t notice jefetienne’s other general fixes below, he has also fixed several problems with joystick and mouse compatibility introduced in previous release. These two input methods now co-exist more peacefully.


Autorun Key (jefetienne)

If you’re tired of holding down shift to run, there’s now a new autorun key binding available. Bound to Middle-Mouse button by default, this will toggle autorun on/off. You can also stop autorun by hitting the “backwards” keybind. The autorun keybind can be changed in jefetienne’s reworked Advanced Controls menu.


Mod Mismatch Warning (jefetienne)

Adding and removing mods can be tricky business. Sometimes a mod will add changes to your save game that break compatibility once mod is removed. This change by jefetienne will save mod loadout with your save games and warn you when loading that save against a different mod loadout. You can still continue and ignore the differences.


Travel Map Dot Outlines (Pango)

After discussions with colour blind forum members, Pango has added an option to draw outlines around travel map dots to increase their general visibility. This can be enabled at startup from Advanced > Interface > Outline regional map locations.


Vampire Guild Switching (Hazelnut)

Vampires of Daggerfall – take heed! From 0.10.24, your guild reset has finally been implemented by Hazelnut. This means your bloodsucker will reset guild memberships after upgrading, as they would have when turning into a vampire initially. This doesn’t change your reputation with anyone, just memberships. You’ll be able to rejoin your guilds right away and raise in ranks again quickly.

The main problem is Thieves and Dark Brotherhood. Just like classic, there’s no way to re-join them in game if you have already. We’re looking into solutions for this design flaw carried over from classic. In the interim, you can use the following console commands to rejoin as a vampire. These are case sensitive.

“guildjoin GeneralPopulace”

Dark Brotherhood
“guildjoin DarkBrotherHood”

If you’re cured of being a vampire, all your previous memberships will be restored. If you get infected with vampirism again, you’ll go back to the memberships you maintained as a vamp. It’s like you’re two different people. Kinda. Just roll with it, it’s Daggerfall. 🙂


General Fixes & Improvements


  • Fix for missing building bug when making round trips between certain locations


  • Use lookup table to implement palettization for improved performance
  • Allow retro mode to selectively postprocess sky
  • Fix rounding errors in weight calculations to match classic as multiples of 0.25kg
  • Add dark grey colors to retro mod palette
  • Prevent fast travel during day with “damage from sunlight” disadvantage


  • Ability to also cancel spell with ready weapon key
  • Decoupled mouse sensitivity and added joystick movement threshold and joystick sensitivity options
  • Add keybinds for improved joystick support
  • Add joystick deadzone option
  • Add EnableController option
  • Improved mouse/joystick handling
  • Proper rest ending via stop button, toggle button, or escape key
  • Rest conclusion now only says “healed” when player is fully healed
  • Update options text of “Invert Mouse Y” to “Invert Look Y”
  • Added ability for custom prevention of resting
  • Add bow drawback and toggle sneak options to advanced controls
  • Fix previousAxis state to be properly flushed per frame


  • Implement CastWhenHeld on-equip durability loss
  • Fix Daedra summoning selection to match classic behaviour
  • Set Montalion vampire spell to Recall
  • Fix import of classic old guild records


  • Targeted access modifiers to UI windows from private to protected


  • Fix issue with Save and Close buttons on mods window


  • Fix Giant Killing ending conditions
  • Remove variable pronoun fromLord Kavar quest
  • Fix dead body scripting in classic quests
  • Remove delays in Antique Ivory Thieves Guild quest
  • Remove unnecessary delayed quest ends
  • Fix M0B21Y19 spawn and multiple bodies/letters


  • Refactor CreateCharClassQuestions for greater readability


  • Fix strengthens armor / weakens armor enchantment application and display on paper doll


  • Implement MagicRound payload callback for enchantment effects
  • Raise IsResting flag while rest UI open
  • Unsubscribe EntityEffectManager events not being correctly unsubscribed
  • Reworked CastWhenHeld durability loss while item equipped to better match classic
  • Fix bug where CastWhenHeld items lost durability too quickly
  • Implement OnSleepEnd event
  • Fix incorrect result of AllSkillsHealed() check
  • Fix “item is broken” message spam
  • Fix memory leak in VerticalProgress.SetColor()
  • Support using depth buffer in retro postprocess setup
  • Don’t rearm “add face” action to prevent HUD face spam
  • Fix bug where CullResourceTarget() might cull resource from current location
  • Change PlayerEnterExit.BuildingDiscoveryData to public set
  • Handle broken spells with no effects
  • Allow mods to set levitate move speed
  • Serialize smaller dungeon state with quest saves to lay groundwork for SmallerDungeons to leave experimental
  • Rework movement acceleration to simple toggle (off/on) that is off by default
  • Don’t select children NPCs for random “work around town” quest assignment
  • Don’t play vampire/lycanthrope warning video if already played
  • Implement LycanthropyType() helper
  • Fix Local_X.X negative career group selecting “people of region” faction
  • Fix fade-in progress when another UI window is pushed
  • Fix Slaughterfish idle/move animation
  • CastWhenHeld items now reroll effects like classic

Daggerfall Unity 0.10.23

Daggerfall Unity 0.10.23 is now available on Live Builds page. This is a big update with some great new features and loads of bug fixes. Let’s unpack this thing.

New Features

Advanced Controls (jefetienne)

One downside of adding new keybinds to Daggerfall Unity (e.g. QuickSave/QuickLoad and console toggle keys) is the classic keybind UI doesn’t have any free space to list them. This resulted in these special keys being hardcoded into the game. I’m happy to say that jefetienne has reworked keybinding to support more actions and presented them, along with other settings, in the new Advanced Controls UI.

You will find this interface in game from Pause > Controls > Advanced. This replaces the old Mouse button in classic, but mouse settings are also part of this window. Credit to BadLuckBurt for the classic-styled button design.


Something that isn’t obvious is just how many little things jefetienne had to work on to make the above possible. My original input setup didn’t support keybindings for these system keys at all, and the code wasn’t robust enough to keep forward compatibility once new binding were added. So jefetienne has been quietly working on fixing all of these little issues and creating a better standard for input handling in the future. And this has all been necessary for…


Controller Support (jefetienne)

That’s right – from 0.10.23, Daggerfall Unity has native controller support! You can now play the game with most major controllers such as Xbox One, PS4, Logitech. I’ve played with this for a while now and it works beautifully. I’ve traditionally been very sceptical of playing Daggerfall with a controller, because it’s such a mouse-oriented game, but jefetienne has overcome all of my concerns.

Once you’ve setup your controller bindings, you can play the game just as easily as you can with a keyboard and mouse. Weapons can attack with gestures or clicks depending on your preference, and gesture attacks decouple mouse sensitivity from controller as the two input methods are quite distinct. If you open a UI that requires a mouse pointer (such as the inventory) you can drive mouse pointer around with a thumbstick and select things as normal. It works nicely and feels a lot like playing Morrowind on console back in the day. Which is to say, it’s a pretty great way to enjoy the game.

Because controller support is new, there are still a couple of limitations I need to raise. First, you’ll need a keyboard for infrequent moments such as naming your character and entering text in certain parts of the game. There is no on-screen keyboard at this time. But these moments are few and don’t take much away from the experience. Second, you can only bind controller or keyboard/mouse at this time. You won’t be able to seamlessly switch back and forth with unique bindings for each, you’ll have to setup the game for one control method or the other. These limitations can be worked on as the feature matures.

So while you’re setting up your bindings, jefetienne recommends the following base layout, which has been based on bluntrauma69’s unofficial controller mod for DFU. This is just a suggested setup, not defaults. You can modify this as needed and bind other actions based on your preference.

  • Cast Spell OR Use Magic Item* – B
  • Recast Spell – LT
  • Ready Weapon – X
  • Swing Weapon – RT
  • Switch Hand – R2
  • Status – D-Down
  • Character Sheet – D-Up
  • Jump – Y
  • Crouch – L3
  • Run – L2
  • Rest – Select
  • Transport – R3
  • Activate – A
  • Automap – D-Left
  • Travel map – D-Right
  • Pause (Advanced Controls Window) – Start

*You can access both the inventory and spellbook through the character sheet

Pro-tip: If you rebind your Pause menu to a controller and find yourself without that controller later, you can still reopen Pause menu using Shift+Escape. This keybind is hardcoded so there’s always a way to access the Control UI again if you’re locked out.


Toggle Sneak Option (jefetienne)

A bonus QoL feature by jefetienne is an option to make sneak key a toggle instead of a state key. With this option enabled, you can toggle sneak on and off with a single key press instead of holding key down the whole time. If you run with toggle sneak enabled, then sneak mode will switch off again. You will find this option in Advanced > Gameplay of settings UI.


Runtime Materials (TheLacus)

On the modding front, TheLacus has added support for runtime materials. This feature is a component that holds a list of classic texture indices. These are instanced as materials in Awake or can be manually applied. This allows mods to “reference” a classic material on a prefab provided by a mod. You can read more about this in TheLacus’ comments for PR1775.


Custom Items (Hazelnut)

If you’ve played Hazelnut’s awesome Archaeologists Guild mod, you’ll know there’s a custom item available called the Locator. Hazelnut has built on this support to allow mods to add more detailed items into the game in future. To get an idea of where modders can go with this, there’s no better source than Hazelnut himself. His new Roleplay & Realism: Items mod will make heavy use of this feature. Click through to that link for more information, but just to give you an idea, this mod can adjust properties of items and even allow for new armour sets and the like.


This is amazing work as always by Hazelnut. Please try out his mods send him some love for all of his hard work on this feature (and so many others).


Custom Flat/Model Activations (BadLuckBurt)

Think of the throne lift in Privateer’s Hold or clicking an NPC. These are examples of activating something in the game. BadLuckBurt has extended mod support to allow adding custom activations to flats, building on earlier support for models by Hazelnut. This means mods can now add a custom “something” to happen when you click on some object, which opens up a lot of potential for new mods to inject new actions into the game.

This is a bit technical and hard to show in screenshots until a mod really takes advantage of it. Just in the short term, check out BadLuckBurt’s forum post and PR1768 about this feature. There’s also a Demo Dungeon mod showing a custom location and some test objects you can activate. Load this up into the editor to play with it further. If you’re into modding Daggerfall Unity and custom activations seem like exactly what you’ve been waiting for, please check it out and chat with BadLuckBurt on the forums to learn more.


Retro Rendering PostProcessing (Pango)

If you’re not familiar with it, Retro Rendering mode is a setting under Advanced > Video that renders the game in either classic 320×200 or slightly enhanced 640×400. This is the real deal, everything is rendered to an offscreen buffer that is actually 320×200 or 640×400 pixels in size before displaying it on your monitor. The UI is rendered to a separate layer at native resolution so the text remains perfectly crisp or you can use smooth SDF fonts. It’s the best of both worlds, and you can even use most mods with this feature. Setting up Retro Rendering correctly to get the right classic aspect ratio does need some attention to detail though, so click that link and above and see how to setup your game for that chunky pixel goodness. It’s also a great way to improve performance on lower-end PCs.

But chunky pixels and aspect ratio isn’t always enough. One big limitation of this feature is the lighting remains 32-bit and smoothly GPU-perfect. For some people this a quite jarring look against the low resolution visuals. This is where Pango has come to the rescue with new postprocessing options for Retro Rendering mode.


You have three options here:

  • Off – Disable post-processing and use standard 32-bit lighting.
  • Posterization – Efficiently reduces colour-depth and remains very fast.
  • Palettization – Accurately matches each pixel to Daggerfall’s classic palette data, but requires more performance than the above two options.

You can read more details about this in Pango’s forum post. And check out Pango’s video below to see this in action. Best viewed in HD 1080p so YouTube doesn’t blur things together. It looks even better playing with it for real, videos and screenshots can’t do it justice.


Protip: You can toggle Retro Rendering postprocessing on/off using Shift+F11 in game.


Serialize Advanced Climbing State & Climbing Fixes (Interkarma)

If you use Advanced Climbing and like to save your game while holding on for dear life half way up the outside of Direnni Tower, then this small addition is for you. Climbing state is now saved and loaded with your game. If you save while holding to a wall, you’ll load holding onto that wall. This has no effect on standard climbing where you fall once you stop the climbing process.


Climbing in general has also been through a review process to fix many common and frustrating bugs. These are outlined in general fixes and improvements below, but I thought a couple of fixes in particular were of note. You can now climb surfaces that angle slightly backwards. The best example here is the coffin climb in Scourg Barrow, which was impossible up until now and trapped many an adventurer who didn’t set their Anchor or know about the Levitate tapestry nearby. And you can now climb over eaves onto rooftops like in classic.


Keyboard Look (Interkarma)

This is a small addition to the game, but some people like to steer their character using the keyboard instead of a mouse. Daggerfall had keybinds available for keyboard look, they just weren’t wired up to anything. From 0.10.23, you’ll be able to turn left/right and look up/down with the keyboard using the following bindings.


General Fixes & Improvements

There are enough fixes in 0.10.23 to group these by contributor.


  • Remove invalid assets from cache
  • Remove unused assets from mod cache
  • Improvements to mod manifest file
  • Improve handling of mod dependency issues and messaging
  • Mod loader add message for unsatisfied game version


  • Restrict CastWhenStrikes enchantments to weapons
  • Mark NPCs present if you have anytime access privileges
  • Prevent the use of weapons while climbing
  • Require confirmation before spellbook sorting
  • Do not call UnloadUnusedAssets() more than once every 3 minutes to reduce sound skip on UI close
  • Refinements and fixes to geometry unstick handling
  • Prevent saving while rapelling
  • Disable head bobbing while cursor active to prevent camera flip
  • Prevent leaving character creation recap UI with unassigned bonuses


  • Classic quest fixes for April 2020
  • Enable Lord Kavar quests


  • Improve output of “start quest” console command to show more information
  • Reduce GC alloc of SongManager
  • Fix horse footstep sounds when holding jump


  • Fix typo in ItemUseHandler delegate
  • Add Ironman quest actions (written by Ironman, added to core by Hazelnut)


  • Fix career-based spell absorption and chance roll for other effect-based absorption
  • Fix Teleport Anchor persistence, Anchor now clears correctly after Teleport
  • Fix orphaned items on quest completion via Foe item queues (e.g. mummy wrappings)
  • Fix items not made permanent when rewarded via Foe item queues
  • Fix player being hurled into air while mantling (e.g. reaching top of city walls)
  • Fix climbing slightly backward angled walls (e.g. Scourg coffin tunnel) and over housing eaves to roof
  • Fix floating away while rappelling into empty space
  • Fix oscillating between rappel and climb states
  • Fix losing Thieves Guild and Dark Brotherhood hideouts at end of quests for them
  • Fix billboard replacement models rotating to face player (e.g. loot piles)
  • Fix reversed values in Strengthens/Weakens Armor
  • Fix cancelling character creation back to start UI
  • Fix quest enemies not added when teleporting into dungeon
  • Fix WeaponManager no calling HandleAttackFromSource()
  • Fix automatic soul capture of Azura’s Star when equipped
  • Fix bad models overlapping stairs in two known building interiors
  • Fix wading footstep splash sound height check near dungeon water
  • Support racial immunity to Poison (e.g. Argonians in Races Redone mod)
  • Option shadows setting in .INI for NPCs and billboard, note these shadows will rotate with sprite
  • Implement scrolling DaggerfallMessageBox support
  • Add “purgenonstoryquests” console command to purge only non Sx story quests


That’s all for now! This has been a big release for a small group of developers to execute in their spare time, and I’m very proud and appreciative of everyone involved. This project would not be so successful if it wasn’t for the spirit and determination of all the people above (and many others). And let’s not forget our amazing community who spot bugs, provide feedback, create mods, and keep us all sane in these times. Thank you all, this game has remained a personal bright point in 2020.


For more frequent updates on Daggerfall Unity, follow me on Twitter @gav_clayton.

Daggerfall Unity March Builds

Welcome Back

Welcome to the first post of 2020! Over the last few months, our focus in Daggerfall Unity has been on bug fixes and refinement. This isn’t the most exciting time in a game’s life, but it is key to long-term success. Daggerfall Unity is now starting to feel more like a game well into a long beta rather than one freshly in public alpha. I’m in fact very confident we’ll be calling beta sometime this year, and it’s likely to be a short beta thanks to the time we’re spending now.

It’s incredible to think the main quest has been fully playable since 2017 and all classic gameplay features since July 2019. If this was any other game, we’d be beyond 1.0 and well into post-release support by this stage. But Daggerfall Unity isn’t just a game, it’s also a platform. This title is a superset of classic Daggerfall plus many more features not present in classic. I’m talking of course about quality of life refinements and mod support. This requires an extended development process well in excess of classic, because Daggerfall Unity is today a larger and more ambitious game than even classic Daggerfall was. That might not sound like much in 2020 compared to the wildly ambitious original way back in 1996, but it still represents a real accomplishment that everyone involved has brought this game so far and delivered on so much. For something that began with a single developer, this game has grown into a monster that only the combined efforts of dozens of people could have achieved. The fact we’re all doing this as unpaid volunteers in our own free time out of love for this game speaks volumes about how passionate this community is.

Before I get into the new features in current release, I wanted to recap some news from the last few months.


Daggerfall Unity Is On Nexus

In case you missed this one, we now have our own Daggerfall Unity page on Nexus. The number and quality of mods has been growing steadily and there are some real surprises in there. You should explore this page yourself to see the amazing work done by our community, but here are just a few highlights.

  • Quest Pack 1 – Hundreds of new quests offering stories and experiences not found in classic Daggerfall.
  • D.R.E.A.M. – New textures and materials to uplift the visual experience.
  • Handpainted Model Replacements – Replace many low-poly models and sprites with beautiful hand-painted 3D models.
  • Decorator – Place furniture, containers, lights, and even crafting stations into your home.
  • Archaeologists – A whole new guild of explorers with custom guild halls, quests, and items.
  • Roleplay & Realism – Advanced encumbrance, horseriding, usable bandages, and more will make your journey more challenging and fun.
  • Climates & Cloaks – Seasons and climates now matter to the player. Plan your journey and dress appropriately for the world around you.
  • Airships – Purchase your own airship to fly around the Illiac Bay, or just charter one for a journey.
  • Harvestable Crops – Gather plant ingredients for potion making from farms and other locations around the world.

It’s also worth mentioning the Nexus Vortex application supports Daggerfall Unity to help making downloading and installing mods as easy as possible.


Past Release Recap

Most of the updates since the last article in November 2019 have been bug fixes, but some new features have made it into the game as well. I can’t cover everything, but here’s a quick recap of some key new features:

  • World data replacement and variant system allowing for mods to change the world based on a quest or some other logic.
  • Many new quest actions for use by quest packs and mods.
  • Enable mods to add new merchant services.
  • Fire Daedra and Atronachs now emit light.
  • Improved support for formulae override in mods.
  • Magic item degradation now working for items when an “on held” enchantment.
  • Enemies now take fall damage.
  • Cemeteries now play creepy ambient sounds like classic.
  • Mods can override starting equipment and spells.
  • Better footstep detection to play more appropriate sounds based on surface player is walking on.

If you’d like more detail on recent patch notes, click through to the forum News area and read the summary posts from November 2019 (0.10.13) to February 2020 (0.10.20).


New Features

So what’s new in the March 2020 Live Builds?

Screenshots – Thanks to new contributor jefetienne, you can now take screenshots anywhere inside the game using the F8 key. They will be saved to your persistent data path (same area as Saves, settings.ini, etc.) into a new folder called “Screenshots”.

If you want to disable the HUD for your screenshots, use Shift+F10 to toggle HUD visibility.

The screenshot keybind can only be changed manually at this time, but jefetienne is also working on the new keybinds UI that will allow some of these bindings not present in classic (so not on the classic keybind UI) to be changed inside the game.


Equip a bow in left hand only – Enabled from an option at startup, Hazelnut’s new feature tweaks equipment handling so you can equip a bow and a one-handed weapon at the same time. This makes switching between bow and melee much faster to give archer/melee hybrids that extra “edge” in combat when their enemies get too close.

This is what we call a click-saver QoL enhancement. It just saves you all the steps of going into inventory to swap between bow and melee and simply alternate between these weapons with the “swap hand” key (H by default).


General Fixes & Improvements

0.10.21 builds bring the usual payload of bug fixes and small refinements.

  • Improve keybind data handling (zaklaus)
  • Add version label to startup UI (jefetienne)
  • Open some UI class field protection to better support UI mods (Numidium)
  • Fixes to player object activation (Pango)
  • Further shader improvements to help fix “water everywhere” tiles for people with lower-end hardware (Pango)
  • Fix mobile orientation “blind spots” (Pango)
  • Prevent collisions between missiles (Pango)
  • Improvements to enemy pathfinding through doors (Pango)
  • Ensure scaling vectors are correctly initialised and improve serialization (Hazelnut)
  • Fix marker assignment availability in Orsinium to prevent quest item landing in void (JorisVanEidjen/Interkarma)
  • Do not allow rearm of EndQuest action to prevent looping performance drop (Hazelnut/Interkarma)
  • Allow replacement potion effects (Hazelnut)
  • Fix building data duplicating building name (Hazelnut)
  • More texture fixes to classic models (Ferital)


Coming Up

There’s some cool stuff coming up on the horizon. I’ve dedicated March to start building out the localization features more completely, jefetienne is working on initial gamepad support and new keybinds UI, and there are already more bugfixes waiting to approve.

We’re also getting very close to upgrading project to Unity 2019.4 LTS (once available) and switching over to a linear lighting model. The first change will update Daggerfall Unity’s engine baseline for the next couple of years, locking that version in for mod creators. The linear lighting change will unleash several subtle improvements to the lighting appearance in DFU, while related changes will remove the minor “material shine” users might notice when playing Daggerfall Unity with classic textures.

Once the localization features and new keybinds UI are locked in, I’ll shift focus back to the large HUD and the final few Alpha items remaining on the roadmap. We’ll be hitting Beta releases later this year and finally seeing the light of 1.0 coming up shortly afterwards. After almost 5 years in development, this wonderful journey is entering its final stages. Congratulations to everyone that has helped this game come so far. I’m looking forward to discovering what the future will bring.

November Builds 0.10.12

Live Builds have been updated to 0.10.12. This is another primarily bug-fix release, with one major new feature.

Class Questions (Numidium)

This is a feature from The Elder Scrolls 1: Arena that has carried over to other Bethesda games, including Daggerfall. Even the infamous G.O.A.T. in Fallout 3 is a variant of this system. During the class questions process, the player is presented with several ethical problems and a few alternate ways to resolve each situation. Each answer will weight player towards the Thief, Mage, and Warrior archetypes. Once the questions are completed, a class hopefully fitting your play style will be offered.

This UI is more than just an elaborate class selector. It provides hooks for the imagination to think about how you might roleplay your character once generated and plunked into the world. Thanks to Numidium, this feature is now fully implemented in Daggerfall Unity.



If you find it hard to see the darker portion of above animation on your device, Numidium created the following screenshot with false colours that make the archetypes easier to see. If you’ve played Skyrim, you might recognise these designs from the Thief, Mage, and Warrior Guardian Stones. It’s wonderful how the later versions of TES make little nods like this towards the earlier games.


New Release Schedule

I have a backlog of pull requests (pending changes) open on GitHub for review. Every change can take a lot of time to work through and test before merging into the monthly builds. This can mean simple fixes might take a few weeks to come out, or be held up while a larger change is still under review. Sometimes a change might get bumped to the following month just because there isn’t enough time to review it properly before end of current month.

Now so much of the game has been built out, I can’t see any reason to stick with a strictly monthly schedule. Rather than dropping a big release with many combined changes each month, I will start releasing new builds approximately weekly. If something minor is fixed, I’ll try to release a new build just for that change. This also has the benefit of making it easier to pin down new problems when the number of changes is fewer in each release.

On the Live Builds page, I will start retaining longer history of available builds rather than cycling out old builds once per month. If you encounter problems with a new build, you can roll back to the previous build until it’s fixed. I’m looking at retaining approximately 4-6 weeks of build history.

This also means a scaling back of the monthly blog updates. Unless something big is available to feature, I’ll use the forums to post incremental changes and save the blog for more interesting content. I will link future releases to change log as they’re posted to Live Builds page.


General Fixes & Improvements

The November builds have several other small fixes included.

  • Allow mods to change wagon weight limit (AsesinoBlade)
  • Fix opening quest log clearing residences from map (Nystul)
  • Use classic formula for Masque of Clavicus (Numidium)
  • Support for custom books is now stable (TheLacus)
  • Fix player falling through floor when entering certain buildings while mounted (Hazelnut)
  • Add console command “add_all_equip magicWeapons” to spawn all magic items for testing (Hazelnut)
  • Make spawned weapons identified (Hazelnut)
  • Fix issues wth replacement buildings (Hazelnut)
  • Fix 1gp quest reward (Hazelnut)
  • Fix rented rooms duration underflow (Pango)
  • Use webm videos on Linux (Pango)
  • Fix NullReferenceException in DaggerfallVidPlayerWindow.IsPlaying for loading screen (Pango)
  • Fix comment displayed in text block for quest C0C00Y10 (Jay_H)
  • Do not resist “caster only” self-cast spells, e.g. heals (Interkarma)
  • Do not reflect spells from caster onto self (Interkarma)
  • Fix Thieves Guild O0A0AL00 using local NPC for contact, causing a crash in some cases (Interkarma)

October Builds 0.10.9

Live Builds have been updated to version 0.10.9. This is primarily a bug-fix build, but a few new features have been added to the mix.

Edit: Builds have been updated to 0.10.10 to fix an intermittent issue with combat targeting.

World Data Overrides (Hazelnut)

This is a longer-term initiative empowering modders to edit and change the world itself by providing substitute game data on the fly. While this is still under development, substantial progress has been made and is available in Daggerfall Unity now. For an early example, the below crypt has a few customisations. I have copy-pasted Hazelnut’s words in the list below.

  • A third coffin – the centre one.
  • A fiery birdbath (or whatever you would call it) in the corridor outside the door.
  • A floating green pot which you can just see behind, a bit further down the corridor.
  • An Archaeologists sign! I needed to test new models would work, so just used the one provided by my guild mod.

Continue reading