January Builds – Vampirism, Spell Icons, More Magic Stuff, New Quest Actions, and More!

It’s time for a fresh round of Live Builds for January 2019. The last month has seen a lot of progress across a wide variety of systems, so rather than waste time on an intro. let’s get right into it.


The full loop of Daggerfall-styled vampirism is now in the game from curse all the way through to cure. Each time you’re mauled by a vampire, you have a 0.6% chance of contracting the disease that will transform your character into one of their kind. Some time after being infected, your rest will be plagued with bad dreams. Unless you like fangs and late-night shopping, this would be a good time to find a temple and cure yourself of diseases.


If you allow the disease to continue a few days, you will “die” and awaken two weeks later interred somewhere in the region. In classic Daggerfall, your death will also remove you from all guilds and reset your legal reputations. At this time, Daggerfall Unity doesn’t modify guild memberships or reputations, this will be implemented sometime in the next few months.


Becoming a vampire comes with some great perks. You can no longer be touched by weapons less than silver quality, you get +20 to most attributes, +30 to Climbing, Critical Strike, Hand-to-Hand, Jumping, Running, and Stealth, and unique vampire versions of spells including one specific to your clan. I should note that only Levitate and clan-specific spells are currently delivered to vampires. Charm Mortal and Calm Humanoid are not working yet, but will be added soon. You also get a nice set of fangs and some really bloodshot eyes.


It’s not all positive though. As a vampire, you will start taking damage from sunlight and holy place. But most pressing of all is the need to satiate your urge to kill at least once a day. If you fail to kill each day, you will find yourself unable to rest which can make things difficult. Fast travel will also make you arrive at night, so you will have limited time windows for shopping in cities before they close.


After playing for a while, you will receive unique vampire quest, starting with an introduction ques from your clan. There are 10 vampire quests in total, including one that will cure you of the infliction.


It’s probably worth mentioning that most of the back-end work for racial override effects is now complete, so lycanthropy won’t be too far away.


Spell Icon Packs

While still a work in progress, it’s now possible for modders to create custom spell icon packs for magical distinction. You can have any number of icon packs installed which can have any number of icons. A test HD icon pack painted by VMBlast and prepared by Alyndiar on the forums is included in this build. This pack is likely to be upgraded at some time in future.

This feature comes with an enhanced icon picker that opens a scrolling palette of all available spell icons from packs and classic, rather than cycle through icons one at a time.


You can set the new spell icon from inside the spellbook or spellmaker UI. Your new spell icon will then be visible on the HUD when you cast that spell. Screenshot below by Alyndiar.


If you remove a spell icon pack, then Daggerfall Unity will just fallback to one of the classic icons instead. Effect icons from magic items do not currently use custom spell icons – a system for this working automatically and being defined by icon pack metadata is in progress.


Smaller Dungeons

If you’re one of the many people who find Daggerfall dungeons overwhelming, there’s now an experimental feature to make most dungeons much smaller and easier to navigate. You can enable this by setting “SmallerDungeons=True” in settings.ini. Because this is still in experimental stages, the setting is only available in settings.ini. Please make sure your save is not inside a dungeon when changing this!

Smaller dungeons work by remixing a random dungeon at layout time down to the minimum viable size of one interior block surrounded by four border blocks. This will simplify all random dungeons to around the size of Privateer’s Hold. Dungeons that are already small (e.g. cemeteries) and main quest dungeons are not affected by this change.

The following screenshots show a comparison of dungeons before and after enabling SmallerDungeons in settings. The smaller dungeon is still in the same style because components from the original dungeon are being remixed into a more compact format. If the original dungeon had water blocks, then the new dungeon might have a water block as well. New random layouts are seeded by the dungeon’s unique mapid, so the layout continues to have persistence like the static layout data read from classic.


Hopefully this feature will help newcomers have a better experience with Daggerfall while not completely changing the way Daggerfall’s dungeons look and feel.


City Gate Schedule

By order of the City Watch, walled cities now maintain a strict daily schedule. Gates will close at night and open again in the morning. Any travellers arriving at night (such as vampires) will need to find another way over the walls.


Potions & Potion Making (Hazelnut)

Daggerfall Unity now has full potion support thanks to Hazelnut’s efforts. All recipes are matched to effects and can be mixed in game. Potions have improved icon matching (a healing potion will have a red liquid for example) and potions of the same type will stack nicely. This feature is a huge plus for characters that prefer not to use magic directly.

Edit: Potions were originally available in December 20 builds, but some refinement has been done since then. It seemed appropriate to mention the feature again in light of how much work Hazelnut has put into it.


Use Magic Item Popup (Hazelnut)

You’ve been able to Use magic items to cast spells for a while, and now you can hit the “use magic item” hotkey (default U) to open a list of available magic items to cast from. This helps cut down on recasting time. Magic items will also now lose a bit of durability on each use until they break.


Organise Spellbook Items (Pango)

You can now move spellbook items up or down manually, or sort by alphabetical and order of spell cost. You can also rename spells and change their icons in the spellbook UI.


Racial Bonuses Info (Numidium)

When you click the History button on character sheet, any racial bonuses are now displayed as part of the popup info. This will include changes from secondary races like vampires and lycanthropes.


Special Mentions

Hazelnut has changed quest dispensing to be more like classic. Unfortunately this has breaking changes with quest pack mods. If you’re running any community quest packs, you’ll need to update that mod to a version compatible with this release. For example, Jay_H’s Daggerfall Unity Quest #1 already has a version for Daggerfall Unity 0.7.3 and later. You’ll need that update for these builds.

I also want to highlight all the amazing work being done by Nystul and Hazelnut around moving terrain setup to use parallel tasks and take advantage of multi-core CPUs. On most test systems, the time to load a terrain tile has been reduced from around 9ms to around 3ms. That might not seem like much, but it’s a big improvement to world streaming. Hazelnut continues to work on optimisation, and I understand more improvements are coming in the following months.


New To Effect System

New effects are now ready for use in game:

  • Acute Hearing now allows player to hear enemies at greater distance
  • Athleticism now allows player to jump 10% higher and experience 10% less fatigue loss
  • All player special advantages and disadvantages are now implemented
  • Can now trap enemy souls with Soul Trap spell and a free soul trap item
  • Implemented several item powers from roadmap (Extra Spell Points, Potent Vs, Regens Health, Vampiric Effect, Increased Weight Allowance, Repairs Objects, Absorbs Spells)

For the new item powers, these are currently not available from the Daggerfall Unity spellmaker. I’m busy laying down groundwork and a feature complete spellmaker will be ready soon. In the meantime, you can test these effects by creating these items with a character in classic Daggerfall and importing that save into Daggerfall Unity.


New To Quest System

More quest actions are now ready for quest authors and classic quests to use in game:

  • Implemented “remove foe” quest action
  • Implemented “legal repute” quest action
  • Implemented “mute npc” quest action
  • Implemented “destroy npc” quest action
  • Quest authors can now use “Place _symbol_ local house” or “Place _symbol_ remote house” to use any available house type


General Fixes & Improvements

