Dokimon Quest Wikisite v1.3

Game updates and build history

data from build 2026-09-02

Every Steam build of Dokimon Quest the wiki has re-extracted its data from, newest first. The developer's own announcements live on the news page; this page exists for the builds that change the game's data, whether or not they come with patch notes. Each entry lists what a player notices, the wiki pages that changed with it, and the raw diff of the game files the changes were read from.

The site launched on the 2026-08-27 release build. A build is dated by its Steam depot manifest — the game itself carries no version number.

Build 2026-09-02

Depot diff · no patch notesmanifest 6853406165080485270

Silent update — Twindle Forest spawns, “Ranger” rename, Thief achievement

  • Twindle Forest has wild Dokimon from the start of the game, at levels 1–2. Before this build the forest stayed empty until the sixth story quest and then spawned at levels 1–3.
  • Every “trainer” in the game text is now a “Ranger” — item descriptions, Dokidex entries, NPC dialogue and the party UI. Nothing about how those battles work changed.
  • Stealing a Dokimon with a Theft Captal now unlocks the Thief achievement.
  • Releasing a Dokimon asks for confirmation first (“This can’t be undone”).
  • The party screen’s XP bar now fills by percentage of the current level instead of a raw experience ratio — cosmetic only.
  • Under the hood: the evolution queue for benched party members is keyed on who is on the field rather than on party slot order. The rule the wiki documents is unchanged — evolution fires on a battle level-up at or past the evolution level.

Wiki pages updated: Twindle Forest · Theft Captal · Achievements — Thief · Slytharot · Quackfil · Lloudious · Lunapet · Aoimon · Mechanics — evolving

Raw diff of the game files

Unified diff of the 18 extracted scripts and the English localization files, this build against the 2026-08-27 release build the site launched on. Files that did not change are omitted.

diff --git a/data/raw/gml/gml_GlobalScript_init_areas.gml b/data/raw/gml/gml_GlobalScript_init_areas.gml
--- a/data/raw/gml/gml_GlobalScript_init_areas.gml
+++ b/data/raw/gml/gml_GlobalScript_init_areas.gml
@@ -31,16 +31,8 @@ function init_areas()
             break;
         case 2:
             new_area = "Twindle Forest";
