Dev:Quest Log
This page lists a number of quest variables and their application. The terms used below are:
- ServerVar - These variables are stored alongside the player characters, and are treated as containers for various CommonVars.
- CommonVar - These are used directly within the scripts, and are utilized differently by each quest as needed. Some may be progress counters, some may be bitmasks, etc.
CommonVars can be extracted from ServerVars using bitmasking/bitshifting to access certain bytes or nybbles.
ServerVar and CommonVar Layouts
Here are the currently recorded CommonVar and how they map to the containing ServerVar. Empty areas are not necessarily unused as some bits might be used through the persistent variable directly (if the variable is below above) or may be undiscovered.
| ServerVar | CommonVar Bitmasks | |||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| STARTAREA | QL_BEGIN (4) | QL_VALON (4) | (4) | QL_MORGAN (4) | QL_ZEGAS (4) | (12) | ||||||||||||||||||||||||||
| QUEST_SouthTulimshar | QL_SOUP (4) | QL_SARAH (2) | (2) | QL_VINCENT (2) | (2) | QL_SANDRA (2) | (2) | QL_MINEALL (8) | QL_FIERI (4) | (4) | ||||||||||||||||||||||
| QUEST_NorthTulimshar | QL_HIDENSEEK (8) | QL_IMEC (2) | QL_BANU (2) | QL_ANWAR (4) | (4) | QL_KYLIAN (4) | QL_TERRANITE_ARMOR (4) | (4) | ||||||||||||||||||||||||
| QUEST_Nivalis_state | QL_BAKTAR (8) | (8) | QL_WELL (4) | QL_CINDY (4) | (8) | |||||||||||||||||||||||||||
| QUEST_BlueSage | (12) | QL_BSAGE_INVESTIGATE (4) | (16) | |||||||||||||||||||||||||||||
| QUEST_Hurnscald | QL_BANDIT_BOUNTY (4) | QL_SCYTHE (4) | (4) | QL_INSPECTOR (4) | QL_CELESTIA (8) | (8) | ||||||||||||||||||||||||||
| TERRAC | QL_BEHEADER_TERRAC (16) | (16) | ||||||||||||||||||||||||||||||
| FLAGS | (17) | QL_BEHEADER_COMPLETE (1) | (14) | |||||||||||||||||||||||||||||
| QUEST_WG_state | QL_FURQUEST (8) | QL_SILK_PANTS (4) | (20) | |||||||||||||||||||||||||||||
| QUEST_Forestbow_state | QL_FOREST_BOW (4) | QL_WOODEN_SHIELD (4) | (24) | |||||||||||||||||||||||||||||
| QUEST_Katze (merge pending) | QL_CAT_EARS (4) | (unnamed, Katze's hiss) (4) | (24) | |||||||||||||||||||||||||||||
List of Quests in the Quest Log by ID
This list is an attempt to collect together all known quests, so they can be updated and/or maintained, but many quests are still missing from the quest log. Some of the names and indexes (if present) are tentative, but should reflect quest-log.txt found within serverdata.
| ID | Variable | Name | NPCs | Description |
|---|---|---|---|---|
| 1 | QL_BEGIN | Tutorial | Sorfina, Tanisha | Basic introduction to movement and combat. This variable is also used by Hasan's quest (pending some work) |
| 2 | QL_VALON | By Order of the Council | Valon | A few basic monster drop fetch quests |
| 3 | QL_MORGAN | Unnamed | Morgan | Teaches the basics of magic (Migration to quest log is pending an MR) |
| 4 | QL_ZEGAS | Buggy | Zegas | Tasks you with exterminating maggots in a warehouse |
| 5 | QL_VINCENT | The Adventures of Action Bug | Vincent | A fetch quest (Stored in the server variable `QUEST_SouthTulimshar`, despite being located in Candor) |
| 6 | QL_HIDENSEEK | Hide and Seek | Ayasha | A search quest, consisting of multiple NPCs (Stored in the server variable `QUEST_NorthTulimshar`, despite being located in Candor) |
| 7 | QL_WELL | Lassie in the Making / Well That Was Easy | Miler | Down the well |
| 8 | QL_CINDY | A Mother's Fear | Angela | Locked to level 70+ (Referenced by `milly.txt`) |
| 9 | QL_BAKTAR | Warm Nostalgia | Baktar | A fetch quest for items from Tulimshar |
| 10 | QL_BSAGE_INVESTIGATE | Blue Sage | Peetu | Large quest with many references; has its own dedicated server variable `QUEST_BlueSage` |
| 11 | QL_SOUP | Soup / Slime | Bernard, Mikhail | Related but distinct quests (Stored in `QUEST_NorthTulimshar`, located in Hurnscald) |
| 12 | QL_SARAH | Let me eat cake! | Sarah | Simple fetch quest |
| 13 | QL_SANDRA | Sandra | Sandra | Simple fetch quest |
| 14 | QL_MINEALL | Mine | Lieutenant Dausen | Assisting miners and eventually opening the underground Palace |
| 15 | QL_FIERI | Tonori Delight | Fieri | Fetch quest |
| 16 | QL_IMEC | Imec's Stingers | Imec | Fetch quest |
| 17 | QL_BANU | Banu | Banu | Fetch quests (Stored in `QUEST_NorthTulimshar`, located in Hurnscald) |
| 18 | QL_ANWAR | Anwar's Fields | Anwar | Back-and-forth traveller quest across several NPCs |
| 19 | QL_KYLIAN | Kylian | Kylian | Begins as back-and-forth, eventually a looping travel quest delivering parcels |
| 20 | QL_TERRANITE_ARMOR | Terranite Armor | Heathin | Fetch quest locked to level 60+ (NPC always has a ! mark above head) |
| 21 | — | assassin quest | Unknown | Dummied out |
| 22 | QL_CELESTIA | Celestia's Groceries / Protect the children | Celestia | Two quests combined into one |
| 23 | QL_BEHEADER_TERRAC | The Beheader's Quest | The Beheader | Uses two indexes in the quest log (23 and 24), each plugs into a separate server variable |
| 24 | QL_BEHEADER_COMPLETE | — | — | See above |
| 25 | QL_FURQUEST | Winter Gloves / Furry Boots / Dream Dress | Agostine, Lora Tay | Multiple quest log entries with fetch and traveler quests |
| 26 | QL_BANDIT_BOUNTY | Bandit Bounty | Lena | Fetch quest followed by hunt quest |
| 27 | QL_SILK_PANTS | Silk Pants | Hetchel | Prerequisites include Bandit Bounty, Lora Tay |
| 28 | QL_SCYTHE | Farmer's_Scythe | Hinnak | Simple fetch quest |
| 29 | QL_FOREST_BOW | Forest Bow | Alan, Jack | quite infamous; each RawLog only has a 1 in 20 chance of success |
| 30 | QL_WOODEN_SHIELD | Wooden Shield | Jack | Simple fetch quest |
| 31 | QL_CAT_EARS | Mad Katze | Katze | Multiple fetch quests (merge pending) |
| 32 | QL_INSPECTOR | Robberies In Hurnscald | Inspector | traveler quest (merge pending) |
Persistent Character Variables
Here is the list of persistent character variables which are modified directly without going through quest variables. These were found via automated scripts, so they need further investigation. Their usages should be investigate and transitioned to use CommonVar when applicable.
| Variable | First found in file | Comment |
|---|---|---|
| AnchorStoneDest | items/anchor_stone.txt | Map of last touched anchor stone |
| AnchorStoneDestCoord | items/anchor_stone.txt | Location of last touched anchor stone |
| Annual_Quest | 011-1/oscar.txt | |
| AUTOMOD | commands/automod.txt | |
| BOSS_POINTS | 025-4/battlecaves.txt | Boss points counter |
| CASTS | magic/level1-grow-shadow.txt | |
| cavefights | 025-4/battlecaves.txt | |
| CSN | functions/slot_machine.txt | |
| DailyQuestBonus | 027-7/general_razha.txt | |
| DailyQuestPoints | 056-2/mirak.txt | |
| DailyQuestTime | functions/dailyquest.txt | |
| DUELS | 001-3/guards.txt | |
| FLAGS | 002-1/luca.txt | |
| gotcherry | 009-2/olana.txt | |
| HALLOWEENTIME | annuals/halloween/munro.txt | |
| HALLOWEENYEAR | annuals/halloween/debug.txt | |
| HIDDEN | commands/gm.txt | |
| HURNS1_STATE | 012-1/shops.txt | |
| Illia_Uniques_Count | 052-2/chest.txt | |
| KESHLAM_STATE | 099-7/chronos.txt | |
| Kylian_Timer | 002-2/kylian.txt | |
| MAGIC_EXPERIENCE | commands/debug.txt | |
| MAGIC_FLAGS | 006-1/tree.txt | |
| Menhir_Activated | functions/soul_menhir.txt | |
| Mirak_Bantime | 056-2/mirak.txt | Time you cannot come back to the NPC when you upset him |
| Mirak_Questtime | 056-2/mirak.txt | Time you cannot come back once you finished the quest |
| Mobpt | mobs/mob_points.txt | Monster points counter |
| MPQUEST | 029-1/monster_guide.txt | |
| MUTE_GLOBAL | commands/mute.txt | |
| OrumQuest | 018-1/flowerpentagram3.txt | |
| OrumQuestBarrier | 009-4/barriers.txt | |
| OrumQuestTorch | 009-4/torches.txt | |
| QUEST_Airlia | 009-2/airlia.txt | |
| QUEST_Barbarians | 033-1/yerrnk.txt | |
| QUEST_BlueSage | 048-2/helperCleaning1.txt | |
| QUEST_clothdyer_knowsdye | 011-1/alchemist.txt | |
| QUEST_Forestbow_state | 011-1/alchemist.txt | Stores Forest Bow (nibble 0), Wooden Shield (nibble 1), Bone Knife (nibble 2) and Setzer (nibble 3) states |
| QUEST_Graveyard_Caretaker | 027-2/caretaker.txt | |
| QUEST_Graveyard_Inn | 026-2/lover.txt | |
| Quest_Halloween | 011-1/oscar.txt | |
| QUEST_MAGIC | 006-1/tree.txt | |
| QUEST_MAGIC2 | 006-1/spirit.txt | |
| QUEST_Mirak | 056-2/mirak.txt | |
| QUEST_MIRIAM | 006-1/miriam.txt | |
| QUEST_MIRIAM_run | 006-1/miriam.txt | |
| QUEST_NorthTulimshar | 001-1/weellos.txt | |
| QUEST_SouthTulimshar | functions/clear_vars.txt | Fully migrated |
| QUEST_WG_state | 011-6/crastur.txt | |
| Rossy_Quest | 025-4/battlecaves.txt | |
| STARTAREA | functions/clear_vars.txt | |
| teleport_cookie | magic/event-boss-powerup-flee.txt | |
| TMW_Quest | functions/clear_vars.txt | Migrated to `QUEST_SouthTulimshar` and `QUEST_Hurnscald` |
| TowelLastUsed | functions/global_event_handler.txt | Towel cooldown timer |
| TravelFound | functions/travelers.txt | Bits for found travelers |
| TUT_var | functions/game_rules.txt | |
| tvis | 029-1/rewards_master.txt | Amount of monster points needed for next item |
| wolvern_count | 033-1/birrod.txt | |
| XMAS2020 | annuals/xmas/2020.txt | |
| XMASTIME | 030-2/bedding_helper.txt | |
| XMASYEAR | annuals/xmas/debug.txt |
Abnormal Variables
These variables have some kind of abnormality involved, or are not currently fully understood. They are connected to items listed within the quests page, however, so they're included for completeness.
| Variable | First found in file | Comment |
|---|---|---|
| VOLTAIN_state | serverdata/world/map/npc/007-1/voltain.txt | Not stored within the player character, seemingly indeterminate. |