2017 March Miles

Mar 31, 2017

  • cycle: 115 miles
  • run: 77 miles

I took off an entire week mid-month, but I still managed to beat my February running miles. I’m gradually increasing my distance per outing, and for April I’ll be focusing more on cycling.


This photograph of Utah Valley was taken at the very end of the month during a bike ride.

Continue reading...

Werewolf Meter Papyrus Script Overview

Mar 10, 2017

This article introduces some Papyrus scripting techniques and reviews my scripts for “Werewolf Time Meter” mod for Skyrim Special Edition. In a nutshell, the “Werewolf Time Meter” borrows the blue magicka bar as a countdown meter during beast form transformation. If you have limited experience writing scripts or programs, please see introduction and tutorials on Papyrus Reference.

This mod and script examples also work perfectly with the original 32-bit Skyrim.




Instead of focusing on learning Papyrus, I go over technique and the workings of the two scripts making up “Werewolf Time Meter.” See “Creation Kit Papyrus Reference” for brief examples and tutorials.

The mod includes two scripts, the first allows the player to enable and disable the meter and the second polls OnUpdate Event every X seconds to determine if should display the meter or remove it. In the plugin there exists a spell effect to disable (damage) magicka regeneration preventing the time meter bar growing until beast form ends. This means upon detecting the player’s character has become a beast, the spell effect must be added. Remove if exists when not in beast form.

The main script polls infrequently since a speedy refresh isn’t necessary and to reduce overhead for a player with a heavy-scripted mod setup. Since checking the player’s condition is very fast, we could probably get away with more frequent updates. In beast form, the script polls every 3-7 seconds to update the meter else it checks every 30 seconds. If player is not a werewolf, I decided to set the next update event to 600 seconds to cover when player becomes a lycanthrope later in game. Of course, the player may disable to turn the main script off completely.

Since the player cannot normally use power spells in beast form, we could probably forget the case of enable/disable toggle during beast form. However, mods may exist allowing it so we should at least consider the possibility. We should also consider odd scenarios and try to make the script as robust as possible.

Continue reading...

2017 February Miles

Mar 1, 2017

  • cycle: 114 miles
  • run: 65 miles



Previous month

Continue reading...

Programming Problem: Pangram

Feb 15, 2017

Goal: write a method to determine if a string is a pangram.


A pangram is a phrase using all the letters of the alphabet.

  • The quick brown fox jumps over the lazy dog.
  • The five boxing wizards jump quickly.
  • Bright vixens jump; dozy fowl quack.


For this problem let the alphabet consist of only letters ignoring case, and let’s assume our input may include punctuation, digits, or spaces.


Give it a try in your programming language of choice, and try to be brief. Test negative case by removing words from the pangram. Below I share my solutions in Swift and C#.

Continue reading...

How to Update Meshes for Skyrim SE

Feb 8, 2017

Goal: scan mesh files (nif) to ensure compatibility with Skyrim Special Edition and update unsupported meshes.

This tutorial is aimed at the beginner using “Blades Hakama” by atomec as an example, and assumes familiarity working with folders and files. I do not cover HDT outfits here.


There are alternative tools available including automated batching.

What’s a mesh? It’s shape data that may be a piece of armor, a wall, a backpack, or a weapon. The files have the extension .nif.

Note: you do not need to scan or update FaceGen nif-files. Let Creation Kit generate new FaceGen data. See “Convert Old Skyrim Mods to SE” for more about FaceGen files.

Continue reading...