As always, there’s a good number of smaller fixes and refinements to the game:

  • Fixes and refinements to mod system and asset injection (TheLacus)
  • Use correct format for ICON00I0.IMG when texture compression is enabled (TheLacus)
  • Allow readonly flag for IMG/CIF/RCI textures (TheLacus)
  • Fix scale of TVRN00I0.IMG texture replacement (TheLacus)
  • Fix casting spells with no spellbook (Hazelnut)
  • Fix selling horse and cart (Hazelnut)
  • Ship ownership (but not what’s on it) is now imported from classic save (Hazelnut)
  • Fix tavern resting when loading inside or when memeber of Fighters Guild (Hazelnut)
  • Fix enemies bouncing down inclines (Allofich)
  • Adjust large enemy colliders to fit through doors (Allofich)
  • Now receive Dark Brotherhood tally for guards (Allofich)
  • A mobile guard now correctly spawns when attacking a mobile guard NPC (Allofich)
  • Fix murder handling for casting spells on guards (Allofich)
  • Fix going to prison for 0-day sentences (Allofich)
  • Fix NPCs to use parent factions for dialogue (Allofich)
  • Fixes to chgain greaves item graphics and dyes (Allofich)
  • Improve enemy AI movement prediction (Allofich)
  • Enemies no longer attack magically concealed targets (Allofich)
  • Fix draw order of male robes (Allofich)
  • Tutorial quest content fixes (Pango)
  • Fix item info weight discrepancy for stacks (Pango)
  • Fixes to stack splitting (Pango)
  • NPC reaction rolls are now semi-random to help players with low legal reps (Numidium)
  • Can now bash open exterior doors (Numidium)
  • Interior fog now independent of exterior fog (Nystul)
  • Fog colour in dungeons is now black (Nystul)
  • Fix for classic save game import and exterior automap (Nystul)
  • Fix climate 230 settings (Ferital)
  • Fix for streaming world locations not loading (Lypyl)
  • Collision tuning for spell missiles
  • Player no longer loses fatigue while loitering
  • Flag handling causing excessive delays on quest timers has been removed – Note: this might leave some local quest with only a few short hours to complete
  • Added vampire console commands
  • Fixed letters popping back to HUD on first click
  • Fix PlayerGPS not resetting properly after fast travel
  • HUD place markers for quest debugger now support floating Y and should align correctly to buildings
  • NPC clicks now only rearm on success, so failed checks aren’t clearing clicks out of order
  • Compatibility fixes to vampire quests
  • Fixed multiple quest Foes generating same name
  • Action record spells no longer cost spell points
  • FACTION.TXT is now part of game data to fix common issue with bad faction data in the wild
  • Fix for some quest resources being incorrectly hidden
  • Player will no longer be crushed or forced to crouch under sloping geometry (e.g. in home attics and ships hull)
  • Main quest backbone now protected from ending using “enddebugquest” or from exception handling
  • Fix exception for out of range social group check


And that’s all for now, thanks for reading!


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

Daggerfall Unity 0.6.1 Stable & 0.7.2 Combined Releases

Happy New Year everyone! It’s great to be here in 2019 at last. This will be the year that Daggerfall Unity steps out of pre-alpha into alpha, and reaches feature parity with classic Daggerfall. If you haven’t seen the Roadmap page lately, it’s time to take another look. There aren’t too many items left now and no major systems remain to be developed. Everything that’s still to do is just a small part of an otherwise finished system. Even the Quest System and Effect System roadmap pages are looking very green these days.

With a busy end to 2018, I didn’t make time to put up change notes for the Live Builds released on 20 December 2018. I think its a good idea to address these changes before dropping the next release, or solid contributions from our developers aren’t going properly credited. Let’s start with the highlights of new features from 0.6.1 Stable and 0.7.2 builds. I’ve tagged anything introduced in 0.7.2 with [0.7].


Hanging Mode for Advanced Climbing [0.7] [Meteoric Dragon]

Upgrades to the optional Advanced Climbing system allows skilled climbers to hang from ceilings and eaves, and climb around on ceilings. This rounds out the other Advanced Climbing features such as sideways movement on walls and climbing around corners.

direct link to gfy


AI Obstacle & Fall Avoidance [Allofich]

Enemy mobiles have learned a few new tricks, and it’s a bit harder to trap them on the environment now. In addition to moving around static and dynamic obstacles, they’re smart enough not to walk off high places. While this isn’t perfect yet, it’s still a big improvement over classic AI. In other news, enemy AI is now capable of bashing open locked doors to reach the player!

direct link to gfy


Personal Light Sources [Hazelnut]

If you enable “item based player torch” in startup settings > Advanced > Enhancements, you can finally make use of those lanterns, torches, and candles in General Stores. Lanterns and torches can be refuelled using oil, also found in General Stores. If you make dungeons darker with the ambient light settings on the same Enhancements page, this adds a nice RP touch to dungeon delving. It can be quite tense knowing you’re running out of lantern oil and about to be lost in the dark.


Potions [0.7] [Hazelnut]

This is a big one! All potion recipes and effects are now supported in game, along with the crafting UI to make them. As a Daggerfall Unity quality of life feature, like-kind potion will stack.


Change Notes

Combined change notes for 0.6.1 Stable and 0.7.2 follow. I’ve sorted by author this time rather than tag each item individually.


  • Fix for imported classic characters levelling up on every rest
  • Fix AI trying to open locked doors, and player will not see “door is locked” for AI
  • Fix castle guards detecting unseen foes
  • Fix for enemy motor falling too quickly
  • Fix preventing magic/bow use
  • Fix for running skill increasing too quickly
  • Fix guards spawning in dungeons
  • Fix aquatic enemies spawning out of water
  • Fix exception when talking to some NPCs
  • Fix to up/down swimming exploit when player over-encumbered
  • Fix for being stuck in crouch in water
  • Fix for magic item rewards
  • Implemented initial AI obstacle avoidance
  • Enhanced enemy AI will now attempt to bash down locked doors to path to player (horrifying!)
  • Fall avoidance for enemy AI
  • Multiple enemy AI fixes
  • Implement mobile NPC guards in towns
  • Ambient sounds and water effects now use a random 3D position around player


  • Fixes to trade window interface
  • Fix politic index for Alik’r Desert
  • Fix missing transition event for dungeons
  • Fix searching for undiscovered locations from notebook
  • Fix arrow materials being assigned when they should not be
  • Ability to register custom activations to individual models using their ID
  • Book costs now calculated like classic
  • Light sources such as lanterns and candles can now be equipped and refuelled
  • Initial potion support with effects, stacking, and potion maker integration [0.7]


  • Fix for certain world objects not being cleaned up properly
  • Fix for foliage billboards not casting shadows in afternoon
  • Fix volume scale of horse (affecting Tedious Travel mod)
  • Fix for spell purchasing window closing when clicking Buy button
  • Fix level-up display issue in enhanced vitals indicators
  • Fix modern conversation style setting not persisted
  • Fix debuff blinking
  • Fix trying to sleep while levitating
  • Fix for item weight precision errors
  • Stack splitting
  • Player will now spawn on correct side of location after fast travel (relative to source point)
  • Can always put arrows in cart
  • Sound effects can now support delayed loaded
  • Ogg songs can now be streamed from disk
  • Add mousewheel support to books [0.7]
  • Clicking scroller trough now scrolls by one page in many interfaces [0.7]


  • Fix exception when no preset is selected [0.7]
  • Fix modding NPCs blinking on and off [0.7]
  • Support for spells casting animation texture replacement [0.7]
  • Improvements to FPSWeapon modding [0.7]
  • Import textures for BillboardBatch atlas from mods [0.7]
  • Several smaller fixes and refinements to modding system [0.7]


  • Fix for “help” command in console overflowing text buffer
  • Fix for NEW models not being added as action doors [0.7]
  • Fix for city locations disappearing [0.7]
  • Travel map window state now part of save games


  • Fix hotkey collision for exterior automap
  • Improvements and fixes to fog system [0.7]
  • New experimental INI setting “TerrainHeightmapPixelError”, reducing this improves terrain resolution at distance [0.7]


  • Fix proficiency flags being added to custom classes
  • Fix social group reaction adjustment
  • Fix for talk menu becoming unresponsive
  • Group reputations are now serialized with player
  • Only flash crosshair twice after selecting location [0.7]


  • Fix “magery” Place selection for “guard the mages guild” quest
  • Fix specific spell readiness and load game concurrency issues
  • Fix loss of building discovery state in saves
  • Fix certain message boxes opening and closing instantly (e.g. guild promotions, shop flavour text)
  • Fix “give item” not removing item from player inventory
  • Fix null entity target exception
  • Fix version text not showing – now only displays on pause menu not across entire UI [0.7]
  • Fix fog shaders not being included in builds [0.7]
  • Magic rounds are now synced to game minutes, so effects will expire correctly during fast travel or rest
  • M0B00Y16 (Giant Killing) – Revenge wave of giants now only spawn in target dungeon
  • Allow HUD toggle with LeftShift+F10
  • Implement “cast effect do” quest action, an effect-specific variant of “cast spell do”
  • Add “saying nnnn” support to GetItem quest action
  • Added additional guild support for quests
  • Start work on vampire support, currently only available from console for testing [0.7]
  • Trigger actions can now fire spells at player [0.7]
  • Disable collider on empty corpse containers once clicked on, preventing corpses from blocking quest objects

Meteoric Dragon

  • Upgrades and fixes to advanced climing, including new hanging mode for climbing ceilings and eaves [0.7]
  • Note: Advanced climbing upgrades are still a WIP and include some new bugs to be resolved


That’s it for now! A new release will be available soon with a whole new round of fixes and new content.


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

Creating SDF Fonts For Daggerfall Unity


