Small tools. One-time purchases. Real examples and setup guides. Try the available previews before buying.

Perunlight Corp

Step-by-step guide

UrdTrace

See the passages testers visited, the endings they reached and the notes they left along the way.

Use UrdTrace after a small playtest round when you need to connect a tester's comment to the passage and route they actually recorded, then decide what to revise and what to test next.

Get UrdTrace · $7.99

UrdTrace: Actual app view of the original Ferry example. Passage visits and optional recorded routes sit beside the passage inspector.
Actual app view of the original Ferry example. Passage visits and optional recorded routes sit beside the passage inspector. View full size

Before you start

  • Desktop Google Chrome on Linux is the tested environment.
  • Extract the ZIP and open UrdTrace.html in desktop Chrome on Linux. Load the built-in Ferry example for a complete first round, then open your own published SugarCube 2.37.3 HTML.
  • Only published SugarCube 2.37.3 HTML. Harlowe, ink, Yarn, Twee source and Twine archive JSON are not supported inputs.

Your first result

  1. Start with the complete example

    Extract the buyer ZIP, open UrdTrace.html and choose Load example. Open Map and Notes. The original Ferry story has four scripted runs, 30 passage displays and six notes.

  2. Keep the exact published story

    In Twine, use Build → Publish to File with SugarCube 2.37.3. Retain that unchanged HTML. Open it in UrdTrace and check the story title, counted passages, starting passage and warnings.

  3. Create a separate tester copy

    Name the round, open 2 · Tester copy, add instructions and download the tester HTML. Save the editable round. Preserve relative folders for any assets your story needs.

  4. Have testers return their recordings

    Ask each tester to open the copy in desktop Chrome, enter an alias and choose Start recording. They can add a note while a passage is visible and choose New run to play again. Before closing, they must choose Download transcript and send you the file.

  5. Import files from this round

    In 3 · Transcripts, select the returned files together. Confirm aliases, runs and notes. Wrong-build, wrong-round, duplicate-session and over-limit files are refused without changing the open round.

  6. Review what happened

    Use Map for recorded routes and passage visits. Use Notes to see the preceding route, change kind or mark an issue fixed. In Passages → Not reached, inspect gaps and check any static route hint against the story's conditions.

  7. Export and keep a backup

    In Export, choose Download round ZIP. Open round-report.html or import worklist-spreadsheet-safe.csv. Save the editable round with the original story and transcript downloads; browser autosave is a convenience, not a backup.

A worked example

Find the untested ending in The Ferry at Low Water

Input: The original 21-passage SugarCube story and three fictional tester files. StoryInit is code and is excluded from the 20-passage coverage count.

  1. C
  2. h
  3. o
  4. o
  5. s
  6. e
  7. L
  8. o
  9. a
  10. d
  11. e
  12. x
  13. a
  14. m
  15. p
  16. l
  17. e
  18. ,
  19. o
  20. p
  21. e
  22. n
  23. N
  24. o
  25. t
  26. e
  27. s
  28. ,
  29. t
  30. h
  31. e
  32. n
  33. u
  34. s
  35. e
  36. P
  37. a
  38. s
  39. s
  40. a
  41. g
  42. e
  43. s
  44. →
  45. N
  46. o
  47. t
  48. r
  49. e
  50. a
  51. c
  52. h
  53. e
  54. d
  55. .
  56. I
  57. n
  58. s
  59. p
  60. e
  61. c
  62. t
  63. E
  64. n
  65. d
  66. i
  67. n
  68. g
  69. T
  70. i
  71. d
  72. e
  73. a
  74. n
  75. d
  76. t
  77. h
  78. e
  79. s
  80. u
  81. g
  82. g
  83. e
  84. s
  85. t
  86. e
  87. d
  88. s
  89. t
  90. a
  91. t
  92. i
  93. c
  94. p
  95. a
  96. t
  97. h
  98. b
  99. e
  100. f
  101. o
  102. r
  103. e
  104. p
  105. l
  106. a
  107. n
  108. n
  109. i
  110. n
  111. g
  112. a
  113. n
  114. e
  115. w
  116. t
  117. e
  118. s
  119. t
  120. .
  121. E
  122. x
  123. p
  124. o
  125. r
  126. t
  127. t
  128. h
  129. e
  130. r
  131. o
  132. u
  133. n
  134. d
  135. Z
  136. I
  137. P
  138. a
  139. n
  140. d
  141. r
  142. e
  143. o
  144. p
  145. e
  146. n
  147. t
  148. h
  149. e
  150. r
  151. e
  152. p
  153. o
  154. r
  155. t
  156. .

