EDGEquest tests
Every test run on the dev PC, with its result. A test is recorded when it is first run, and its result again each time it runs. Game: Cyberpunk 2077 with Phantom Liberty at E:\SteamLibrary\steamapps\common\Cyberpunk 2077, read through REDbridge 0.10.0 (WolvenKit 9.1.0), 57 archives. From 2026-10-27: game 2.5 (a fresh install), REDbridge 0.11.0 (WolvenKit 10.0.0-beta.1), 57 archives.
Automated
| Test | How | Result |
|---|---|---|
| Smoke | npm run smoke: game and bridge found from the settings; 4,571 quest and phase files listed; the root quest plays cyberpunk2077.questphase; sq030.questphase reads with its inline phases (480 nodes) and uses facts, journal entries and scenes; it reads in plain words; sq030_01_dam_meetup.scene has 59 lines, 13 options in its choices, the player, and text for 50 lines; the quest index matches the game, finds “pyramid song” and says who plays sq030.questphase; inline phases do not read as a phase file “0” (added after the hand test) |
2026-10-21: 14 of 14 passed; again with the new check, 15 of 15 |
| Smoke, writing (Q2) | Also in npm run smoke: the index has the game’s map markers with their world nodes (V’s door: #mq055_mp_megabuilding_apartment); the New Quest template is made in a throwaway WolvenKit project (7 files, quest_check clean); the index has the game’s quest trigger areas and their prefabs (#mq000_tr_vs_apartment in #mq000_pr_apartment); the phase reads back as its steps, arrival V inside that area; the phase lists its prefab; the marker stands on the door’s node; the scene reads back with 3 lines and a choice of 2 (4 before beats); the .xl’s subtitles entry is a subtitle map; the scene’s lines and options are numbered by their place; the checklist lists the template’s stand-ins (the description, the scene’s voice) in the story file with its comments kept, keeps hand-written items, ticks settled ones and drops what is gone, and making again leaves it as it is; a made file changed by hand is kept and the other 6 are unchanged |
2026-10-21: 20 of 20 passed. 2026-10-22, after in-game test 1: 22 of 22; after test 2: 24 of 24; after test 3: 25 of 25; with the checklist: 28 of 28. 2026-10-23, with beats (the template branches: each choice leaves the scene by its own go_<beat> exit and the phase’s scene node has the same outputs; the storyboard has the branch and both endings; a steps: story still reads; bad go: and next: are named with their lines), on game 2.5 after the index workaround: 32 of 32. With voice prompts (a voice: gets an id once and its line’s text id comes from it; the voice item counts takes from a voice.json and treats a changed line’s take as out of date; preparing gives every line an id), on game 2.31: 35 of 35. With the Storyboard’s model and edits (the template laid out with its two endings side by side; add a beat, send a choice to it, rename it, write a voice prompt, tick an item, comments kept; deleting a beat a choice goes to leaves one problem; Convert to beats): 39 of 39. With an option found by its text and a value set by its path (quest_edit’s own edits): 40 of 40. With the beat page’s scene and step edits (a line added before an option’s go:, a go: refused a move, options added, renamed, moved, the last one kept, a line’s words changed with its voice kept, a new scene played by a new step): 41 of 41. With what follows a beat (a beat added at the end is not followed onto; Then sets another beat, an ending or the next in the list) and the layout keeping a choice’s beats together: 42 of 42. With music and sound (a story’s music cues and sounds made as questAudioEventNodeType nodes and scnAudioEvents, read back in words; a name that is neither the game’s (its eventsmetadata.json) nor the project’s custom sound on the checklist, ticked once the custom sound exists): 43 of 43. 2026-10-27, on game 2.5 with REDbridge 0.11.0 after the index read trigger areas anew (4,643 quest and phase files, 4,394 markers, 10,795 areas, V’s door in #mq000_pr_apartment; the template made and read back; the sound list re-read, 23,530 names), with a check of trigger names from debugName: 44 of 44. 2026-10-29, with kinds of choice options (a quest with a worked-out yellow, a white, a Corpo, a Body check and two payments, made with the game’s flags 0, 257, 256, 768, 769 and read back with its tags; an option with two kinds, an unknown attribute, a bad main:, an unknown key and a choice with no open option named; setOption writes a kind before then:, edits and voice paths follow it, and an option with no kind is a plain list again): 48 of 48 |
| MCP, writing (Q2) | A scratchpad script (mcpflow.cjs) runs an assistant’s flow over stdio in a throwaway project: quest_new from the template; quest_edit adds a beat, sends a choice to it, sets its steps and a line’s voice prompt; a bad edit is refused and nothing written; quest_voice with prepare gives every line an id; quest_make writes 7 files and updates the checklist |
2026-10-24: worked as written |
| The Q2 test quest, made and packed | Projects\EDGEquest_Q2: eq_test.quest.yaml made and packed to tests\eq_test.archive with its .xl; quest_check on the archive |
2026-10-21: 6 files, 0 errors, 0 warnings. 2026-10-22, remade after test 1: 7 files, 0 errors, 0 warnings (the new checks find 1 error and 1 warning in the test 1 archive). Remade after test 2 with a “You’re home” objective: 7 files, 0 errors, 0 warnings. Remade after test 3 (only the scene changed): 0 errors, 0 warnings. 2026-10-27, both story files (eq_test, testquest) remade on game 2.5 with REDbridge 0.11.0 in a copy of the project: every made file the same as made on 2.31, once scenes’ node debug symbols are written as the game’s (0.11.0 keeps the value given, 0.10.0 did not); quest_check 0 errors, 0 warnings |
In the game (Q2)
| Test | What happened | Result |
|---|---|---|
| Test 1, 2026-10-22 (ArchiveXL 1.27.4, on the owner’s laptop) | The quest showed in the tracker and the journal. The marker showed far away, labelled “shooting range”, with a GPS route to it; reaching it did nothing, nor did V’s apartment. ArchiveXL’s log: the phase, journal and onscreens merged; subtitles.json “failed to load”; no line about our marker’s position. Causes: a marker with no NodeRef sits at the world’s origin, since the game never asks ArchiveXL where it is; the .xl listed a file of lines where ArchiveXL expects a subtitle map. Whether GPS arrival would fire at 10 m stays unknown. Fixed: the marker and arrival use the game marker’s world node; a subtitle map names one file of lines per scene; quest_check finds both faults |
Failed; fixed and remade |
| Test 2, 2026-10-22 | The marker showed at V’s door, in the tracker, on the minimap and with a GPS route. Reaching the apartment did nothing; the marker stayed. Cause: V’s distance to the marker’s node never passed. That node is a map spot with no entity, and game quests wait for V in trigger areas, which live in quest prefab sectors loaded only while a phase lists the prefab. Fixed: arrival is V inside a trigger area, and the phase lists its prefab; the index knows 10,221 areas; quest_check warns when a phase waits in an area whose prefab no phase in the mod lists |
Marker passed; arrival failed; fixed and remade |
| Test 3, 2026-10-22 | Arriving at V’s apartment fired: the tracker moved on to “You’re home” and the scene started. The choice showed with no text, and choosing the first option crashed the game (access violation; no script in the stack). Cause: the scene numbered its lines and options with one shared counter (options 514 and 770 in a list of two). The game finds a line or option by its id, which is its place in its list (line k is k256+1, option k is k256+2), as in every game scene sampled. Fixed: separate counters; quest_check finds misnumbered items and choice options that name a missing item (the test 3 archive gets the error) |
Arrival passed; choice failed (crash); fixed and remade |
| Test 4, 2026-10-22 | The remade quest from a save before the mod: marker, arrival, the scene with its choice, then “Think it over” and the quest’s end. The owner reported that it worked, with no faults | Passed: the template quest plays from start to end |
| Test 5, 2026-10-23 | Beats: the test quest as four beats on game 2.31, from a save before the mod. Arrive at the door; the scene’s choice goes on by the scene’s own exits: “Look closer” to a beat that ends the quest succeeded, “Go inside” (after reloading) to one that ends it failed. The owner reported that everything worked | Passed: a choice branches the quest to either ending |
| Storyboard hand test, 2026-10-23 | F5 on the dev PC with the test project’s story: four cards with the branch to two endings; a card’s page; a line’s direction; a choice sent to another beat; a beat added; undo; each change in the YAML | Passed (the owner: everything worked) |
| Storyboard pan, zoom and splitter, 2026-10-23 | F5 on the dev PC: drag to pan, wheel and buttons to zoom, the splitter to resize the board | Passed (the owner: it works great) |
| Step 3 hand test, 2026-10-24 | F5 on the dev PC: the Project Quests view; New Quest (title, id, name; opens the Storyboard; makes it); an edit saved and made; Made files and the made phase in plain words; a broken go: in the Problems panel at its line |
Passed, one fault: the status bar’s passing message after a make was not seen. Fixed: a status bar item stays while a story file is in front, with its last make (made at a time and what is left to do, or its problems); a click shows the problems or the made files |
| Test 6, music and sound (planned 2026-10-24) | With EDGEwave from its main (f510fb4 or later) beside EDGEquest, and redcode.pack.redmod on. 1. In the test project, make EDGEwave’s custom sound edgewave_test (Custom Sound, any short WAV, kind sfx). 2. Storyboard, “You’re home”: + Step, Music, search “q104 drone”, pick mus_q104_drone_flight_01_START, move it above the scene; + Step, Sound, search “edgewave”: edgewave_test is listed first, as this project’s sound; ▶ plays it at once, with no tab (EDGEwave #8, from EDGEwave’s main 5099baf). 3. In the scene at_the_door, after the first line: + Sound, search “airdrop”, ▶ on sa_airdrop_package_land (it plays at once; ▶ on another stops the first), pick it; at the scene’s end of “Look closer”: + Sound, edgewave_test. 4. On “Look at the door” and “Get some rest”: + Step, Music, mus_q104_drone_flight_02_STOP, above the ending. 5. Save: the checklist has no sound item (the custom sound exists); remove the custom sound’s entry and save: an item names it, with EDGEwave. 6. Pack, install, start the game from a save before the mod. Expect: music starts on arriving home; the airdrop sound after the first line; edgewave_test before the choice (from the phase) and after “Look closer” (from the scene); the music stops at either ending. Also: Generate on a line opens EDGEwave’s Voice Lines |
Open: answers whether a quest can post a new REDmod event name (EDGEwave #7) and whether a q104 music cue plays outside q104 |
| Test 7, game 2.5, 2026-10-31 | On the dev PC’s game 2.5 with ArchiveXL 1.28.0, Codeware 1.21.1, RED4ext 1.31.0: the test project’s quest remade with EDGEquest on REDbridge 0.11.0, packed, installed, started from a save before the mod. The marker at V’s door; arriving started the scene; “Look closer” ended the quest succeeded, and “Go inside” (after reloading) failed. The owner reported that it all worked | Passed: made files play on game 2.5 as on 2.31 |
| Test 8, kinds of choice options (planned 2026-10-29) | After test 7. In the test quest’s scene at_the_door, give the choice five options on the beat page: one that goes to a beat (yellow by itself), one set to White, a Corpo-only option, a Body check (hard) and a payment (500). Make, pack, install; play once with a Corpo V and once with another lifepath (or a V with low Body and few eddies) |
Open: yellow and white as set; the Corpo option only for a Corpo V; the check and payment tagged, locked when V falls short; paying takes the eddies |
Census and reader checks (Q1, 2026-10-21)
| Check | Result |
|---|---|
Every .quest and .questphase in the game through the graph reader |
4,571 files, 0 failures, 410,194 nodes, 453,787 edges, 15,977 inline phases, 80 s. 60 node classes; the top 25 are 92.5% of nodes. 250 node subtypes and 111 condition kinds; about 45 and 30 of them cover 95% |
| Quest index build | 4,571 files, 38,622 journal entries (10,177 with en-us text), 83 s, 0 failures, 10.6 MB |
| The Judy mod’s phase (Nexus 7833) in plain words | Reads as its story, matching the hand study of 2026-10-17 |
quest_check on the Judy mod (Nexus 7833 v3.1.2, its .archive and .xl)
2026-10-21: every fault known from the hand study was found, plus two the hand study missed.
| Expected (hand study) | Found |
|---|---|
Replaces the game’s mq000_03_secret_room.json subtitles |
Yes, as an error |
| Writes the game’s own facts | Yes: 5 facts |
| 48 leftover texts from a copied scene | Yes: 24 in each of its two scenes |
| Nothing in the mod starts its slot phase | Yes, as “never started” |
| Hand-picked onscreens keys | Yes, as a note |
New: two journal paths the _re phase uses that its journal does not have (one skips a folder level, one does not exist) |
Checked by hand in the mod’s files: both real |
A false alarm found on the way (a phase node’s unconnected output socket) was fixed by checking only connected sockets.
By hand (the owner)
| Test | Steps | Result |
|---|---|---|
| Q1 Read in the development host | F5. Open the EDGEquest activity bar icon: Game Quests lists base\quest, ep1\quest and the open world folders, folders titled with their quest (sq030 shows “Pyramid Song” once the index is built). Open base\quest\side_quests\sq030\phases\sq030.questphase: the page lists the steps in words, with facts, journal, scenes and phases at the side; a phase or scene link opens it, Back returns, Raw opens it in REDcode. Find Quest (search icon): “pyramid song”, “wakako”, a fact name. Check Quest Mod (checklist icon) on a mod .archive |
2026-10-21: passed, one fault: an inline phase read as “Phase 0” with a link to a file “0”. The game stores an empty file link as the hash 0; it now reads as no link, and the index version went to 2 so the cache rebuilds. Fixed the same day |
| A modder follows a game quest from start to end without opening a raw file (Q1’s test) | Pick a side quest, follow it from its phase through its scenes on the quest page alone | Pending |