All the way back in September, I upgraded font rendering in Daggerfall Unity to support Signed Distance Field (SDF) fonts. This enabled smooth high-resolution font replacements which can operate under the same “layout rules” as classic Daggerfall’s pixel fonts, with a substantial improvement to reading comfort as this comparison screenshot demonstrates.


Rather than storing individual display pixels of a text glpyh, SDF fonts store a distance value that can be turned into display pixels later at any resolution using a custom graphics shader. Unlike regular pixel fonts that become quite pixelated at high resolutions, SDF text can use those distance values to generate sharp detail even at UHD resolutions and beyond. If you’re interested in the inner workings of Signed Distance Fields, there are loads of great resources out on the web. This tutorial doesn’t look very deeply at SDF concepts, only the process of creating new SDF fonts for Daggerfall Unity.



There are a few resources you will need to work through this tutorial.

You can use whatever font or tools you like to generate your SDF font atlas. This is just the process I’m using that will generate known-good output for Daggerfall Unity. If you do use a different toolchain, the only thing that matters is the output image is a proper SDF texture and the glyphs are laid out in a specific way.


Font Layout Technical

The first step in creating a new font for Daggerfall Unity is to select a good font. This isn’t as easy at it might sound due to how fonts work in classic Daggerfall itself. Following is a technical primer to help understand the font layout process and why some fonts will look better than others.

Every book, text resource, quest, and popup in Daggerfall uses hardcoded formatting similar to old-school teletext where formatting bytes are injected into a signal later parsed by a decoder and formatted on-the-fly at the same time signal is being read. The formatting data is literally in the byte-stream for these text resources and was hand-placed when text was written. This setup is wildly inflexible compared to modern standards like HTML markup. The end result is there’s a very tight coupling between classic’s screen resolution and pixel font dimensions, and where formatting characters such as line breaks are placed in the stream. We can’t just replace fonts wholesale or the resultant formatting will no longer be correct. And because Daggerfall Unity connects to a classic Daggerfall installation for default game data, we inherit these same limitations.

To work around this, font technology in Daggerfall Unity takes a two-stage hybrid approach for classic UI emulation with custom fonts. The first stage is to create a layout based entirely on classic font dimensions. This ensures the layout rules are respected as per the text resource byte-stream. To visualise this, here’s a sampling of classic UI text with the layout areas highlighted. The background image is just for reference, the actual layout information stored is just the red squares. Note there’s also a “single pixel” spacing gap between each character in layout data (it’s actually several pixels because Daggerfall Unity is always rendering at high resolutions, but more on that in a moment).


Once the layout has been generated as per classic requirements, this information is used by second stage: text rendering. If you have classic font rendering enabled then text is drawn as above using a simple blit shader. But if SDF fonts are enabled then a different shader is used to render SDF text. The output looks like below.


The actual layout areas are exactly the same in both cases, and each character is scaled to fit within that same rectangle. SDF fonts also overdraw into their adjacent “single pixel” spacing area, as these spaces look huge and unnecessary once you have high-resolution text. It also allows the SDF font to have a few pixels more for detail. At runtime, the only difference is the shader used to render text. The final output process is so basic that it’s possible to switch seamlessly between classic and SDF text at any time (shift+F11 in-game).

This two-stage layout process exposes a limitation of Daggerfall Unity’s SDF rendering. Because it’s necessary to maintain classic formatting streams, each SDF character may be slightly stretched or squashed to occupy the space their classic equivalent would otherwise fill. You will notice this most when glyphs in your replacement font have very different aspect ratios to the glyph in the classic font they are forced to match. In the screenshots above, the most obvious is the lower-case L character. This is just a single pixel vertical line in classic, but has serifs in replacement glyph. The result is the lower-case L is a bit squished when replacement font is rendered.

But provided you select a font with similarly shaped characters overall, this effect is minimal and most users probably won’t notice or care.


Creating A Font Atlas

Once we’ve selected a good replacement font, the first step is to generate a source font atlas for our SDF texture. In this case, we’ll be using the MorrisRomanBlack.ttf font and Codehead’s Bitmap Font Generator to build the atlas.

First install MorrisRomanBlack.ttf to your system. This is done by right-clicking the .ttf file and selecting Install from popup menu.

Then open Codehead’s Bitmap Font Generator (called CBFG moving forwards) and configure settings as shown below. Please double-check you don’t miss anything, every setting is important in some way.


Depending on your font, you might need to clean up a little to ensure there’s no overlap at top or bottom of each cell. Keep in mind the SDF process will dilate the area around each character by a few pixels, which could cause stray pixels to be sampled at runtime. Accented characters are the worst offenders as they often have details very close to top or bottom of cell. I recommend setting zoom to 200% and looking through atlas one glyph at a time and adjust position of individual characters up or down if they are too close to cell floor or ceiling. This is the reason we set the “Font Height” to 62, to ensure there’s a couple of pixels free already built into the 64×64 cell. Note that I’ve also adjusted all glyphs 4 pixels to the right so there’s also some empty space around them on left and right. This will help Daggerfall Unity work out glyph dimensions when texture is read at runtime.

To adjust an individual character, select that cell in CBFG and ensure “adjust selection only” is selected. Then use up, down, left, right arrows to adjust vertical position inside cell. You might need to work through this process a few times until you have a source atlas you’re happy with. You can save your settings in CBFG and return to tune them later.

Once you’re happy with atlas, click File > Export > Targa32 (TGA) and save the atlas somewhere you can find it later. This will create a 1024×1024 output image with white on transparent pixels and nicely anti-aliased glpyhs. The anti-aliasing is important so the texture will convert nicely to SDF later. I saved this image as “MorrisRomanBlack-Atlas.tga”.

The full technical requirements of this texture are:

  • Start character must be ASCII 33.
  • Image size must be a nice square POW2 size like 1024×1024.
  • There must be exactly 16×16 cells in the final image. For a 1024×1024 atlas this means 1024/16 = 64×64 pixels per cell.
  • The glyphs must be nicely anti-aliased for best results from SDF conversion.
  • Each glyph needs a few pixels of empty space all around them inside cell, especially on left-hand side of cell or glyph may appear truncated in game.
  • Atlas must be exported with transparency intact, which is why we used TGA32 in CBFG.


Setting Up SDF Texture Generator

In this tutorial, I’ll be using a free Unity asset to generate the final SDF texture asset. If you’re comfortable with using Unity, you can just skim this part. If you’re using a different SDF generator then you can skip it altogether. You’ll just need to ensure the output image matches technical requirements above.

If you haven’t already, install the Unity editor. You can use any 2018.x version, but I’m using 2018.2.11f1 as this the current baseline for Daggerfall Unity itself. Then we want to start a new project called something like “SDF Texture Generator”.


Once your project opens, go to the Unity Asset Store (Ctrl+9 shortcut) and search for the “SDF Toolkit Free”. Download and install this asset into your project.


Once this tool is installed, we can use it to create our SDF texture. But first we need to drag and drop our source texture atlas into the Unity project. I simply dragged and dropped my “MorrisRomanBlack-Atlas.tga” created earlier directly into the Assets panel. Don’t worry about the imported texture settings, the tool will take care of that for us.


Now open the tool using Window > SDF Texture Generator. If the source atlas texture isn’t selected already, then click select and choose your texture from the list of available assets. Ensure settings are configured as below then click Generate.


This will output the final atlas texture pre-processed for SDF rendering. Click Save PNG File to export the texture. I saved this as “MorrisRomanBlack-SDF.png”. All we need to do now is rename this image appropriately and it’s ready to be used in Daggerfall Unity.


Using SDF Font In Daggerfall Unity

If you’ve followed the steps above, or used an alternate process, you will have a final SDF texture like below. I’ve just edited in a black background here to make it more visible in article. Normally it’s white on transparent, and you don’t want to change that.


Finally, to use this texture in Daggerfall Unity, we just need to rename it appropriately so the game knows which classic font it’s supposed to replace. In this tutorial, I’m replacing the default text font used almost everywhere which is FONT0003. To get this into the game:

  1. Rename final SDF texture to FONT0003-SDF.png.
  2. Copy into your Daggerfall Unity installation fonts directory in StreamingAssets/Fonts, overwriting the existing font file (keep a backup if you want to change back later).

Next time you start Daggerfall Unity, the new font should be visible everywhere FONT0003 is used, which is most places.



I hope this article helps those of you interested in creating new fonts for the game. Once the new SDF atlas texture has been created, you can distribute it directly to end users and they just need to drop it into their StreamingAssets/Fonts folder.

