Quest design

Use of the journal

From the technical point of view, a quest is a sequence of journal entries. Every quest has an identifier (like `MQ_Intro``) and a human-readable name (like “Meet the king”).

Quests also have stages with unique numerical identifiers.

Every quest must have clear starting and finishing points

The second part is easy to explain: every quest must have a stage with the “finishes quest” checkbox checked. When the player reaches that stage, the quest disappears from the list of active quests. If there is no such stage, that quest will remain “active” indefinitely, even though there’s nothing more the player can do there. If there are many such unfinishable quests, the journal will be cluttered and hard to navigate.

The first part is a bit more complex. If a quest has stages 10, 20, and 30, then executing Journal My_Quest 20 when a player doesn’t have a journal entry for the stage 10 will start the quest from the middle.

It can sometimes be fine, but the more stages your quest has, the worse it gets. If it’s a misc quest with just two stages (“Billy asked me to bring him 99 bottles of beer” and “Billy rewarded me for bringing him 99 bottles of beer”), then it’s not a big deal.

But consider a quest about a father whose daughter is sick. He tells you about it (stage 10) and suggests that you talk to a witch. The witch tells you that she needs larch leaves, pine flowers, and fern seeds to make a potion (stage 20). Now suppose there’s a dialog entry that checks for those items in your inventory, but doesn’t check if you have stage 20 in your journal. In that case if you happen to talk to that witch with those items in your inventory by accident, she will thank you for bringing them wto her and set quest stage 30 in your journal. Now you have a journal entry like “The witch thanked me for bringing her ingredients and told me to come tomorrow to collect the potion.”. What potion? What’s in it for me? What will I do with it?

To prevent such situations, make sure that dialog entries for any quest stage by the first have an appropriate quest stage condition such as Journal My_Quest >= 10.

The journal should provide enough information to continue the quest

Suppose you play a game, start a quest, then leave for a vacation and return to it a week later. What will you do to remember what you were doing and what you needed to do next? Open the journal, of course.

To be useful for that purpose, the journal should actually provide enough information. Consider these journal entries:

It’s not necessary to include all information in every entry, if it was already mentioned in earlier entries. But the sequence of journal entries for a quest should include all information relevant for that quest, such as:

Every quest stage (except the last one, obviously) should include clear directions. If the goal of the quest is to make the player search for something completely on their own, then it should be made clear (for example, “Billy told me that he lost his sword, but he has no idea where.”). If an NPC tells the player to do anything specific, then it should be clearly recorded in the journal (“Billy told me that he lost his sword somewhere in Everytown. He suggests that I ask people in case anyone could have seen it.”).

Quest writing guidelines

Quests of the “bring me twenty bear asses” type is an unavoidable staple of RPGs, whether we want it or not. However, good writing can make them an organic part of the gameplay and help immersion, while bad writing can make them look like annoying filler.

Motivation

If you are making a straight fetch-an-item quest without any plot twists or custom scripting, it’s important to tell a story rather than just create dialog entries. It can be a very simple story, like “a superior sends a new recruit to do menial work”, but there should be a story.

At the very least, the motivation of the customer should be believable. “A veterinary proctologist wants twenty bear asses for surgery practice” is much better than “just bring me the asses”.

(Sending the player to do menial or even absurd tasks can be used for telling the player something about quest givers or their organizations: hazing rituals, power abuse… but that should also be shown in the accompanying dialog.)

Explanation

The other thing that makes “go to $place and fetch $item” quests feel contrived is lack of an explanation as to how the item ended up there.

Believable explanation can improve the quest quite a bit:

Replacability

Unique quest target items should be avoided. If a quest says “bring me a shiny metal ass of a robot”, then any shiny metal ass should be suitable, no matter where it came from.

Exception: unique item used as a proof that its owner is dead. This also opens up a way for players to solve the quest in an unintened way, e.g. by stealing the item or convincing the target to give it to them.

Locality

Characters involved in a quest shouldn’t be geographically distant. If the player walks into the fighters guild of London and is told to talk to a customer in Cairo for their new contract, it’s patent nonsense.

Quest targets can be remote, but quest givers and “beneficiaries” should be in the same region, unless there’s a really good reason they cannot be.

Early quests should be as local as possible.

Indirect and unexpected rewards

A fetch-an-item quest can be an annoying filler, but it can also be an effective device for taking players to places they might have never discovered otherwise.

In the early stages, simply taking the player to a new town or rewarding them with a useful item in exchange can be a sufficient reward to offset the tedium of item fetching quests.

In the later stages, sending the player to remote locations for an item should mostly use the item as an excuse, and the real reward should be the good loot in the item’s location or even good scenery or interesting landmarks.

Urgency should be used sparingly

Since the world doesn’t auto-level with the player (we all likely agree that it should not auto-level TES4/5-style), it should be ok for the player to leave a quest for later if they find it too hard to do at their current level.

Timed quests should only be given after checking that the player actually has the level/skill to do that right now.