“Horror in Darkmoon Vale,” a Pathfinder Game — Session 1 Recap

"Knights Riding to Death," by Samize

“Knights Riding to Death,” by Samize

I'm GMing my first Pathfinder campaign. If you aren't up to speed on your tabletop roleplaying games, Pathfinder is a revision of D&D and appears to be wildly popular among dice-throwers. This is a recap of the first major session of play.


The adventure opened in early spring, as the nation of Andoran began to warm up after a mild winter.

The party was traveling in a merchant caravan led by the mysterious merchant Alexi, a human in his mid-forties who said little to his traveling companions and seemed to remain constantly cloaked in a large robe.

They had been hired in Almas, the capital city of Andoran, to guard the caravan while it distributed goods to the most isolated fringes of the countryside. Over the past couple of months they had made the slow journey from town to town, and now approached their final stop at Falcon’s Hollow, a remote lumber operation in Darkmoon Vale that had come under an increasing number of werewolf attacks.

The camp

At camp on the night the caravan first entered the Vale, our heroes were sitting together at a fire when Alexi approached on his rounds. He explained that the Vale felt unusually strange on this visit, and he requested double-guard duty from everyone, the party included.

The careful eye of Starbuck, a human fighter in the group, noticed Alexi withdraw a sword Starbuck had never seen before from a formerly hidden compartment on the lead wagon. It was incredibly large, an enormous greatsword finely wrought. No one could remember Alexi having ever been armed with anything, let alone such lethal steel.

After watch order was determined, the night passed uneventfully. However, after waking, everyone found that they were troubled by dark dreams of murder and pillage, an unusual event for this band of, let’s say, basically upstanding adventurers.

That day, the caravan arrived at Olfden and distributed goods to the town before continuing north on its way to Falcon’s Hollow. After a night spent at the half-way point between Olfden and Falcon’s Hollow, the travelers geared up and spread out along the road in the dim morning hours before dawn.

The flaming wall

The road took them through plains and down into a small forest where it cut through trees on either side. Our heroes were taking up the caravan rear, guarding the final wagon in a five-wagon train, when the elven monk Andor noticed something bone-white among the leaves at the roadside. He ran in to attack immediately, throwing a flurry of blows.

At that moment, a wall of fire thirty feet high erupted in front of the wagon, rounding off to encircle the wagons ahead. It appeared to have missed them by a small margin. However, their attention was diverted from the flames and the peril of their companion guards by two skeletal monstrosities that emerged from the treeline. More powerful than mere animated skeletons, these bony thugs carried swords and armor and appeared fit to kill.

The skeletal champions attack

Andor was surprised to discover just how lithe and defensive a skeleton could be — as it dodged his blows and deflected with a well-made shield.

Starbuck ran in for an attack, as did Zhukmihr, wielding his guisarme from atop his snarling dire wolf mount. Janus, too, wedged into combat with his scimitar. Meanwhile, on the other side of the wagon, Daeron fired from his longbow.

All of them found that the skeleton would be no easy fight. Even confused by mist from one of Janus's spells, the skeleton fought on, trading blows with Starbuck that left him bloodied. When another skeleton appeared from the woods, the group split into two groups and continued the fight.

Doing perilous battle, they found that as individuals they struggled, but working together to flank gave them enough of a chance that they overcame their enemies without any good soul's unfortunate demise.

An infernal creature

As they surveyed the post-battle scene and questioned what to make of the flaming wall, our heroes’ minds were pierced by a voice that shouted in all of their native tongues simultaneously, demanding — of who, it was impossible to say — the location of “it." A person, place or thing, they could not say.

They also saw and heard explosions beyond the wall, as thunderous booms broke out repeatedly and flaming plumes rose into the sky. They could only imagine the scene of carnage beyond, listening to the sound of rending steel, bursting wood, human screams and a terrifying voice of doom above it all.