If you run into any problems with the tutorial, please create a topic in Help & Support forum and I will try to assist.

Good luck!


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

Notebook, Enemy Spellcasting, And Bug Fixes

To cap off a great month of progress, we have one more round of builds for October. This was going to be a solely bug-fix build, but amazing work kept on rolling in and I’ve decided to get these new features out to you now rather than wait until November.


Enemy Spellcasting (Allofich)

Building on top of my work on the magic & effect system, Allofich has wired up foes to hurl spells back at the player. This means ancient liches and vampires are serious threats again, imps are more than just a nuisance, and scorpions and spiders will just wreck your happy feelings with paralysis.

A lot of work was required in enemy AI to select spells based on touch or range. Enemies might stand their ground and hurl a fireball, or approach and attack player with a touch spell. And unlike in classic where the monster’s entire payload of spells are released instantly, they now make more intelligent decisions and release spells at sensible casting intervals. I can’t put into words just how amazing Allofich’s work on this has been. Magic in Daggerfall Unity suddenly doesn’t feel quite so one-sided, and magical encounters have become very dangerous again.

Here’s a short video where I pick a fight with some denizens of Mannimarco’s lair. Everything goes about as well as expected.

direct link to gfy


Player Notebook & Journal Upgrade (Hazelnut)

The Notebook feature (default key N) didn’t really do anything in classic Daggerfall and did not exist at all in Daggerfall Unity until now. This is one of those features I didn’t know how much I needed until I actually played with it. In typical Hazelnut fashion, he hasn’t just implemented a basic notebook, he’s completely upgraded the quest journal and carefully thought out how everything fits together. Here are the highlights of using our upgraded journal.


Record Conversations

If an NPC drops an interesting rumour in conversation, hit “copy to logbook” button to make a note of it. You can copy just the most recent message or the entire conversation if you want.


Travel Helper

My favourite new feature is the ability to click on an entry in Active Quests to initiate fast travel to that location. This is a huge quality of life improvement over remembering name and entering it into the “find” box on travel map manually. Just click the journal entry and hit Yes to load up the location for fast travel.


Completed Quests

Rather than vanish forever, you will now have a record of quests you’ve completed. This is nice way to look back and see what you’ve achieved with the character so far.


Map Log

Sometimes you will find maps in the game, or they will be given to you as a reward from a quest. Up until now, you’ve had to write these down and track yourself. In a perfect example of rounding out a feature, Hazelnut’s upgrade will track maps given to you from all sources. This feature even required improvements to quests, there’s no question he went the extra mile on this one.


Cycle Through Journal Windows

No matter if you open the quest log or notebook, they’re all part of the same UI. Click the “dialog notes” button to cycle through Active Quests, Completed Quests, and Notebook. Everything is nicely integrated. Of course if you open the Journal log (default L) it will go straight to Active Quests, and if you open Notebook (default N) it will go directly there instead.


Arrow Counter (Hazelnut)

A small but very nice feature is an arrow counter next to compass for archers. This is on by default, but you can toggle off using Enhanced > Interface > Arrow counter in startup UI.


Geographic Backgrounds (Hazelnut)

This feature is off by default and can be enabled from Enhanced > Interface > Geographic backgrounds. It repurposes the racial background portraits to instead display based on where the player is in the world. Here are some examples:








This feature so seamlessly reuses those background portraits it’s hard to not believe they were designed for this in the first place. This feature was created after a suggestion by Helegad in this forum post.



Other than new features above there are many smaller improvements in this round of builds.

  • Upgrade to use new VideoPlayer class for modded videos (TheLacus)
  • Mesh and texture injection renamed to AssetInjection and is now enabled by default (TheLacus)
  • Can now import books from modded locations (TheLacus)
  • Can now change name from character sheet – note this will change how subsequent saves are grouped for this character (Hazelnut)
  • Click and hold on up/down spinners to automatically keep increasing values (Hazelnut)
  • Can now use Ctrl+Click to split item stacks (Petchema)
  • All sounds now respect volume slider, including UI and movies (Allofich)
  • Can now open spellbook from character sheet (default F5) and spellbook (default Backspace)
  • Implemented “sort” button in spellbook. This currently sorts by alpha


Bug Fixes

And a good number of bug fixes too! Thank you everyone for pulling together and prioritising bug fixes, the game is better every day thanks to you all.

  • Fix for old saves throwing an exception (Allofich)
  • Fix no miss sound when player dodges (Allofich)
  • AI fixes (Allofich)
  • Can now sneak while riding again like classic (Allofich)
  • Fixed wrong text on Pacify effect (Allofich)
  • Stop fast travel countdown when cancelling (Allofich)
  • Fix starting skills rollout to classic (Allofich)
  • Only show “you feel somewhat bad” HUD text when player is poisoned (Allofich)
  • Fix for travel costs being negative (Allofich)
  • Fix parsing character background questions (Allofich)
  • Fix for enum that broke old letters of credit – note that new letters of credit since this bug must be discarded or manually fixed in save (Allofich)
  • Fix shop titles with %rt macro (Hazelnut)
  • Handle certain bad faction data by gracefully logging error rather than throw exception (Hazelnut)
  • Fix special handling of temple buildings – can now Akatosh Chantry by visiting Order of the Hour (Hazelnut)
  • Fix stat allocation for custom characters to cap at 75 and allow pool to go negative (Hazelnut)
  • Catch exception when weapon breaks (Hazelnut)
  • Fix travel from ship to use boarding location (Hazelnut)
  • Fix entrance/exit marker not showing on dungeon automap (Nystul)
  • Fix for automap freeze when tooltips disabled (Nystul)
  • Fix reputation change box not appearing (Numidium)
  • More fixes to item stacking – will no longer stack equipped or enchanted ingredients (Petchema)
  • Workaround for Unity 2012.2.x input bug under Linux where Shift/Tab/Alt, etc. show up as ? – note this can still happen in console UI
  • Fix for spellbook not being imported from classic saves
  • Fix for duplicate building key 0 causing certain buildings not to be displayed in Talk UI
  • Fix for HUD closing after accepting certain quests
  • Fix incorrect item generation from biography questions resulting in blank items



After such a huge month, I’m taking a short break from the magic system and will instead prioritise several fixes to gameplay and quest system. We must have a nice tick-tock between adding new features and fixing problems. And after so many ticks in one month, we really need to catch a breath and just settle into a stable build. This means the next month or two won’t be quite so flush with new gameplay features, instead they will continue to improve the experience we have so far.

I feel this release is probably very close to 0.5 stable. We’ll be rolling into 0.6 very soon, which kicks off the final push to feature parity with classic Daggerfall.


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

Daggerfall Unity October 2018

New Builds for October 2018

New builds are available on the Live Builds page now. This has been another huge month for Daggerfall Unity. We’re quickly closing the gap towards major parity with classic Daggerfall and exiting pre-alpha. The magic system has taken another big jump forwards this month with the number of implemented spell effects crossing the 90% complete mark.

I’ve also updated the main Roadmap and shifted a few magic-related items out of 0.5 into 0.7. This is so I can create a stable 0.5 build and start the downhill run towards exiting pre-alpha. I don’t think we’ll spend very long in 0.6, 0.7, and 0.8. These milestones have become more a formality at this point.

Alright, let’s unpack what’s new in October!


Automap SDF Fonts (Nystul)

The new SDF font system is now functional in automap UI. Now the fonts look smooth whether you’re zoomed all the way in or out of the map.


Advanced Climbing System (MeteoricDragon)

Daggerfall Unity isn’t just about reproducing classic 1:1 with quality of life features and mod support. We’re also adding depth to parts of the game that needed a bit more love in classic. If you’re the type of Daggerfall player who enjoys the Acrobat class, you probably want to make sure this option is enabled at Advanced > Enhancements.


The Advanced Climbing System allows characters with a high Climbing skill to not only scale walls, but to move in any direction, wrap around corners, cling to the wall, grab walls in the air, and leap off walls. A Khajiit with a high Climbing skill and magic can scale over practically any surface in the game. You can even climb out of water now, rather than face certain drowning.

direct link to gfy

In latest builds, you can rappel down walls by walking backwards off the top. I remember looking everywhere for that rope mentioned in Daggerfall’s manual, only to discover it wasn’t in the game. Well, who needs ropes when you can rappel?

direct link to gfy

If you’re a classic purist who prefers just scaling walls, all of these features are optional. Simply disable the Advanced Climbing System in settings and things are back to classic. The Advanced Climbing System is currently enabled by default for testing – and because it’s really fun to play with.


