Dev:Quest Log

From The Mana World
Revision as of 09:33, 14 November 2025 by Bjørn (talk | contribs) (Linked some quests List of Quests in the Quest Log by ID)

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) (8) 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)

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 traveller 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

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
Katze 015-3/pot.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_Hurnscald 018-3/bookcase.txt Stores Inspector (nibble 3) state
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.