Expected result: Four scripted runs, 30 passage displays and six notes; 17 of 20 counted passages visited, three of four endings reached and 21 of 27 parsed static links matched by recorded transitions. Sinking, TideTable and EndingTide were not reached.

Follow a complete playtest round

Actual screens from the downloadable app, using an original story and fictional scripted tester files.

1. See the round on the story map

UrdTrace: Actual app view of the original Ferry example. Passage visits and optional recorded routes sit beside the passage inspector.
Actual app view of the original Ferry example. Passage visits and optional recorded routes sit beside the passage inspector.

2. Read notes with their route context

UrdTrace: Six notes from fictional, scripted testers are attached to passages and the preceding route. Classify the work without changing the tester's original text.
Six notes from fictional, scripted testers are attached to passages and the preceding route. Classify the work without changing the tester's original text.

3. Make a recorder copy for this round

UrdTrace: Download a separate tester HTML bound to the exact original story and named round.
Download a separate tester HTML bound to the exact original story and named round.

4. Let testers write at the relevant passage

UrdTrace: The recorder attaches a note to the current passage and run step. Testers choose when to record and download their transcript.
The recorder attaches a note to the current passage and run step. Testers choose when to record and download their transcript.

5. Choose what to test next

UrdTrace: Sinking, TideTable and EndingTide were not reached in the four scripted runs. Static-link suggestions need to be checked against the story's conditions.
Sinking, TideTable and EndingTide were not reached in the four scripted runs. Static-link suggestions need to be checked against the story's conditions.

Troubleshooting

A transcript says different build or round

Use the saved round and unchanged original published HTML used to make that tester copy. Republishing changes the fingerprint. If the old source is missing, start a fresh round.

A newer download says duplicate session

Save the round, remove that tester's earlier transcript in 3 · Transcripts and import the newer file. Note edits survive when the same note IDs return.

Local browser saving is unavailable

Download the transcript or save the author round before closing or reloading. Storage can depend on the browser profile and file location.

A route hint cannot be followed in the story

Hints use parsed static links. Check conditions and macro or JavaScript links in the actual story; an unvisited passage is not automatically unreachable.

The free pack has no app to open

Open example-results/round-report.html and manual/index.html to inspect the output and workflow. The author app and tester-copy recorder are in the paid ZIP.

Compatibility & limits

  • Only published SugarCube 2.37.3 HTML. Harlowe, ink, Yarn, Twee source and Twine archive JSON are not supported inputs.
  • Verified in desktop Chrome 152 on Linux. Other browsers, operating systems and mobile platforms are unverified.
  • Up to 500 total story passages and 10 MiB story HTML. A round accepts 10 transcripts, at most 2 MiB each and 8 MiB combined.
  • Each transcript holds up to 2,000 passage displays and 200 notes, with 2,000 JavaScript string units per note. Saved-round import is limited to 24 MiB.
  • Transcripts must match the exact original HTML bytes and round. Keep the original file; start a new round after republishing.
  • Coverage comes from recorded passage displays and parsed static links. Route hints do not solve conditions, analyze every dynamic link or prove a path is playable.
  • Testers must choose to record, download and return their files. There is no automatic collection, variable capture or cloud collaboration.
  • The app and recorder do not upload your data. Your own story may still run network code or require external assets. Keep those assets with the tester copy.
  • Printable reports were checked using Chrome's PDF output; physical printers and other PDF engines are unverified.

Need a hand?

Tell us the product, host application and version, what you tried, and the exact error. Contact support with a fictional example; keep private customer files and passwords out of your message.