Biography Questions (Numidium)

These randomise your character a bit at the beginning of your adventures, changing starting gear, reputation, and more. You can either randomise biographies in a single click, or answer a series of questions. With this feature, custom character creation is now all but complete.


Character History (Numidium)

Hand-in-glove with biographies comes your character History, activated from a button on your character sheet (F5). This is an automatically generated background to help give you some role-play hooks for your character. This is mostly for flavour, but it’s a nice pen-and-paper RPG touch unique to Daggerfall. Note that only new characters generated from these builds will receive a full history. Existing or imported characters will have a blank history page.


Starting Spells & Magic Skill Tally (Numidium)

New characters now also receive their starting spells loadout. Missing these spells is a small thing easily overcome by a trip to the Gothway Garden Mages Guild, but they can be a nice starting point and help new casters escape Privateer’s Hold.


It’s also worth mentioning that casters now receive skill tallies when casting spells, it’s finally possible to level up your magic-user the normal way. And spell point costs are now enforced like classic as we tear off the “test” label and start considering spell casting in full production.


Enemy Target Selection & Infighting (Allofich)

Another enhancement not found in classic. Enemies will now select non-allied targets to engage in combat. Enemy allies are considered to be on same “team”, such as “undead”, “vermin”, and “daedra”. They might fight the player or engage with another monster not on their team. This brings a new dynamic to dungeon crawling where the inhabitants aren’t just standing around waiting for the player, they will also fight each other. In the video below, I kite that skeleton in Privateer’s Hold upstairs to the Orc in a nearby room and get them to fight each other.

direct link to gfy

If you prefer the classic system, this feature can be disabled from Advanced > Enhancements > Enemy Infighting.


Poisons & Elemental Resistances (Allofich/Interkarma)

As if diseases weren’t bad enough, poisons make their debut in October builds. Enemies will have a chance of carrying a poison weapon that will inflict player with a deadly poison. This is where your spellcraft or class immunity might come in handy. Poisons can end your adventuring career very quickly, so try to have a Cure Poison spell or a recent save handy.


As part of adding poisons, elemental resistances and their saving throw formulas have been implemented in these builds. You can find these spells available in the spellmaker (more on this below).


Ambient Light Scale Options

If you feel that dungeons and night-time are too bright in Daggerfall Unity, you can now adjust these with new sliders in Advanced > Enhancements.


You can set the ambient scale for dungeons, night-time, and the player’s personal light. These can be set from 0.0 (off) to 1.0 (normal). The lower you set these sliders, the darker these environments become. Setting dungeons to near 0.0-0.2 makes for a very claustrophobic experience. I show an extra-dark dungeon below in the video for the Light spell.


Hazelnut Updates

I’ve had some help writing this article, and Hazelnut was kind enough to outline what he worked on in the October builds. I’ll be back after his part of this update to outline all the new spell effects in these builds.


Hazelnut – Intro

After my initial foray into contributing with horse riding and ships, I turned my attention to all the logistics systems in Daggerfall. These fall under the following main categories:

  • Contextual macro replacements (quests, message boxes, talking etc)
  • Item management (inventory, wagon etc)
  • Commerce (trading, repairing etc)
  • Guilds (membership, quest dispensing etc)
  • Services (curing, potions, guild perks etc)

After having a bit of a break due to real life commitments, I recently returned to fill in the gaps in these systems. With the exception of some magic related parts, I think they’re pretty much complete now. So let me tell you what have I contributed recently…


Art Appraisal

A bug report was submitted pointing out that the info on painting items was not working which brought it to my attention. Rather embarrassingly I’ve since found that it had already been pointed out to me twice in other threads and I’d just forgotten all about it. However, with hindsight that was probably for the best because I might be bald from tearing my hair out if I’d tried to implement this before the amazing Allofich had reverse engineered the classic Daggerfall code and posted it to get me started!


Basically the info for paintings uses one of 7 variations of title stored in text.rsc at index 250. These messages contain various permutations of the macros %sub, %adj, %pp1, %pp2, %an (subject, adjective, prefix1, prefix2, artist name) which need to be replaced with the correct context text for the specific painting. The Daggerfall random number generator is seeded from a field on the item called ‘message’ that contains a random number applied when the painting is created, and everything is generated from this single number using a specific algorithm. It’s important to match classic so that the title matches the image displayed, the alternative would have been to create a new algorithm which was consistent but didn’t match classic. There were a few gaps in Allofich’s description so it took a bit of back and forth, plus several hours of experimentation on my part, to nail it. Now painting info should match classic, so please let us know if it doesn’t.

Part of the algorithm indexes an image from one of the many painting image files. Interkarma added the ability to add images to message boxes which I then used to display the correct painting above the title. Last thing was to correct the text to display in the info panel properly. Quite a nice example of teamwork I think, and very satisfying indeed. Here’s an example:

Painting Info

Painting Info


Shoplifting & Fences

Next on my todo list was to finish the trade window implementation, specifically the steal button. This required a new formula ‘CalculateShopliftingChance’ which uses the number of items and their combined weight with the players pickpocket skill to give a chance of success. Like most of the DFU formula, it can be very easily overridden by mods like the Archaeologists Guild mod changes the language pacification formula. Since Allofich had already implemented spawning of city watch guards, implementing failure was quite straighforward.

Then I moved on to the other side of the Thievery coin and implemented the Thieves Guild fence service which allows players to sell magic items. This needed a new mode for the trade window so that it could filter on item enchantment instead of type. It currently uses the default sell formula, although UESP hints that it may need updating to take into account reputation with the TG Fences. That will happen once we have concrete info and is simply a case of creating & using a new formula method.


Daedra Summoning

The last guild service, that is not tied into the magic system (still under construction), is summoning Daedra. I had no idea how this worked since I only ever got to level 2 in classic, so some research was required. After a while it became clear that at its core the service was really just a fancy quest dispenser, albeit with quests from Daedra to find magical artifacts. Thankfully UESP had good details about price, chance and summoning days so getting the initial part done was fairly straightforward and used standard parchment style message boxes as seen throughout the game.

Daedra Summoning

Daedra Summoning


Getting a quest off a Daedra Lord or Lady is a bit special and has an animated image of the Daedra with the text overlaid at the bottom. This required more work to create a new custom display method that had to split each message into chunks of 4 lines. Each click displays the next chunk and the quest can be accepted or not by pressing ‘Y’ or ‘N’ keys. Luckily Interkarma had also just posted about some code that Lypyl had written back in 2015 that played the related video files, and swiftly worked this into the codebase for me. This meant that adding the video player in the background was a breeze. Thanks Lypyl, very much appreciated!

When summoning works:

Daedra Summoned

Daedra Summoned

Do watch out if summoning fails, or you refuse such a powerful being, you may have trouble on your hands!

Well that wraps up my recent contributions, thanks again to the other members of the DFU team for their help and assistance. Except for fixing bugs in the core codebase, my focus will now be mostly on the Archaeologists Guild mod.



New Spell Effects

Another care package of spell effects has landed in October. Spellcasters now have more utility than ever to survive dangerous encounters, and some new threats as well.


Detect Treasure

This effect helps you find nearby treasure piles. A small arrow is displayed above your compass to guide you towards any treasure within range. In the below video, I’ve stashed a few treasure piles around the Mages Guild and use Detect Treasure to find them. Watch the compass at bottom-right of HUD to see the effect in action.

direct link to gfy


Detect Magic

If an enemy suddenly turns invisible, you might still be able to detect them with help from the Detect Magic effect. In this video, I turn a few mobile NPCs invisible and use Detect Magic to locate one and talk to them. They don’t know they’ve been turned invisible, and aren’t harmed by the spell, so it doesn’t register as a crime. This spell will help you locate magic effects running on any nearby mobiles.

direct link to gfy


Detect Enemy

You can hear that skeleton, but is it on the other side of the wall? With Detect Enemy, you can find out just how screwed your character will be when you open the next door. In this video, I round up a few enemies to test the spell. That’s a lot of markers!

direct link to gfy


Lock & Open

Use your magical prowess to secure doors against foes and open all but the hardest locks.

direct link to gfy


You can even use Open to break into locked buildings at night.

direct link to gfy


But some magical locks remain beyond your skills.

direct link to gfy



