< * DungeonMasterAdvice, RoleplayingPhilosophy, RoleplayingPublishing, [[Old School]] -- various sub categories of this blog
< * RoleplayingSocialContract -- things you should agree with if you want to join one of the campaigns
< * AdventureWishlist, RoleplayingBookshelf, RoleplayingReviews -- organizing the role-playing game related books I have
> * [[Old School]] -- a sub categories of this blog
> * [[How I Roll]] -- what sort of games I run
The party had just finished The Eternal Boundary and had found a treasure map that would lead them into The Gray Waste. I prepared a very linear adventure that you can see on the on the right. I decided that the map represented an incomplete list of dangers to be overcome:
I also had a number of NPCs in mind:
This was the first challenge: figure out whom to trust and discover through questions that Raud would lead them to the wrong layer on Hades since Oinos ≠ Niflheim. This was also the opportunity for them to learn about the apathy of Hades. One player expertly decided to spend 100gp on books with jokes, fart machines and other ludicrous things to drive away apathy and despair.
They don’t contact Njal but they do talk to Raud and end up going with Lissandra. They made such a good impression on her, in fact, that she decides to tell them about a merchant called Kherion Mallibrun (described in the section about Death of Innocence in the Planes of Conflic box). In return, he wants them to protect him from Hekate’s trolls.
This was the second challenge: take along a guide and avoid fighting rock pythons and giant squirrels on the branches of Yggdrasil.
The dragon is easy: the third challenge is simply to be quiet. The cleric is prepared and casts silence. No problem.
The woods and trolls present the fourth challenge: unbeknownst to the players, I had decided that the forest houses both wolves and trolls. Even though the party was silenced, the wolves had picked up their scent and the trolls were following the wolves. One player who plays a character that can fly decided to take a listen and fly overhead. He soon discovers the wolves and using the fillings of a little rocket full of itching powder they disable the wolves’ scent ability and the flying character distracts and enrages the trolls until they break off the chase.
In the village, they see that the merchant is selling colorful textiles and the fifth challenge is finding a guide to the island. They discover that there is a hunter of nightmares who will lead them in exchange for the funny articles one of the characters had bought. This part was all improvised but it worked well.
He warns them of the giant, flightless birds. Luckily they are slow. The party buys horses for the three characters in plate armor and can thus outrun the the sixth challenge, the Diakka birds.
I had thought that the nightmares would be the next challenge but at the table I suddenly felt strange using the nightmares as predators. As I had seen one of the players get really excited about the prospect of catching and taming a nightmare, I decided that the seventh challenge would be the temptation of catching a nightmare. The party would have to start a fight. And they didn’t…
The eight challenge had not been listed on the “treasure map”: flying yeth hounds. The party moved away from their baying (it’s effect only works within 100 ft.) and decided to avoid the dogs. It worked.
At the edge of the sea of fog, they left their guide who, when asked, said that all they had to do was ignore the larva. And they did. No talking, no eye contact, no listening. Again, the party used silence to bypass the ninth challenge. It worked.
Finally, they reached the witch, the tenth challenge. I decided to use witches from the Shark Den section of the Caverns of Slime, Vialashta and Kurmatesha, the four lesser witches, the tengu horn, and my own treasure I had rolled up. As you can see, I had prepared a different night hag in my notes (including a 65% magic resistance)… Oh well. There was a lot of talking, bluffing and haggling involved, a short discussion on the merits of both Odin and Hekate, but in the end, the orc witch has charmed the talking character and disappeared into the tent and the fight was on.
The party consisted of a cleric 5, a fighter 4, an elf 2, and some henchmen: two giant apes, a cleric 4, a fighter 2, and a magic-user 1.
Kurmatesha is reduced to less than 10 hit-points in two rounds. She, in turn, blows the horn and summons the tengus, then polymorphs into a shadow wolf. The party then kills her and have a quick chat with the tengu. They want the horn (and their freedom), but one character is close enough to the horn to blow it again, at which point I decide that the tengu are all dispelled.
The second half of the battle is a running battle as the witches are standing under the hanging tree, cursing all that approach. With a desperate rush, a character delivers the arrow that has silence cast on it to the witches. The witches start releasing ghouls but they are being turned as fast as they are being released. Finally, when the crow witch Vialashta is finally held using magic, the remaining lesser witches flee into the sea of fog.
The witch tells them that the hanging tree is guarding the treasure and since they stocked up on oil and hadn’t used any of it, I decided that burning a 15 HD tree required 15 flasks of oil—and having bought 20 flasks of oil without having to use them against the trolls, that was no problem at all…
Recently I left a comment on Philip Watson's thread on Google+ where he wondered whether players should know when their thief failed to hide. I said:
Consequences happen right after the result of the die roll is known. As a referee, I have have no “information advantage” and thus the question of unfairness doesn’t come up.
I was reminded of Courtney Campbell’s blog post On Skill Deconstruction: Why Roll for Resolution? He lists five reasons for rolling dice.
I’m trying to have thieves succeed automatically whenever possible. I’m going to opt for dice rolling when the conditions listed above are true. If the dungeon has wandering monsters, each failed roll to open a door or unlock a chest means one check for wandering monsters. If there are no monsters, we don’t need to know how long the thief takes to unlock the chest. It will succeed eventually.
I just posted my nominations for the One Page Dungeon Contest 2013. I also liked the following entries.
I saw Roger the GS’ recommendations the other day. What about your favorites?
I’ve finished reading the submissions to the One Page Dungeon Contest 2013. As always, an interesting mix of styles. Less tombs than in previous years. The ever popular “get into the dungeon and trigger a trap” is there. Bandits, undead, but no pirates! This year’s popular rare monster must have been the gibbernig mouther. It showed up in three submissions.
The One Page Dungeon Contest is just so damn useful it amazes me every year.
This topic ties together two topics that probably don’t see too much overlap.
The problem: the party of characters my players run is huge. Even if there are usually only around ten characters that are part of a single session, there are more than thirty primary and secondary characters on the status page. Given the wiki table for the status page, how can I quickly add up the correct XP and gold values? Any XP gained is shared equally amongst the characters that took part in the session but any gold gained is distributed according to each characters share. Primary characters get a full share, secondary characters get a third of a share.
I used Emacs widget mode to create a page like this:
XP total: 805 Gold total: 7191 [X] Schalk [ ] Uluf [ ] Witschik [X] Schachtmann [ ] Sirius [X] Logard [X] Arnd [X] Tinaya [ ] Pyrula [ ] Pijo [ ] Garo [X] Zeta [ ] Pipo [X] Fusstritt [ ] Thor [ ] Jack [ ] Gloria [ ] Hermann [ ] Urs [ ] Alpha [ ] Beta [ ] Gamma [ ] Boden [ ] Basel [ ] Bern [X] Nuschka [ ] Moranor [ ] Axirios Hectaxius [Go!]
And here’s the code to do it:
(defconst fünf-winde-regexp "^\\(|\\[\\[\\(.*?\\)\\]\\][ \t]*|[ \t]*\\(1\\|1/3\\)[ \t]*\\)|\\([ \t]*[0-9]+[ \t]*\\)|\\([ \t]*[0-9]+[ \t]*\\)" "Regular expression to parse the Status page. \(let ((str (match-string 1)) (name (match-string 2)) (share (match-string 3)) (xp (match-string 4)) (gold (match-string 5))) ...\)") (defvar fünf-winde-buf nil "Source buffer.") (defvar fünf-winde-xp nil "XP share.") (defvar fünf-winde-gold nil "Gold share.") (defvar fünf-winde-party nil "Charakters in the party.") (defun fünf-winde-xp-and-gold () "Hand out Gold and XP." (interactive) (let ((buf (current-buffer)) (names)) (save-excursion (goto-char (point-min)) (while (re-search-forward fünf-winde-regexp nil t) (setq names (cons (match-string 2) names)))) (switch-to-buffer "*Fünf Winde*") (kill-all-local-variables) (set (make-local-variable 'fünf-winde-buf) buf) (make-local-variable 'fünf-winde-xp) (make-local-variable 'fünf-winde-gold) (make-local-variable 'fünf-winde-party) (let ((inhibit-read-only t)) (erase-buffer)) (remove-overlays) (setq fünf-winde-xp (widget-create 'integer :size 13 :format "XP total: %v\n" 0)) (setq fünf-winde-gold (widget-create 'integer :size 13 :format "Gold total: %v\n" 0)) (setq fünf-winde-party (apply 'widget-create 'checklist (mapcar (lambda (name) `(item ,name)) (nreverse names)))) (widget-insert "\n") (widget-create 'push-button :notify (lambda (&rest ignore) (fünf-winde-process fünf-winde-buf (widget-value fünf-winde-xp) (widget-value fünf-winde-gold) (widget-value fünf-winde-party))) "Go!") (widget-insert "\n") (use-local-map widget-keymap) (local-set-key (kbd "q") 'bury-buffer) (local-set-key (kbd "SPC") 'widget-button-press) (local-set-key (kbd "<left>") 'widget-backward) (local-set-key (kbd "<up>") 'widget-backward) (local-set-key (kbd "<right>") 'widget-forward) (local-set-key (kbd "<down>") 'widget-forward) (widget-setup) (goto-char (point-min)) (widget-forward 1))) (defun fünf-winde-process (buf total-xp total-gold party) (message "(fünf-winde-process (get-buffer \"%s\") %d %d '%S)" buf total-xp total-gold party) (switch-to-buffer buf) (save-excursion (let ((xp-shares 0) (xp-share nil) (gold-shares 0) (gold-share nil)) (goto-char (point-min)) (while (re-search-forward fünf-winde-regexp nil t) (let ((name (match-string 2)) (share (match-string 3))) (when (member name party) (setq gold-shares (+ gold-shares (cond ((string= share "1/2") 0.5) ((string= share "1/3") (/ 1.0 3)) (t (string-to-number share)))) xp-shares (1+ xp-shares))))) (setq gold-share (/ total-gold gold-shares) xp-share (/ total-xp xp-shares)) (goto-char (point-min)) (while (re-search-forward fünf-winde-regexp nil t) (let ((str (match-string 1)) (name (match-string 2)) (share (match-string 3)) (xp (match-string 4)) (gold (match-string 5))) (when (member name party) (setq gold (format (concat "%9d") (+ (string-to-number gold) (* gold-share (cond ((string= share "1/2") 0.5) ((string= share "1/3") (/ 1.0 3)) (t (string-to-number share)))))) xp (format (concat "%9d") (+ (string-to-number xp) xp-share))) (replace-match (concat str "|" xp "|" gold))))))))
I’m not sure I’m spending my time wisely, but there you go. I used to have a simpler piece of code that helped me distribute XP and gold separately. The drawback was that it would ask me for every person in the table “was this character in the party? (y/n)” and that’s a lot of yes and no replies if you go through the list twice.
It’s also a stark reminder that simpler old rules doesn’t automatically mean less work for the referee. With D&D 3.5, I had a spreadsheet to compute the XP gained based on challenge rating and character level. It wasn’t something to do quickly without a book in front of me. Now the complexity of the task has been reduced, but the number of characters has exploded to compensate!
The One Page Dungeon Contest 2013 is now officially closed. No more late submissions. This year I found two submissions in my spam folder. If you can’t find your submission on the contest page, let me know. This year I also got four late submissions, which is about average, I’d say. I asked the other judges and we decided to accept the ones I received. I have to draw the line somewhere, though… So this is it. Closed.
Here’s how to get all the files:
|Number of submissions||112||64||71||107||72|
As I was listening to the episode on Empedocles on the History of Philosophy “without any gaps” podcast, my thoughts turned to cosmology and D&D. Basically, there is a big cycle between the rule of Love, where all the elements mingle and everything is a single perfect sphere, and Strife, where all the elements separate, fire over here, water over there, and so on.
Implementing this in fantasy role-playing games we need to change some of the Great Wheel cosmology of Planescape. The inner planes are now the outer planes: The four elements are the chaotic forces pulling us in different directions. All elemental creatures must be very chaotic and enemies of life. At the center, where all elements meet, there is but a humongous sphere of gray goo. I guess all the slimes, puddings and oozes must be creatures of
law Love. They bring all the elements together and none better than the gray ooze. Given all that, the world we know must necessarily be between the elements and the spherical goo, ie. on the spherical surface.
What about dungeons? What about the “mythic underworld”? I think we have various options:
In either case, monsters are drawn down to the center of things just as we are. The traps can be set by our competitors down there, or by the gray goo defending itself against unworthy plunderers.
I think we need one final idea to make it all work: How to explain the heavens and the moon and the stars if “up above” we expect to see the four elements?
Food for thought, in any case.
I like how the podcast provides two interesting links:
The second link uses “font-family:comic sans ms, verdana, arial, sans-serif”. Comic Sans. You have been warned.
With Tenkar’s Swords & Wizardry Appreciation Day came a plethora of blogs I had never heard of. I’ve been adding new blogs furiously to the Old School RPG Planet. (A planet is a feed aggregator—it shows an extract of all the various blogs I added, like a public blog roll. This particular planet is controlled by a wiki page, so anybody can submit new blogs.)
If you’re looking for new blogs to add, take a look. Perhaps you’ll find a new blog you like? I know that some people from the “early days” said that they felt the Old School Renaissance was shrinking. My thinking at the time was that this is now what’s happening. What is happening is that some people drop out, stop blogging. If you don’t add the newcomers, those who start blogging, your impression will necessarily be that the OSR is shrinking. Not so! Look at the number of blogs that participated.
If you already follow the Old School RPG Planet, please let me know if I added some blogs by mistake. I think I checked each and every new feed I added. If a feed seemed mostly about video games, or anime, or miniatures, I didn’t add it. Most of the blogs that were listed on the Swords & Wizardry Appreciation Day post seemed to be very appropriate! Still, one never knows.
Let me know if you spot anything else that’s fishy.
And I'm only half way through!
In 2006, Greywulf was a user of Oddmuse, a piece of software I was maintaining. It’s still used to run this blog/wiki. Greywulf kept talking about D&D and eventually I started reading EN World. There, I discovered Greywulf had a huge thread going. He proposed a minimal variant to D&D 3.5 and called it M20 (original files). I loved it and ended up starting a campaign using it. (It later converted to D&D 3.5.)
In 2008, I came across M74 and discovered the “old school renaissance”. I learned about OD&D and its use of a d6 for hit-dice and weapon damage. I was intrigued and wrote M20 Hard Core. I also wrote a little random character creator for my rules variant.
Some blog posts from back then:
(You can get the source files from the Swords & Wizardry download page.)
I was very impressed by Ruins & Ronin. If you check out the Sword+1 blog, you’ll find lots of R&R character classes for download in the sidebar. It really was an eye opener for me. Anything can be turned into a class! This is Do It Yourself D&D!
These days, I still play Labyrinth Lord. It was my first retro-clone. It didn’t have weird elves. I ended up liking race-as-class. As you can see from the list above, however, OD&D and Swords & Wizardry have been an important part of the journey. And I absolutely loved the Peter Mullen covers!
Today is Swords & Wizardry Appreciation Day Blogfest! Follow the link and find a list of more than 100 other blogs writing about S&W.
I like weird saving throws. In my house rules, one is called “dragon breath, explosions” and another is called “rays, wands”—a bit of implied setting for my players.
For monsters, on the other hand, I like to have just a single save. I use the Swords & Wizardry method: 19 - HD, plus or minus 2 for magic susceptibility or resistance, rarely a minus 4 for even more resistance.