The wily ranger Daeron thought to climb one of the nearby trees that had avoided catching fire. Rising above the wall, he peered down over its hot edge and saw a scene lit by predawn light. In the center, a man at first unrecognizable, clad in shining plate armor, traded blows with an infernal creature ten feet tall if it wasn’t twenty, with a black-rock hide and huge wings spread out behind him. The man defended repeated flailing strikes made by the creature’s barbed chain.

It was the sword that gave him away — as Daeron looked closely he realized that the man was Alexi, whose robe and outer garments had burnt away. Around him and the creature lay piles of corpses and the flaming ruins of the wagon train, all burned and rent, and pools of melted silver and iron collecting in the dirt from superheated former weapons.

Daeron relayed everything down to his party-members.

A search

The team spread out, wondering if they unknowingly had this “it” to which the creature referred. Andor, Starbuck and Janus the magus searched the wagon they had been guarding, only to find stack upon stack of silver weapons, apparently bound for Falcon’s Hollow.

Meanwhile, the cavalier Zhukmihr rode his faithful mount, a dire wolf, around the circle of fire, hoping to see what he could make of the rest of the wagons and Alexi. He found only continued flames and followed the wall around until he returned to his companions.

The death of Alexi

Daeron watched closely as Alexi and the infernal creature traded earth-shaking blows, each seemingly the match for the other, until the creature began to overcome the party’s former merchant-master. Ripping strikes from the creature’s chain tore apart Alexi’s fine plate armor, and in the final moment of combat Alexi split one of his enemy’s arms from the torso only to receive, in response, a killing blow.

Alexi having slumped lifelessly to the ground, Daeron realized that nothing stood between the creature and him. Overcome by horror, he wretched and began to scramble down the tree.

At the bottom he relayed the final moments of the fight. His friends, too, had seen the creature, but only in a brief moment as it flew away from the scene. They did not get a good glimpse. The flaming wall disappeared soon after.

The remains

With the flaming wall gone, the friends ventured forth. They found a circle of unspeakable carnage, at the center of which Alexi hung crucified on a tree that had been ripped out of the ground and plunged into the center of the road. His sword lay broken in pieces at his feet.

Andor approached the site and pulled the body down, finding nothing on it that had not been burned away or torn off, except Alexi’s destroyed armor and sword. He knelt and examined the hilt of that once-fine blade, seeing that its insignia, some kind of bird, resembled in a way the heraldic symbols of the Eagle Knights, though the bird was not, as far as he could tell, an eagle. He put the sword in his backpack.

Starbuck also made his way to the scene and inspected Alexi’s corpse. He noticed a small keepsake necklace apparently burned into the unfortunate man’s neck, seemingly without any special power but, perhaps, that of memory, no longer useful to Alexi.

Zhukmihr stopped by as well, and ensured that Alexi’s necklace (after some grisly work) was carefully packed away in his backpack. 

Janus, inspired by some morbid arcane fascination, tried to saw off a part of the monster's dismembered arm and, failing that, took the entire thing back to the wagon, where he stacked it inside atop the piles of silver weapons, lanterns and rations, to some light heckling.

The march to Falcon’s Hollow

Andor patched up Starbuck with some rudimentary bandages and the team managed a quick burial for Alexi beneath a fine oak in the woods beyond the road.

Each of our heroes was promised 500 gold pieces for their service at the end of this journey, so the group decided to carry on and reach Falcon’s Hollow, where they could deliver the silver weapons the town had been promised. They made their way north with the single remaining wagon while smoke from burning trees floated upward behind them.

Payday delayed

Rolling up outside of Falcon’s Hollow after a long and uneventful day of travel, they found a ramshackle logging town with a somewhat dilapidated external wall, perched along the River Foam, with Darkmoon Wood in the distance beyond.

At the town gate they were directed to Thuldrin Kreed, a man known as the “Gavel,” installed by the Lumber Consortium, who was for all intents and purposes the mayor. Meanwhile, Zhukmihr went about his own business, asking for the location of Vamros Harg, the town magistrate. By chance they both worked near each other in the town, so the party entered the gate and walked through town.