Summon a magic candle to light your way in the darkest of dungeons. And for players that really like dark environments, there’s even a new feature to turn down ambient lighting to suit your tastes. Here’s a video of the Light spell in action inside a super-dark dungeon.

direct link to gfy


Elemental Resistance

Poisons are only the beginning. Very soon, enemies will be hurling spells back at the player and fireballs aren’t so much fun when you’re on the receiving end of them. To help the player make their saving throws against magical attacks, you’ll find elemental resistances available in the spellmaker.


And if you fail your saving throw vs poison, you can now create a Cure Poison spell at the spellmaker.



Sometimes it’s better to make friends than risk combat. With the Pacify effect, you can now get certain foes on your side – provided they don’t resist your spell. Pacified enemies will not attack you again unless you accidentally harm them in some way.


Free Action

This effect will make you immune to paralysis for its duration. If you still have a paralysis effect active when Free Action expires, then you will become paralysed again. This is like a brief reprieve rather than a cure, for which you have Cure Paralysis. This might be useful when you come up against spiders and scorpions one day soon.



Levitation is great, but sometimes you just need to glide to the ground. The Slowfalling effect does exactly this. If you find yourself slowfalling downhill like in the video below, a quick Dispel Magic on yourself will cancel the effect.

direct link to gfy


What Else Is New

There’s also a range of improvements and minor new features in these builds, more than I could cover in detail.

  • Game Settings window overhaul (TheLacus)
  • Mod localization support (TheLacus)
  • Mobile unit flip now applies to modded enemy sprites (TheLacus)
  • Music selection now matches classic (Allofich)
  • Race and gender attack/hit sound effects (Allofich)
  • Name generation of NPCs is closer to classic (Allofich)
  • Moving platforms now collide with player while levitating (MeteoricDragon)
  • Player no longer falls off those steep ramps in dungeons when running down them (MeteoricDragon)
  • Mouse-over highlight in list boxes (MeteoricDragon)
  • Can now climb out of water while over-encumbered (MeteoricDragon)
  • You will now receive a warning message when entering water while overencumbered (MeteoricDragon)
  • Your arrows are automatically plucked out of corpses, a QoL improvement for archers (Hazelnut)
  • Shoplifting using the “steal” button in stores (Hazelnut)
  • More text macro support (Hazelnut/Numidium/Nystul)
  • FLC file support, used by summoning service
  • Support for string literals in Table class, used by mod system and eventually other localization
  • Lunar phases now tracked in DaggerfallDateTime class (guess what this will be used for later) 🙂
  • Disabled movement acceleration/deceleration by default, can still be changed in settings window
  • Added a small amount of forward momentum on jump – jump and gravity still not matched to classic
  • Improvements to Heal Attribute effects to allow healing attribute damage from poisons


Bug Fixes

Lots of bug fixes this time around. Because we’re getting close to 0.5 stable, we’ve all spent a lot of time fixing problems and on quality control. Thanks to everyone below for their efforts. Bug fixes aren’t glamorous, but they’re very important.

  • Fix for classic spawn check result getting stuck (Allofich)
  • Fix legal reputation persisting into older saves (Allofich)
  • Fixes to enemy animations and mirroring (Allofich)
  • Fix reading classic magic item names (Allofich)
  • Fix free room for member of knightly order region (Allofich)
  • Fix bank manager exception when no gold in wagon (Hazelnut)
  • Fix for magic item lists in merchant windows (Hazelnut)
  • Fix message shown when a house is already owned (Hazelnut)
  • Fix being able to jump with cart (Hazelnut)
  • Fix greetings in talk window and quest givers in relation to guilds (Hazelnut)
  • Fix text macros for temple rejection or identify (Hazelnut)
  • Fix items not being offered for repair (Hazelnut)
  • Fix Mercantile increase when identifying items via magic (Hazelnut)
  • Fix climbing teleport into air bug (MeteoricDragon)
  • Fix slow crouch bug (MeteoricDragon)
  • Fix horse stuttering down rolling hills (MeteoricDragon)
  • Fix gravity when climbing and slipping (MeteoricDragon)
  • Fixes for quest items stacking with normal items (petchema)
  • Fix for “restore anNPC” quest action pattern not compiling
  • Fix for speaking with certain NPCs in castles
  • Fix for issues where quest NPCs are assigned to home building instead of quest target building (e.g. Thieves Guild initiation quest)
  • Fixes to crush detection while levitating, swimming, and outdoor swimming
  • Fixes for loose objects such as towns not cleaning up properly, leaving floating cities, etc.
  • Fix HUD crash when faction has no children
  • Fix stacked exhaustion popups
  • Fix monsters that spawn while resting being improperly tagged to quest system
  • Fix spell missiles colliding with nothing in some dungeons
  • Fix magic items with “on use” not being useable while equipped
  • Fix spell icons by equipped items ending prematurely
  • Fix spell icons not blinking before expiring under certain conditions
  • You can now exit the level advancement screen when all of your attributes are at 100



That’s everything for now. Even as project lead, I’m often surprised by how quickly things are moving. It has become a challenge just to document and credit everyone for their efforts. We may not be at the finish line for a while yet, but Daggerfall Unity is piling on gameplay weight every day. It’s only a matter of time now before it reaches major parity with classic. If you’re willing to overlook a few missing pieces and inevitable bugs, the game is in a highly playable state. Exciting times ahead!


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

Daggerfall Unity September 2018

New Builds For September 2018

First builds of the month are now ready on Live Builds page. There are some great new features this time around, so let’s take our time unpacking them.


SDF Font Rendering

One common feature request is to improve quality of fonts in the game. This isn’t a trivial problem to solve as Daggerfall’s text formatting is hard-coded in books, quests, popups, etc. to line-wrap at certain points. There’s a very tight relationship between Daggerfall’s regular pixel font widths and how many characters appear per row. For any font upgrade to fit seamlessly within classic user interface, it must take this into account.

My solution was to completely overhaul the way UI renders text and support Signed Distance Field (SDF) fonts in addition to classic pixel fonts. This works by first performing a virtual layout for text elements then rendering either a standard pixel-font character or SDF-font character into the layout using a fast GPU shader. The end result is smooth high-resolution fonts at any resolution that follow the same layout rules.

You can toggle SDF font rendering in the startup UI or at any time in game with shortcut Shift+F11. SDF fonts are modable by dropping replacements into the StreamingAssets/Fonts folder. I will post an article dedicated to creating an SDF font atlas suitable for Daggerfall Unity soon. SDF fonts will be visible wherever text appears in the game – with the exception of text that’s “baked in” to UI elements. This needs to be modded out a different way and is unrelated to text rendering.

Below are some examples of book text at 4k resolution (click for full size).



New Spell Effects

Some powerful new spells are available in these builds that can make a real difference to character survival.


Water Walking & Water Breathing

In classic Daggerfall, water walking is more like a swim speed effect. I’ve tweaked this so you actually run over the surface of exterior water while keeping the usefulness of swim speed in dungeons. I’m likely to add the ability to stand on surface of dungeon water volume sometime in future. Water breathing will suspend your need to take breath while swimming underwater.

direct link to gfy

direct link to gfy


Magical Concealment

Fragile mages and nightblades rejoice, for now you can slip unseen past dangerous foes. The effects Chameleon Normal/True, Shadow Normal/True, and Invisibility Normal/True are now available. Credit goes to Allofich for implementing the back-end of these effects and AI behaviour of mobile enemies.

In case you’re not sure of difference between Normal/True for these effects, a normal strength effect will break when you attack something, and true strength effect will not. In the first of following two videos, I torment the city watch by going invisible (true) and using fireballs to distract them. They can see where the fireball originated from and will run to that spot. In the second video, I use an AOE effect to turn city watch invisible (normal) so they reappear as soon as they strike me. I don’t last very long against invisible knights!

Regardless of your concealment type, if enemies get close enough to you, they will be able to sense your presence and take a swing. It still pays to be a little careful.

direct link to gfy


direct link to gfy



The climbing effect increases both your skill at climbing and the speed at which you climb. For characters that spend more time studying than working on their core strength, this could save them after falling into a body of water needing climbing to escape. In the video below, I climb normally then again while enhanced by the climbing effect.

direct link to gfy



There’s nothing more satisfying than leaping from rooftop to rooftop. With the jumping effect, you can propel yourself to heights out of reach even for skilled acrobats.

direct link to gfy