-            if (global.quest[0] >= 6)
-            {
-                wild_monster = pick(UnknownEnum.Value_9, 3, UnknownEnum.Value_14, 7, UnknownEnum.Value_16, 3, UnknownEnum.Value_18, 2, UnknownEnum.Value_45, 1);
-                monster_level = range(1, 3);
-            }
-            else
-            {
-                wild_monster = -1;
-                monster_level = -1;
-            }
+            wild_monster = pick(UnknownEnum.Value_9, 3, UnknownEnum.Value_14, 7, UnknownEnum.Value_16, 3, UnknownEnum.Value_18, 2, UnknownEnum.Value_45, 1);
+            monster_level = range(1, 2);
             if (!global.night_time)
             {
                 global.battle_background = UnknownEnum.Value_0;
diff --git a/data/raw/gml/gml_GlobalScript_monster_manipulation.gml b/data/raw/gml/gml_GlobalScript_monster_manipulation.gml
--- a/data/raw/gml/gml_GlobalScript_monster_manipulation.gml
+++ b/data/raw/gml/gml_GlobalScript_monster_manipulation.gml
@@ -1466,9 +1466,7 @@ function draw_party_screen()
             x_spacer = 120;
             y_spacer = 37;
             var _healthbar = hp / max_hp;
-            var xp = string(round(global.monsters[i][UnknownEnum.Value_2]));
-            var max_xp = string(GET_STAT(0, 17, i));
-            var _expbar = xp / max_xp;
+            var _expbar = percentage(GET_STAT(0, 9, i), GET_STAT(0, 8, i));
             if (float_mon != -1)
             {
                 if (float_mon == i)
@@ -1503,6 +1501,7 @@ function draw_party_screen()
             paint_from_index(xx + 22 + (o * x_spacer), yy + 30 + (ii * y_spacer) + mon_hop, spr_monsters_mini, num, global.monsters[i][UnknownEnum.Value_18]);
             paint(xx + 46 + (o * x_spacer), yy + 33 + (ii * y_spacer), spr_party_monbox_hp);
             paint_healthbar(xx + 46 + (o * x_spacer), yy + 33 + (ii * y_spacer), spr_party_monbox_hp, _healthbar, 1);
+            paint_healthbar(xx + 46 + (o * x_spacer), yy + 38 + (ii * y_spacer), spr_party_monbox_xp, 1, 0);
             paint_healthbar(xx + 46 + (o * x_spacer), yy + 38 + (ii * y_spacer), spr_party_monbox_xp, _expbar, 1);
             format(16777215, -1, -1, 0);
             if (global.language == 5)
diff --git a/data/raw/gml/gml_Object_obj_battle_Step_0.gml b/data/raw/gml/gml_Object_obj_battle_Step_0.gml
--- a/data/raw/gml/gml_Object_obj_battle_Step_0.gml
+++ b/data/raw/gml/gml_Object_obj_battle_Step_0.gml
@@ -2511,10 +2511,6 @@ switch (menu)
                     {
                         _exp = round(((180 * global.eparty[ebattler][UnknownEnum.Value_1]) / 7) * _t * rand * 1.2 * 1.4 * _catchup);
                     }
-                    if (global.admin)
-                    {
-                        _exp *= 20;
-                    }
                     experience_to_give = _exp;
                     experience_to_give2 = _exp;
                     original_experience_to_give = _exp;
@@ -2793,6 +2789,7 @@ switch (menu)
                     if (cast_captal == UnknownEnum.Value_28 && global.trainer)
                     {
                         global.trainers[global.trainer_battling] = -1;
+                        UNLOCK_ACHIEMENT("thief");
                     }
                 }
                 else
@@ -2892,12 +2889,12 @@ switch (menu)
                                 var new_max_health = GET_STAT(0, 0, i);
                                 var health_difference = new_max_health - curr_max_health;
                                 global.monsters[i][UnknownEnum.Value_3] = global.monsters[i][UnknownEnum.Value_3] + health_difference;
-                                var ii = 0;
-                                if (global.double_battle && battler1 != -1)
+                                var _on_field = i == battler;
+                                if (global.double_battle && battler1 != -1 && i == battler1)
                                 {
-                                    ii = 1;
+                                    _on_field = 1;
                                 }
-                                if (i > ii)
+                                if (!_on_field)
                                 {
                                     if (global.mondex[global.monsters[i][0]][UnknownEnum.Value_13] > 1 && global.monsters[i][UnknownEnum.Value_1] >= global.mondex[global.monsters[i][0]][UnknownEnum.Value_13] && global.monsters[i][UnknownEnum.Value_18] != 8)
                                     {
diff --git a/data/raw/localization/english_items.txt b/data/raw/localization/english_items.txt
--- a/data/raw/localization/english_items.txt
+++ b/data/raw/localization/english_items.txt
@@ -83,7 +83,7 @@
 55 She suddenly cracked out of the Ember Soul. She's following you around!
 
 56 Theft Captal
-57 Lets you steal monsters from other trainers. The battle ends on use.
+57 Lets you steal monsters from other Rangers. The battle ends on use.
 
 58 Orb Shards
 59 Apparently you can level up your monsters with this? Neat!
diff --git a/data/raw/localization/english_monsters.txt b/data/raw/localization/english_monsters.txt
--- a/data/raw/localization/english_monsters.txt
+++ b/data/raw/localization/english_monsters.txt
@@ -21,7 +21,7 @@
 
 15 Slytharot
 16 Scythe Dokimon
-17 Slytharot is a highly intelligent and extremely agile slasher. Because of this, they are favored by powerful trainers.
+17 Slytharot is a highly intelligent and extremely agile slasher. Because of this, they are favored by powerful Rangers.
 
 18 Squibbly
 19 Anchor Dokimon
@@ -65,7 +65,7 @@
 
 48 Quackfil
 49 Proud Dokimon
-50 It has a bossy nature, and has even been known to pick on its own trainer if displeased.
+50 It has a bossy nature, and has even been known to pick on its own Ranger if displeased.
 
 51 Quackfear
 52 Arrogant Dokimon
@@ -85,7 +85,7 @@
 
 63 Lloudious
 64 Guiding Light Dokimon
-65 Since it is known to guide lost trainers at night, it has become a symbol of hope across the region.
+65 Since it is known to guide lost Rangers at night, it has become a symbol of hope across the region.
 
 66 Pheonix
 67 Hatchling Dokimon
@@ -241,7 +241,7 @@
 
 180 Lunapet
 181 Guiding light Dokimon
-182 Since it is known to guide lost trainers at night, it has become a symbol of hope.
+182 Since it is known to guide lost Rangers at night, it has become a symbol of hope.
 
 183 Umbralancer
 184 Crescent Moon Dokimon
@@ -413,7 +413,7 @@
 
 309 Aoimon
 310 Bloodthirsty Dokimon
-311 Will stalk and kill anything it sees within reach, by any means! Despite this, it's intensely loyal and will do anything to protect its trainer!
+311 Will stalk and kill anything it sees within reach, by any means! Despite this, it's intensely loyal and will do anything to protect its Ranger!
 
 312 Palsamon
 313 Cosplay Dokimon
diff --git a/data/raw/localization/english_npc.txt b/data/raw/localization/english_npc.txt
--- a/data/raw/localization/english_npc.txt
+++ b/data/raw/localization/english_npc.txt
@@ -235,7 +235,7 @@ I fooled one! I actually fooled one this time!! Master will be so proud of me!
 .
 
 45
-Hate to break it to you, but I am not indeed the Elite Trainer you seek.
+Hate to break it to you, but I am not indeed the Elite Ranger you seek.
 You'll have to venture further into the shrine if you wish to face her, she's just past me and my twin sister.
 .
 
@@ -1476,7 +1476,7 @@ You'll be completely alone once you go through there. Make sure you're prepared.
 My sister is on Gad'riel duty today. You can see her by passing into his domain.
 Me and Miso here are just on normal guard duty, protecting the town.
 If you're serious about taking on Gad'riel, make sure to rest up a lot first.
-You can heal up with your team at the onsen above me, and there's lots of strong trainers here.
+You can heal up with your team at the onsen above me, and there's lots of strong Rangers here.
 We also have a merchant that sells rare items, and wise people here that can give you advice.
 Whenever you're ready to take him on, just head North of town, and you'll find yourself in his domain.
 .
@@ -1721,7 +1721,7 @@ It's so cold here. I wish my cute little Burnsby could warm me up...
 .
 
 350
-I really wanna become an Elite trainer one day.
+I really wanna become an Elite Ranger one day.
 But I think I'm too lazy to do something like that.
 .
 
diff --git a/data/raw/localization/english_object.txt b/data/raw/localization/english_object.txt
--- a/data/raw/localization/english_object.txt
+++ b/data/raw/localization/english_object.txt
@@ -393,7 +393,7 @@ Huh? What does that special monster do?... Guess you'll have to keep playing to
 .
 
 76
-Welcome to Tenshou Tower! Where the strongest trainers come to compete in ongoing battles.
+Welcome to Tenshou Tower! Where the strongest Rangers come to compete in ongoing battles.
 .
 
 77
@@ -596,7 +596,7 @@ Strict dress code.
 120
 There's a bunch of postings of pictures and sticky notes.
 People are talking about their "hauls" or strong Dokimon they stole.
-There's also requests with rewards for certain Dokimon or taking out certain trainers.
+There's also requests with rewards for certain Dokimon or taking out certain Rangers.
 Hey, this picture looks kinda like you! That's a funny coincidence.
 .
 
diff --git a/data/raw/localization/english_scene.txt b/data/raw/localization/english_scene.txt
--- a/data/raw/localization/english_scene.txt
+++ b/data/raw/localization/english_scene.txt
@@ -494,7 +494,7 @@
 377 WHAT WAS THAT!??
 378 There's some dark energy at play here. I have no idea who or WHAT that was, but we need to get inside NOW.
 379 Come on, this place isn't some kind of playground.
-380 There's a reason why strong monsters and trainers gather here...
+380 There's a reason why strong monsters and Rangers gather here...
 
 // Aki - F - You're about to go in a "deep dive" into the spiritual realm together with her using her poewrs.
 381 Alright. Remember, we're in this together, /name/.
@@ -1271,3 +1271,4 @@
 2003 Consider this a courtesy call. Further attempts may result in fines, arrest, or worse.
 2004 ...
 2005 Have a nice day.
+2006 Are you sure you want to release this Dokimon? This can't be undone.
diff --git a/data/raw/localization/english_trainer.txt b/data/raw/localization/english_trainer.txt
--- a/data/raw/localization/english_trainer.txt
+++ b/data/raw/localization/english_trainer.txt
@@ -287,7 +287,7 @@ Fine! Have it your way, I'm gonna look for a better scoop..
 .
 
 40
-I came here looking for tough trainers to sharpen up my skills!
+I came here looking for tough Rangers to sharpen up my skills!
 .
 Wow, that's sharp!
 .
diff --git a/data/raw/localization/english_ui.txt b/data/raw/localization/english_ui.txt
--- a/data/raw/localization/english_ui.txt
+++ b/data/raw/localization/english_ui.txt
@@ -450,7 +450,7 @@
 638 wants to battle!
 639 Battle setup
 641 Background
-642 Trainer
+642 Ranger
 643 Music
 644 Standard
 645 Alternate

How this is made: the game's Steam depot is downloaded on each new manifest, the data is extracted by the same scripts that built the wiki, and the two extractions are diffed. The site's own release notes are on the site changelog.