Quests allow players to focus on long-term, in-game goals through solo missions or with the members of their party.
Anyone can participate in a quest, no matter their level, but in order to do so, the player must be in a party, even if it is a party of just one person and you are on a solo quest. Players need to obtain a quest scroll to start a quest. Ian the Quest Leader will appear when you read a quest scroll. The player who uses a scrolls and invites their party to join the quest is called the quest owner. A party can only participate in one quest at a time, the only exception being when a HabitRPG-wide quest occurs and users on the entire site are engaged in a battle together.
Some quests can only be started by a player at a certain level, as some scrolls are dropped to players when they reach specific levels. Other quests have prerequisite quests that must be completed prior to the start of the next quest in the questline. However, these restrictions only apply to the person starting the quest, and do not limit who may participate. Lower level players in a party, those who have not yet received the quest a drop, and players who have missed prerequisite quests can still be invited to join a higher-level quest, so long as the quest is started by a party member who is eligible to initiate the quest.
There are two types of quests:
- In collection quests, players are able to collect special drops by completing tasks, which count toward a party-wide total goal.
- In boss battles, party members deal damage to an enemy by completing tasks, and take damage for the uncompleted Dailies of all quest participants, not just their own.
Rewards on completion are not dependent on the size of the party, and every party member who has begun the quest will receive the same rewards no matter the size of their individual contribution. There are many strategies among parties for how best to win quests. Bigger parties may have an easier time completing certain quests, but as the number of players participating in the quest increases, the risk of being damaged by another player's missed Dailies in a boss battle increases as well. Currently, there is no limit to the number of players that can be in a party, but it has been reported that having more than about a dozen players in one party might create browser performance problems.
Obtaining a Quest Scroll[]
Some quest scrolls can be bought from the Market for gems. Others are given to players automatically at certain points, such as reaching a certain level or as has happened in the past, when a world event begins. Once obtained, scrolls of this type can also be repurchased in the Market or from the Seasonal Shop. There is also the Basi-List Quest, given to a player who invites another player to a party, after the second player accepts the invitation. Quest scrolls associated with world events may be available for only a limited time. Once a quest scroll is in a player's inventory, however, it may be activated at any point.
Quest scrolls have icons and are color coded to help you decide what quest to purchase.
- Easy boss = Green, Medium boss = Yellow, Hard boss = Red
- Collection Quest = Blue
- Rage Bar boss = Purple speckles
- Each scroll either has an icon representing the fight or an egg if the reward includes a pet egg
- If a scroll displays a lock icon, you may be able to purchase the scroll, but you will not be able to start the quest; these scrolls have prerequisites that must be met before you may begin.
You may also hover over the scroll to see more information, usually the health and strength of a boss or number of objects to be collected and the rewards for completing the scroll.
Quest scrolls are never given as random drops upon task completion, but there are ways to receive quests without purchasing them from the Seasonal Shop or Market.
- Players receive quest scrolls as they reach certain levels. Currently, scrolls are dropped when a player reaches levels 15, 30, 40, 60, and whenever a player invites someone to their party and the invitation is accepted. If the player is currently a higher level than the one at which a quest scroll becomes free, when the quest all players who have surpassed the requirement are automatically awarded the scroll upon its release.
- HabitRPG checks to see if your current quest is complete, and if so, confers the quest rewards, which in some cases is a quest scroll. Certain multi-part quests (such as the Free Yourself of the Dragon's Influence questline), give all participants the next scroll in the questline as part of your reward.
- As stated above, if a world event has started, you receive any quest scrolls associated with the world event (such as the Dilatory Derby quest).
All equipment quests (quests that give you items that boost your attributes) will be given to all players once for free when they reach a certain level. In contrast, all pet quests (quests that give you eggs) will only be available for purchase with gems, to help support HabitRPG. These pets will not count towards the Beast Master achievement and are considered quest pets.
You may have an unlimited number of quest scrolls in your Inventory. Also, there is no limit on the number of times you can purchase an available quest scroll (see List of Quests table below) once you have reached the eligibility for it. This is especially useful for limited edition quest scrolls because you can buy several while they are still available. Limited edition quest scrolls do not expire.
Back to Top
Starting a Quest[]
The person who initiates the quest is the quest owner, which is signaled by the asterisk (*) that appears next to the player's name in the party member list. There is no special benefit for being the quest owner; the mark is so you know who has the ability to cancel the quest before it starts or to start the quest without waiting for people who aren't accepting the quest in a timely fashion. Only the quest owner has the ability to cancel or start the quest without everyone accepting it.
Beginning a Quest in a Party[]
First, click on the quest scroll in your inventory. Then, select the "Invite party" button in the pop-up. All party members, including those who join the party before the quest starts, will be given the opportunity to accept the quest. To begin the quest, either:
- Wait for all party members to accept the quest; this will automatically start the quest. Or,
- In the Party screen, under Options -> Social, select "Begin" in the quest window when the party is ready to start the quest.
NOTE: Only members who have accepted the quest will be included. Use the "Begin" button option only if some party members do not wish to participate, after all other members have accepted. Once you have clicked "Begin," no more party members will be able to join the quest! Non-participants will not be able to start a quest until the current quest is completed, and can only join if the entire quest is aborted by the quest owner.
Once all of the participants have accepted, or the quest owner has clicked the "Begin" button, the quest will start. If you have signed up for email notifications, you will receive an email when the quest has started, but there is no in-game notification. To find out if it has started, use your browser's refresh button to reload the party page.
Canceling a Quest Before It Begins[]
Next to the "Begin" button, you will see a "Cancel" button. You can use this before the quest starts if you change your mind about wanting the quest to run or if your party asks that a different quest be run. The quest scroll will return to your inventory.
Accidentally Rejecting a Quest Invitation[]
If you have accidentally rejected a quest invitation, there's no way to undo the rejection. You can ask the person who started the quest to cancel or abort it and send out invitations again (canceling or aborting the quest returns the quest scroll back into their inventory for reuse).
Joining a Quest Started by Another Party Member[]
If you receive a quest notification when you didn't start the quest, or you receive an email notifying you that your party is beginning a quest, you can check your party list to see who is the owner. The name of the person who invited the party is marked with an asterisk(*). If you're part of the quest, your name will appear in the list of quest participants when the quest begins, and you should receive an email notifying you the quest has begun.
Quests Abandoned by Quest Owners[]
If the quest owner voluntarily leaves the party while the quest is in the invitation stage, another party member will be automatically designated as the quest owner and will then be able to cancel or start the quest. If cancelled, the quest scroll will remain with to the original quest owner.
If nobody in the party is designated the quest owner, it means the person who invited you on the quest has been removed from the party by the party leader. In that case, any party member will be able to cancel the quest before it starts, should that be necessary (e.g., to prevent the quest remaining in the invitation stage forever if there are some party members who are no longer active and who therefore never accept or reject the invitation). The quest scroll for a cancelled quest will remain with the original quest owner.
Some quests can only be started if a previous quest has been completed — until you have met the prerequisites, these scrolls can be seen with a yellow lock icon.
Solo Questing While Still in Party[]
While still a member of a party, it is possible to complete a solo quest if other party members want to take a break from questing. You can send the quest invitation and as quest owner, you've automatically accepted it. Then click the Begin button before anyone responds to the invitation. Be aware that a new quest can't be started for the party until you have finished your solo quest.
If the solo quest is taking a long time and the party wants to resume questing, they can ask the solo quester to abort the quest.
Quest with only one Participant Prevents Party from Starting New Quest[]
Sometimes one person in a party starts a quest without allowing fellow party members to join. This prevents the rest of the party from starting their own quest. If the quest initiator refuses to abort the quest after polite discussions and if it looks like the quest will take very many days to complete, the party can post a request for assistance by clicking on the Help menu and then selecting "Report a Bug" (even though this is not a bug, it is acceptable to follow these instructions to ask for this kind of help).
Back to Top
Completing a Quest[]
Upon quest completion, each party member who accepted the quest and remained in it until the end will receive all of the quest rewards and an achievement badge noting completion of that quest. If there are other quests in the quest chain, they will be unlocked for all players. Even quest participants who are Resting in the Inn when the quest finishes will receive all quest rewards so long as they joined the quest.
Back to Top
Aborting a Quest[]
The player who started the quest (the quest owner) is able to abort it by navigating to the party screen, scrolling to the bottom of the quest box, and pressing the 'Abort' button. A warning message will appear, asking for confirmation, which must be given before the quest is aborted. The quest scroll will return to the player's inventory and can be used again without additional cost.
If the quest owner voluntarily leaves the party while the quest is running, another party member will be automatically designated as the quest owner and will then be able to abort the quest if desired. If aborted, the quest scroll will be returned to the new quest owner. The original quest owner will not be able to regain the quest scroll; quest owners should keep this in mind before leaving a party while their quest is running.
If the quest owner is removed from the party by the party leader, a new quest owner will not be assigned. Any party member will be able to abort the quest if required (for example, if the remaining quest participants are too few or too low level to be able to complete the quest in a timely fashion). In this situation, the quest scroll for the aborted quest will be returned to the original quest owner.
Back to Top
Quest Types[]
Boss Quests[]
A boss will appear in the party sidebar with HP. Completing To-Dos, Habits, or Dailies will cause damage to the boss, with damage proportional to the task's value, and modified further by the player's Strength. The Burst of Flames and Brutal Smash skills also deal damage to the boss. Players can visit the data display tool to see the damage that will be delivered to a boss.
A boss quest started at the end of the day will still accrue damage to the boss for Dailies accomplished before the quest was started.
Any quest participant not completing a Perfect Day, or in other words, who has missed Dailies, will cause the boss to damage all quest participants. The amount of damage is based on the number and values of the uncompleted Dailies, and on the boss's strength. This damage is even applied to participants who are resting in the Inn or who have already died from earlier damage. Players should be mindful of this potential extra damage, in addition to the normal damage from their own uncompleted Dailies, and may need to more frequently ask for a heal or use a Health Potion. This damage to the party can also be viewed using the data display tool.
Damage to the boss, the party, and the player is meted out when each player's Cron first processes for a new day. However, the damage will not show up in the party logs until the player has synced their party chat page using the sync button that is next to the "send chat" button.
Rage Bosses[]
A rage boss is a special kind of boss for regular quests that does both damage to the party and has a rage bar. Missed Dailies are multiplied by the boss's strength, which raises the rage bar. These bosses will heal themselves when the rage bar fills.
World Bosses[]
A world boss is the boss in a special type of quest where all users of HabitRPG are involved. All users are rewarded upon its completion, even if those who have been resting in the inn or have not used HabitRPG during the entire time of the quest. Damage is done to a world boss in the same way as to a normal quest boss: by completing To-Dos, Habits and Dailies, and by casting Burst of Flames or Brutal Smash. If you choose to Rest in the Inn during the world boss quest, you will deal no damage.As with general quest bosses, a player's effect on a world boss's health and rage is tallied on Cron.
Collection Quests[]
Collection quests entail finding a certain number of specified items through the completion of Dailies, To-Dos, and positive Habits. Any task that might result in a regular drop can also yield a quest item; however, the two drop systems operate independently. As there is no boss to fight, no extra damage is taken from failing to complete Dailies. Unlike boss quests, a collection quest started at the end of the day does not accrue quest progress for tasks accomplished previously.
There are currently no limits on how many quest drops a player can receive on a given day, though higher Perception does increase the number of drops that can be received. Rogues and other players who have obtained a high Perception may excel at collection quests because they have a higher chance of receiving drops.
Even players who have not yet opened up the food, pet, and potion drop system can find quest items for collection quests; there is no minimum level required. However, low level players have a low Perception, and as such, may not find any collection items on a given day.
Players will not get an instant notification when they find a quest item, but the next day (after a player's Cron has run) the party page will have a tally of which items a player has collected. The number of drops received can be viewed on the data display tool.
Back to Top
Pet Quests[]
Pet quests are a type of quest that yield pet eggs as part of the reward. Both collection quests and boss quests can potentially be pet quests. Players who complete a given pet quest once will be able to purchase those pet eggs in the Market.
Most pet quests give 3 pet eggs each time completed as one of the rewards-the exception is Egg Hunt, which rewards 10 egg eggs.
The player can still obtain those pet eggs by completing the quest again without having to purchase eggs from the Market. For example, if you want to hatch all 10 pets from a given quest, you can either complete the quest 4 times to get 12 eggs (a cost of 4 gems x 4, or 16 gems), or complete the quest one time to get 3 eggs and purchase the other 7 eggs (a cost of 4 gems x 1 + 7 eggs x 3, or 25 gems). It is therefore less expensive to complete the quest multiple times to get more eggs, especially if party members each take turns purchasing the scrolls.
Misión (3 huevos cada misión) | Misión Precio |
Total del Misión | Mercado |
Huevo Precio |
Total del Mercado |
Total de Gemas | Total de Huevos |
---|---|---|---|---|---|---|---|
4 (12 huevos) | 4 | 16 | -- | -- | -- | 16 | 12 |
3 (9 huevos) | 4 | 12 | 1 | 3 | 3 | 15 | 10 |
2 (6 huevos) | 4 | 8 | 4 | 3 | 12 | 20 | 10 |
1 (3 huevos) | 4 | 4 | 7 | 3 | 21 | 25 | 10 |
Tip: You can use the two extra eggs you get from doing the quest the fourth time to hatch two of the eggs into mounts if you want to have both the mount and the quest pet.
Back to Top
List of Quests - Types, Availability, and Rewards[]
The Quests tab of the table lists all quests released to date, in their order of their release. You can sort the table by any column.
Quests are available for purchase to players of all levels unless indicated otherwise in the table. Players of any level can participate in a quest that another player has purchased.
Quests listed as "finished" were World Boss events associated with Grand Galas and will not be repeated.
The Rewards tab of the table lists the rewards earned from completing each quest. You also can sort this table by any column.
Quest Name | Scroll | Boss/ Collection |
Pet/Weapon | Availability | Boss HP |
Boss Strength |
Notes | |||
---|---|---|---|---|---|---|---|---|---|---|
Trapper Santa | boss | polar bear (mount) | only during Winter Wonderland | 300 | 1 | Trapper Santa part 1 | ||||
Find the Cub | collection | polar bear cub | only during Winter Wonderland | n/a | n/a | Trapper Santa part 2 | ||||
The Fiery Gryphon | boss | gryphon | permanent | 300 | 1.5 | |||||
Free Yourself of the Dragon's Influence | boss | - | permanent (level 30) |
750 | 1.5 | Vice part 1 | ||||
Find the Lair of the Wyrm | collection | - | permanent (level 35) |
n/a | n/a | Vice part 2 | ||||
Vice Awakens | boss | Stephen Weber's Shaft of the Dragon | permanent (level 40) |
1500 | 3 | Vice part 3 | ||||
The Hedgebeast | boss | hedgehog | permanent | 400 | 1.25 | |||||
The Spirit of Spring | boss | deer | permanent | 1200 | 2.5 | |||||
Egg Hunt | collection | plain egg | only during Spring Fling | n/a | n/a | |||||
The Rat King | boss | rat | permanent | 1200 | 2.5 | |||||
The Call of Octothulu | boss | octopus | permanent | 1200 | 2.5 | |||||
The Dread Drag'on of Dilatory | NA | boss | mantis shrimp (pet) mantis shrimp (mount) |
finished | 5.0M | 1 | World Boss | |||
The Dilatory Derby | boss | seahorse | permanent | 300 | 1.5 | |||||
Dish Disaster! | collection | - | permanent (level 15) |
n/a | n/a | Attack of the Mundane part 1 | ||||
The SnackLess Monster | boss | - | permanent (level 15) |
300 | 1 | Attack of the Mundane part 2 | ||||
The Laundromancer | boss | Nameless Helm | permanent (level 15) |
800 | 1.5 | Attack of the Mundane part 3 | ||||
Help! Harpy! | boss | parrot | permanent | 600 | 1.5 | |||||
Rooster Rampage | boss | rooster | permanent | 300 | 1.5 | |||||
The Icy Arachnid | boss | spider | permanent | 400 | 1.5 | |||||
The Moonstone Chain | collection | - | permanent (level 60) |
n/a | n/a | The Moonstone Chain part 1 | ||||
Recidivate the Necromancer | boss | - | permanent (level 65) |
1500 | 3 | The Moonstone Chain part 2 | ||||
Recidivate Transformed | boss | Jean Chalard's Noble Tunic | permanent (level 70) |
2000 | 3.5 | The Moonstone Chain part 3 | ||||
A Stern Talking-To | collection | - | permanent (level 40) |
n/a | n/a | The Golden Knight part 1 | ||||
Gold Knight | boss | - | permanent (level 45) |
1000 | 3 | The Golden Knight part 2 | ||||
The Iron Knight | boss | Mustaine's Milestone Mashing Morningstar | permanent (level 50) |
1700 | 3.5 | The Golden Knight part 3 | ||||
The Basi-List | boss | - | permanent (invite to party) | 100 | 0.5 | |||||
The Night-Owl | boss | owl | permanent | 500 | 1.5 | |||||
The Fowl Frost | boss | penguin | permanent | 400 | 1.5 | |||||
The Abominable Stressbeast of the Stoïkalm Steppes | NA | boss | mammoth (pet) mammoth (mount) |
finished | 2.8M | 1 | World Boss | |||
King of the Dinosaurs | boss | tyrannosaur | permanent | 800 | 2 | |||||
The Dinosaur Unearthed | boss | tyrannosaur | permanent | 500(rage:50) | 2 | |||||
Escape the Cave Creature | boss | rock | permanent | 400 | 1.5 | |||||
The Killer Bunny | boss | bunny | permanent | 300 | 1.5 | |||||
The Jelly Regent | boss | marshmallow slime |
permanent | 400 | 1.5 | |||||
The Thunder Ram | boss | sheep | permanent | 300 | 1.5 | |||||
The Kraken of Inkomplete | boss | cuttlefish | permanent | 800 | 2 | |||||
These quests are permanently available in the Market with the exception of seasonal quests, which are only available during specific annual events. Rewards for world bosses are not shown in this table.
Quest Name | Boss/ Collection |
Weapon/ Potions |
Scroll | Pet | Eggs | XP | Gold |
---|---|---|---|---|---|---|---|
Trapper Santa (seasonal) | boss | - | - | polar bear (mount) | - | 100 | 20 |
Find the Cub (seasonal) | collection | - | - | polar bear cub | - | 100 | 20 |
The Fiery Gryphon | boss | - | - | gryphon | 3 | 125 | 25 |
Free Yourself of the Dragon's Influence | boss | - | Vice part 2 | - | - | 100 | 20 |
Find the Lair of the Wyrm | collection | - | Vice part 3 | - | - | 75 | 20 |
Vice Awakens | boss | Stephen Weber's Shaft of the Dragon 2 Shade hatching potions |
- | dragon | 2 | 1000 | 100 |
The Hedgebeast | boss | - | - | hedgehog | 3 | 125 | 30 |
The Spirit of Spring | boss | - | - | deer | 3 | 800 | 80 |
Egg Hunt (seasonal) | collection | - | - | plain egg | 10 | - | - |
The Rat King | boss | - | - | rat | 3 | 800 | 80 |
The Call of Octothulu | boss | - | - | octopus | 3 | 800 | 80 |
The Dilatory Derby | boss | - | - | seahorse | 3 | 125 | 25 |
Dish Disaster! | collection | - | Mundane part 2 | - | - | 50 | 7 |
The SnackLess Monster | boss | - | Mundane part 3 | - | - | 100 | 20 |
The Laundromancer | boss | Nameless Helm 2 Basic hatching potions |
- | - | - | 125 | 25 |
Help! Harpy! | boss | - | - | parrot | 3 | 350 | 43 |
Rooster Rampage | boss | - | - | rooster | 3 | 125 | 25 |
The Icy Arachnid | boss | - | - | spider | 3 | 200 | 31 |
The Moonstone Chain | collection | - | The Moonstone Chain part 2 | - | - | 100 | 50 |
Recidivate the Necromancer | boss | - | The Moonstone Chain part 3 | - | - | 1000 | 500 |
Recidivate Transformed | boss | Jean Chalard's Noble Tunic 5 rotten meat 3 Zombie hatching potions |
- | - | - | 1500 | 900 |
A Stern Talking-To | collection | - | The Golden Knight part 2 | - | - | 120 | 15 |
Gold Knight | boss | - | The Golden Knight part 3 | - | - | 750 | 75 |
The Iron Knight | boss | Mustaine's Milestone Mashing Morningstar 2 Golden hatching potions |
- | - | - | 1500 | 900 |
The Basi-List | boss | - | - | - | - | 42 | 8 |
The Night-Owl | boss | - | - | owl | 3 | 275 | 37 |
The Fowl Frost | boss | - | - | penguin | 3 | 200 | 31 |
King of the Dinosaurs | boss | - | - | tyrannosaur | 3 | 500 | 55 |
The Dinosaur Unearthed | boss | - | - | tyrannosaur | 3 | 500 | 55 |
Escape the Cave Creature | boss | - | - | rock | 3 | 200 | 31 |
The Killer Bunny | boss | - | - | bunny | 3 | 125 | 25 |
The Jelly Regent | boss | - | - | marshmallow slime |
3 | 200 | 31 |
The Thunder Ram | boss | - | - | sheep | 3 | 125 | 25 |
The Kraken of Inkomplete | boss | - | - | cuttlefish | 3 | 500 | 55 |
Back to Top of Quest List
Adding a Quest[]
Quest ideas can be proposed on the HabitRPG Quests Trello board, and new quest lines can be discussed in the Camp. Information on how to create images for quests (e.g. boss art) can be found on the Guidance for Artisans page. You can also contribute by writing a quest on the HabitRPG Quests Trello board.
Back to Top
Known Bugs[]
Rewards Not Triggered after Collection Quest Complete[]
There have been a few reported instances where the rewards were not triggered after collection quest completion. If that has happened to you, please comment on that issue and include your unique User ID (UUID).
Party Member Did Not Damage Boss[]
If you think you should have damaged your quest boss or should have found items for a collection quest, but you don't see any messages in party chat about your quest progress:
Solutions:
- Be aware that quest progress is not applied until the day after you have ticked off some To-Dos and Dailies. So if the quest started today, you will see quest progress tomorrow, and this is not a bug. You do not need to report anything here.
- If your quest started yesterday or earlier but you don't see messages in party chat about your quest progress, click the "Fetch Recent Messages" button. If you now see a message about your own quest progress, then everything is working correctly and you can stop reading here.
- If you still don't see your quest progress message, look at the quest box on the party page. Does your name appear in the list of participants? If it does not, then you are not participating in the quest. This could be because you joined the party after the quest started OR because the quest owner started the quest before you accepted the invitation. If the quest has not progressed very far, the quest owner might want to abort the quest and then restart it (the quest scroll will reappear in their Inventory for re-use). You do not need to report this situation here and there is nothing that admins can do to help.
- If none of those points are applicable to you, please add a comment to this issue with your unique user ID (UUID), which you can find on your Settings -> API page. If others of your party members have the same problem, please tell us that too, but you don't need to give us their UUIDs (we can find them in your quest data in the database). We will then be able to fix the problem for you.
If you aren't sure about any of this, ask a question in the Newbies Guild (Help -> Ask a Question) and we'll give you advice there.
Quest Damage Ran Twice[]
There have been a few reports of quest damage occurring twice. If this happens, please comment and post a screenshot of the issue.
Solutions: You and your party members can recover from the additional damage received by going to Settings -> Site -> Fix Character Values to adjust your health, and your level, gold, and experience if necessary.
Losing Scrolls or Having the Scroll Counter Showing the Wrong Number[]
Leave a message on the Issue #2592 thread with your Unique User ID (UUID) and your party's Group ID which you can find on the party page. Some additional info, proof, or assistance from your side may be required so it will definitely be solved for you, but it may just take some time.
Quest Owner Leaves Party but Quest Remains[]
Requires assistance from an admin. Leave a message on the Issue #4753 thread with your Unique User ID (UUID) and your party's Group ID which you can find on the party page.
Al obtener puntos extra de experiencia no se sube de nivel[]
Cuando finaliza una misión y obtienes suficientes puntos de experiencia para subir de nivel, o cuando el Armario Encantado te proporciona suficientes puntos para subir de nivel, la actualización del nivel no se produce.
Soluciones: Desmarca una Pendiente, un Hábito o una Diaria, y aumentará tu nivel. No perderás ninguno de tus puntos extras de experiencia.
Back to Top
External Links[]
Information for Developers
The quest display code is split into multiple files within the folder website/views/options/social/quests
. The files are connected through the main file, index.jade
, which creates a mixin named boss
. This mixin is used to add quest information to party pages (or in the tavern, if there is a world boss).
Definitions for all quests:
Current version of file: common/script/content.coffee
Older version with link to starting line: June 2015
Quest modals (AKA pop-ups):
Current version of file: website/views/shared/modals/quests.jade
Older version with link to starting line: June 2015
This file contains all of the quest modals. Specifically, the quest completion, information (quest is selected from inventory), buy (quest is selected from store), and invitation modals.
User model quest status:
Current version of file: website/src/models/user.js
Older version with link to starting line: June 2015
These values are initially populated when a quest begins, and reset when a quest is completed or aborted (not completely when cancelled; see questCancel
below). The variables within the progress
array track how much progress (positive or negative) on a quest has been made since last Cron. The values are applied on Cron, and then reset.
Group model quest status:
Current version of file: website/src/models/group.js
Older version with link to starting line: June 2015
These values are initially set when a quest invitation is sent, and reset when a quest is completed, aborted, or cancelled. The status of each user in the members
array is set to true
, false
, or undefined
, depending on whether they have accepted, rejected, or not responded to a quest invitation.
Quest accept, reject, start, cancel, and abort functions:
Current version of file: website/src/controllers/groups.js
Older version with link to starting line: June 2015
There are five quest functions in this file: questAccept, questReject, questStart, questCancel,
and questAbort
.
questAccept
is run when a quest invitation is sent to a party, and every time a user accepts a quest invitation; these situations result in different code being run. Which case is occurring (i.e., which section of code to run) is determined by checking whether a key is passed in. A key is only passed in when a quest invitation is sent, so if one is present, the invitation code is run, and if one isn't present, the user code is run. If an invitation is being sent, all users in the party (excluding the quest owner) have their Boolean value in the members
array set to undefined
, to indicate that their status is "pending". If a user is accepting a quest, their value in the members
array is set to true
. Both pieces of code end with a call to questStart
.
questAccept
is also run when a quest owner presses the "Begin" button. This causes a variable named force
which is set to true
to be passed to questAccept
. This value will be used when questStart
is called.
questReject
is run when a user rejects a quest invitation. It sets the user's value in the party's members
array to false
, and ends with a call to questStart
.
questStart
checks if it is time to begin the quest, and if it is, starts the quest. It checks two things: 1) if force
is true
; 2) if all members have accepted or rejected the quest. If either of these are true, the quest will begin.
questCancel
is run when a quest owner cancels a quest before it begins. This clears the party's quest progress, but not the user's quest progress. This is because this quest progress will be applied to the next quest that is started.
questAbort
is run when a quest owner aborts a quest after it has begun. This clears the group and user quest progress, and returns the quest scroll to its original owner.