Now that you can find magic items in treasure and on slain foes, you need a way of identifying those items in the field. Thanks to Hazelnut, you’ve long been able to identify magic items in Mages Guilds. The identify effect allows you to identify items from anywhere. This effect just opens a free identify interface as if player is inside a Mages Guild, which is only partially how this effect should work. I will return to this later and refine it to work more like classic.



Initial Magic Item Support

Magic items make their debut in this build with support for “on equip”, “on use”, and “on strike” spells. Only effects that have been implemented will function on magic items, but that’s almost at the 70% point now so most magic items should work. And thanks to Allofich, you’ll find magic items in loot piles and on the corpses of slain monsters. These magic items have random effects assigned using same process as Daggerfall itself.

Magic items are far from complete, however. We still need to support special powers that work like advantages/disadvantages, and link all this up to the magic item crafting station in Mages Guilds. But just having a good chunk of magic item support available opens up a lot of new gameplay.

Here are a few videos of magic items in action. First I try out a pair of “on equip” pants of water walking. Then I heal and cast a fireball with “on use” toga and armbands. Finally, I paralyze the city watch with a Dwarven dagger of cursing.


direct link to gfy


direct link to gfy


direct link to gfy


Buy Spells

A small but important addition is you can now purchase standard spells available in Mages Guilds across the Illiac Bay. Only spells that have been implemented are available for sale, but this sits at around 70% now. With all the upgrades in these builds, the magic system is finally starting to become fun and useful.


What Else Is New

Many other refinements and new features have gone into these builds that aren’t so easy to screenshot. It’s also important to credit those who have added work.

  • Enemy AI improvements (Allofich)
  • Recreate classic random enemy selection in dungeons (Allofich)
  • Implement classic melee timer and reflexes (Allofich)
  • Magic items with random spell effects now available in loot drops (Allofich)
  • Magic items imported correctly from classic saves (Allofich)
  • Climbing fixes and improvements (MeteoricDragon)
  • Underwater fog in dungeons (MeteoricDragon)
  • Swimming improvements and fixes (MeteoricDragon)
  • Gold in wagons can be deposited directly into banks (Hazelnut)
  • Improvements to mod system (TheLacus)
  • New console command “add magic [n]” where [n] is number of random magic items to add


Bug Fixes

  • UI fixes for for custom class creator (Numidium)
  • Save Explorer tool window fixes (Allofich)
  • Fixed out of bounds error in older saves (Allofich)
  • Fix for weapon hand when loading saves (Allofich)
  • Fixed several portraits showing “oops tell Mark now” (Nystul)
  • Fixed “unknown-guild” text in Talk window (Nystul)
  • Fixes to message block handling in quest parser
  • Potential fix for Mac crash on start due to shader compile errors (note: may break compatibility with some mods on Mac)


Known Issues/Limitations

Please don’t forget the game is still in pre-alpha. Here are some known limitations of new features in this round of builds.

  • Spell icons for equipped items expire, even though effect is permanent while item remains equipped
  • Magic Item and Potion crafting UIs still under development.
  • Not all effects implemented. See Effect System Status roadmap for more. Any magic items requiring non-implemented effects will not function.
  • Only first “on use” spell on magic item will be cast on use.
  • SDF font not supported in exterior automap name plates, or wherever text is “baked in” to UIs.
  • Identify effect does not work exactly like classic.



Thank you for taking the time to read this post and follow the progress of Daggerfall Unity. I’m incredibly grateful to have so many awesome devs attach themselves to this project and help make it into a reality. For a big game remake that began as a single person’s hobby, it certainly has taken on a life of its own!

With the great people involved and the progress already made, I can’t see any technical roadblocks between now and reaching parity with classic Daggerfall sometime in the next several months. All of the really challenging problems are solved and the bulk of features are now in reasonable working order. From here it’s just an incremental run to the end as all the missing pieces come together.


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

Daggerfall Unity August 2018

New Builds For August 2018

New builds are now available on the Live Builds page.

What’s New

  • Implemented custom class creator UI (Numidium) – Note: most advantages/disadvantages still pending implementation as part of effect system rollout
  • Implemented outdoor swimming (MeteoricDragon)
  • Implemented item power information on “Info” messagebox popup (Allofich)
  • Magic items and their powers are now generated in random loot and in merchant shelves (Allofich) – Note: magic item powers are not functional in game yet

Bug Fixes & Improvements

  • Improvements to smooth height changes (MeteoricDragon)
  • Easier to mute sound or music volume (MeteoricDragon)
  • Fixes to crush detection to prevent accidental deaths (MeteoricDragon)
  • Smooth status change feedback added to health, fatigue, spell points bars (MeteoricDragon)
  • Bug fixes to arrow weight handling (Hazelnut)
  • Fix exterior music playing in dungeons and other interiors (Allofich)
  • Fix for music volume incorrectly influencing UI windows (Allofich)
  • Fix for doors rotating incorrectly on load (Allofich)
  • Fix for opening books imported from classic saves (Allofich)
  • Restored several variant changes in item templates overwritten by a previous change
  • Fix for quest parser not detecting end of final message block if empty line not present
  • Clothes in stores now have a random variant assigned
  • Fix for mouse not being captured after alt+tab – clicking in game window should recapture mouse
  • Fixes to “add armor” and “add cloth” console command to correctly use player gender and race

In Progress

  • Implement Illusion effect back-end behaviour – still needs to be wired to front-end effect (Allofich)
  • Certain time-limited items such as summoned items now supported in back-end (Allofich)
  • Started work on potion back-end for recipe handling

Looking to the near future, my personal workload has started to shrink again and I will continue work on rolling out spell effects soon. I somewhat prematurely celebrated my larger July projects wrapping up, only to have some of the smaller projects drag on much longer than expected. We should see a return to more regular incremental updates to magic & effects very soon.

On the plus side, the other developers have continued to work on systems and fix bugs. I’m particularly excited to see the custom class creator and outdoor swimming in this round of builds, as well as magic item drops for loot and stores.

Something that’s hard to describe in point form is all the incremental changes forming the rungs of a ladder towards a fully functional magic system. All of these seemingly minor back-end changes such as potion recipe handling and magic item drops, and magic crafting stations, are all important building blocks towards our goal.

I received a little bit of disappointed feedback when potion and magic item crafting stations came online before potions and magic items were ready to go. And I imagine the feedback will be similar now that magic items are dropping but not yet fully functional. The thing to keep in mind is that once all of these threads come together, the final stages of fully opening up spells, magic item, potions, advantages/disadvantages, diseases, etc. will coalesce very quickly.

I’ve linked the Black Triangles story before, and it’s well worth a read if you haven’t already. It perfectly describes all the work that goes into making the back-end of a game functional while not much interesting is happening on the surface. The same is true of Daggerfall Unity as the various moving parts begin to mesh.


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

Daggerfall Unity July 2018

New Builds For July 2018

These are the first round of public builds after upgrading to Unity 2018. There are some general changes in these builds related to updated engine version you should be aware of.

  • Some mods might not work under new builds. Check the Released Mods forum for an update and please let the creator know if any problems running their mod in latest version.
  • Enhanced Sky is probably the main mod known not to work with this new version. You will just see a pink background instead of the sky. Nystul is currently working on an update for Enhanced Sky compatible with latest version of the game.
  • For Windows users, the “output_log.txt” file is now in your persistent data path (same place as settings.ini and save games). Please refer to this link to find where your Player log is saved based on OS. The included manual still needs to be updated with this information.
  • For Windows users, you will also see a couple of new files “UnityPlayer.dll” and “UnityCrashHandler32/64.exe”. You can ignore these and just run “DaggerfallUnity.exe” as normal.

What’s New

Besides the update to Unity 2018 for builds, there are some new features and bug fixes.

  • Improved near death experience (MeteoricDragon) – Introduces a subtle pulsing warning when player is at extremely low health. Can disable from Advanced settings at startup.
  • Magic Item & Potion Maker crafting stations in progress (Hazelnut) – Work has started on these crafting stations and the general UI is now available. They are not yet completed and currently cannot produce magic items or potions.
  • NPCs no longer stop when player’s weapon is drawn (MeteoricDragon).
  • Reputation propagation is now implemented (Allofich/Hazelnut). This means when you complete quests for certain reputation groups, your reputation gains/losses will influence related groups as per classic.
  • Sorcerers no longer regen spell points, just like classic – recharge now available at Mages Guild (MeteoricDragon).
  • Fixes for enhanced scroll list bugs (Hazelnut).
  • Fixes for sound effects not respecting global sound effect volume (MeteoricDragon).
  • Discovered locations are now imported from classic saves (Allofich).
  • Console command “add [item] [qty]” now supports “add gold [qty]” For example, “add gold 1000” will give player 1000 gold pieces.
  • Console command “reset_assets” will clear mesh and texture caches and refresh scene by performing an in-place quicksave then quickload. This uses the “QuickLoad” slot, so make another save if you don’t want to overwrite this slot.
  • Console command “setmqstage 1” no longer forces player level 1. You can now use this command to restart main quest at any level. Caution this will also reset reputations and global variables.
  • Bug fix for travel map opening map IMG files in read-write mode. This would cause a black screen when opening travel map on some systems depending where game files were stored. Changed this to use read-only mode as intended.