At the sight of the beaten-down commonfolk inside, Daeron asked around about the cause of such conditions. A middle-aged woman told him the town was under the yolk, more or less, of the Lumber Consortium, which paid them little in their various jobs as lumberjacks and charged most of it back in room and board. She claimed that the town had fallen on dark times, and that several children had gone missing recently, among which was the Gavel’s only son.

Daeron thanked her and they pressed on to get paid their honest due, only to find that the rather surly Thuldrin Kreed seemed uncomfortable to do business with someone other than his main contact Alexi. The question of payment seemed to confuse him. An estimate of 10,000 gold thrown out by Andor was dismissed by Kreed as preposterous, to which Starbuck rebuked that they could leave with the weapons posthaste, if that was desired. In the end, Kreed was unable to produce the contract and was thus unsure of how much he owed.

Kreed invited the party to stay for the night at an inn called the Sitting Duck while he worked out the details of their payment. On account of some children who had gone missing, including his son, and the werewolf attacks for which the silver weapons were delivered, he said he could certainly use their help if they chose to stick around.

An Epic Review of PyCharm 3 from a Vim User’s Perspective

Code Completion

This review is for the Professional Edition of PyCharm 3. It includes screenshots and sound-free video demos of PyCharm features. I will try to cut straight to the point while offering some tips from my experience. My perspective is that of a professional software developer who has used Vim, Emacs, Sublime Text, PyDev and others. […]

Continue reading...

Porting a Geographic Nearest-Neighbor Python Web Service to Go

I wrote a blog post recently at work that described my experience porting a geographic nearest-neighbor web service from Python to Go. You can read it on the Safari Flow blog. The post covers setting up a dev environment for Go, finding replacement third-party libraries, writing tests, performance profiling and deployment. If you'd rather read […]

Continue reading...

Four Things I Learned about Software Engineering from Programming MUDs as a Teenager

In job interviews I try to casually drop that I learned how to program as a teenager writing C code for MUDs1. My intent is to open a fun discussion into why this was awesome. Programming for MUDs taught me the fundamentals of the craft, so I could probably ramble about it for an hour. […]

Continue reading...

On Starting a Daily Meditation Practice

The single thing that improved my daily life the most in 2013 was starting a daily meditation practice. Specifically, Buddhist meditation based on techniques from the Ānāpānasati Sutta and Satipaṭṭhāna Sutta. In this post I will share why I started, how I did it and some pleasant results. Suffering As I suspect many new parents […]

Continue reading...

Reading List for an Apprentice Web Developer

Here are a few books that I found useful when I was starting out as a web developer. I originally wrote this list for a friend who is wrapping up his Computer Science degree, so the emphasis is on practical rather than academic knowledge. Craft These books touch on a lot of non-technical areas of […]

Continue reading...

Wrap Comments and Text to Column Width in IntelliJ Editors

One of the small annoyances I found after switching to PyCharm recently was that while the editor will reformat code to the chosen column width, it won’t wrap plaintext or comments. Annoying, for Vim and Emacs users! I corrected this by writing my first IntelliJ plugin: Wrap to Column, which is a port of a […]

Continue reading...

Build an In-Memory Proximity Search Web Service with Python, SciPy and Heroku

In this post I’m going to look at a concrete example of building an in-memory proximity (aka, nearest neighbor) search web service using Python, SciPy and Heroku. Later we can speculate on use cases for this approach as opposed to a geo-aware database. Define Our Terms So, let’s define our terms: In-memory: The web service […]

Continue reading...

Revisiting Umberto Eco’s Future of the Book

In 2003 Umberto Eco gave a talk at the opening of the Bibliotheca Alexandrina titled, “Vegetal and mineral memory: The future of books” that is interesting to read again now, nine years later. His goal in the talk was to break apart the fear people had about “the future of books.” He addressed this fear […]

Continue reading...

Using IPython Notebook with Django

IPython has a relatively new featured called the “Notebook,” which improves on the traditional terminal shell in many ways. Notebook launches a web-based shell to an IPython session that has some very, very handy features, like the ability to save, edit and delete “notebooks” of code that are each comprised of organized cells of Python, […]

Continue reading...