If you’re on the forums, you can discuss this release in this forum thread.


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

Get Ready For Diseases

Unlike later games in the series, diseases in Daggerfall are more than a mere annoyance. They mean serious business and could spell a permanent end to your adventures if left untreated. Diseases will sap your attributes to nothing and even kill you in a matter of days if you don’t manage to get cured.

So good news everyone! Starting with latest Live Builds you can become infected with diseases in Daggerfall Unity thanks to dirty creatures like bats, rats, and mummies.

Diseases actually began development a while back. Most of the research and back-end framework was built out by two rockstar contributors you should already be familiar with: Allofich and Hazelnut. Diseases have just been waiting for me to implement effect system to handle their payload and support their curing by spell effects. This is another great example of a successful collaborative effort for Daggerfall Unity.

Rather than roll out a dry article about implementation details, I’ve decided to use the Visual Diary format to tell a bit of a story and show all the different parts of the disease system in the context of normal play. I’ve decided to create a fictional day in the life of your average character to show how he might catch a disease and find his way to a cure. This is also great opportunity to show just how far gameplay has come, as everything that follows is something that could play out in Daggerfall Unity right now.

Let’s begin.


Continue reading

Updated Builds May 2018

A new round of 0.5 builds are available from Live Builds page. Here’s an overview of what has changed in this version.

New Features

  • Spellmaker now shows gold and spell costs. Spells will remain free to buy and cast for testing purposes.
  • Casting spells now deducts spell points from player, but can continue to cast spells at 0 spell points for testing purposes.
  • Crime & Punishment updates with more work on Court UI in progress (Allofich).
  • Implemented Drain Attribute, Paralyze, Levitate effects. Check these Twitter links for short videos of Paralyze and and Levitate in action.
  • Started work on Heal Attribute effects and resistance back-end. Currently only Heal Strength is available, will build more soon.
  • Can now open spell book from character summary UI.
  • Using smaller SoundFont “TimGM6mb.sf2” by default to reduce distribution size.
  • Can now use custom SoundFont by placing .sf2 file in StreamingAssets/SoundFonts and setting SoundFont=filename.sf2 in settings.ini.
  • Active spell effects are now saved/loaded.
  • Allow mods to save/load data (TheLacus).
  • Updated player headbob, smooth crouch, and other movement mechanics (MeteoricDragon).
  • Implement town NPC dialog to include “Where Is > Person” queries (Nystul).
  • Implement spell icons for active spells. Includes tooltips while game is paused.
  • Updates to ensure default materials always have glossiness 0 and metallic 0 and alpha channel available. This is groundwork for using later Unity versions.
  • Attacking civilians with offensive spells is now considered assault. Killing civilians with offensive spells is considered murder.

Bug Fixes

  • Fix bug with loose file asset injection (TheLacus).
  • Fix bug where player could not delete spells from spell book.
  • Fixes for enemy turning (Allofich).
  • Fix mobile NPCs “skating sideways”. Still some mobile NPC pop-in to resolve.
  • Fix guild membership lost after loading a game (Hazelnut).
  • Fix weather manager causing a crash after loading interior save, and preventing future saves.
  • Fix enemies shooting bow too much (Allofich).
  • Fix %god macro causing a crash in popup dialog. This would become evident when player could not complete quest or rest after bug occurred.
  • Fix certain quest NPC placement tracking to support dialog system.
  • Fix certain town quests starting and ending instantly due to travel time not being calculated (merchant and commoner quests are still in progress).
  • Fix bug where player could melee attack at bow range after changing hands from a bow attack.
  • Fix travel map border not disabling when zooming in.
  • Minor quest fixes.


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

First Look At Spells

I recently demonstrated spell missiles and discussed the back-end framework driving magical effects in Daggerfall Unity. I’m happy to report that it’s now possible to create custom spells and hurl sparkling death at your foes! As my last article was a bit dry and technical, I’ll start this one off with a short video of spells in action.


New Builds

You’ll find all new test builds on the Live Builds page as usual. Here are the key features of this release.

  • Create custom spells in the Spellmaker UI (invoke using “showspellmaker” from console).
  • Spellbook UI where custom spells are saved with your character.
  • 3x magic effects are currently available for testing:
  •     Continuous Damage Health (a damage over time effect).
  •     Damage Health (a direct damage effect).
  •     Heal Health (heal yourself and other entities).
  • All elements and target types are available (as appropriate for effect) when creating spells.
  • Smooth crouching, head bobbing, and head rocking when damaged (Meteoric Dragon).
  • Sound and music volume sliders (in progress). Some effects not wired up to volume slider yet (Meteoric Dragon).
  • City Guards and crime tracking, starting work on Crime & Punishment (Allofich).
  • More mod support in the back-end (TheLacus).
  • Various small bug fixes and improvements.

While only 3x effects are available at this time, this doesn’t nearly do justice to the progress that has been made. Spell effects are actually very small scripts – usually no more than a few lines of code and some properties. What really matters is the framework driving magic in Daggerfall Unity has finally progressed to this point. The previous article has more on this if you’re interested.



The purpose of these builds is to test the magic & effects framework is well-behaved and usable in its current state. What I’m looking for are crashes and other unexpected behaviour in the framework. Once this is working well, I will continue to roll out more effects in future builds. To keep testing as focused as possible, here’s a summary of what you can expect from this release.

  • Create and cast spells using the starting 3x test effects above.
  • There is no spell absorption, reflection, or elemental resistance at this time.
  • You can select elements to change appearance of spell and missile, but all elements are equal in terms of damage.
  • All target types (caster, touch, target at range, etc.) should be working.
  • Spells do not yet increase related magic skills of character.
  • Spells are all currently free to buy and to cast – so make them as weak or powerful as you like.
  • All of these free spells will be expired at some point closer to 0.5 stable.
  • Magic items are not implemented yet, this will come much later in 0.5 cycle.

Note: Due to changes in the modding system older mods may not work in this version. Please revert to build #105 for any broken mods until creators update for current version.



For discussion on these builds, please head over to the forums. If you want to report a bug, post this to the Bug Reports forums. If you’re not sure if something is a bug or just not implemented, don’t hesitate to ask in Help & Support.

I hope you enjoy this early preview of spells in Daggerfall Unity. Have fun!


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

Magic & Effects Back-End

In my previous article, I showed progress on the visual side of spell-slinging and had lots of fun with casting animations and throwing around missiles with lighting effects. Now I have to regard the business end of the spell system and how all of this holds together under the hood. This article will be a lot more tech-oriented than my previous one, but may still be of interest if you’re curious about how spells will operate in Dagerfall Unity.

Please keep in mind this is all under active development so concepts discussed here are likely to be refined or expanded by the time everything rolls out.


Magic & Effects System

One major shift in this process was changing how I think about the spell system. I have a long list of goals I want to achieve during this stage of development, above and beyond just emulating Daggerfall’s classic roster of spells. Primarily, I want to create a central way of handling the majority of effect-based gameplay. This means advantages/disadvantages, diseases, poisons, spells, magic items, potions, and so on should all come together under the one system or group of related systems. Once I had made that decision, it no longer made sense to call it the “Spell System” as spells are just one part of the collective. So the Magic & Effects System was born.

This is why you won’t see the word “spell” very much moving forward but you will see the word “effect” a lot. In this context an effect isn’t something visual, it’s how something works. For example, an effect that heals the player is a script which increases their current health. This naming is taken from Daggerfall itself where spells and magic items reference effects directly using a type and sub-type.  You can read more about classic Daggerfall’s spells and their effect indices on this UESP page.

You will also see the term effect used by Daggerfall’s Spell Maker UI when creating a new spell. You can add up to three effects per spell as shown in screenshot below from classic Daggerfall (spell maker is not yet implemented in Daggerfall Unity).


Continue reading