About This File
Version 5 Is here with a massive fix to the system might not look like there where much changes but fixed the Auto fix issues from what i have tested.
Use the auto fix at your own risk it can and will break the game.
Incompatible with Fertile ditz pill It is bundled in with that mod so use this without Fertile ditz pill installed.
Diagnostic issue feedback is welcomed you can post it in the discord channel Diagnostic Tool.
This is a standalone file from my Fertile ditz pill so do not install this along side fertile ditz it is meant to help fix issues with game saves and general diagnostic of mods while in the game help find bugs and coding errors.
Updated info under this.
A full-featured debugging and save health suite built into the mod. Every tool is accessible from the settings menu → Tools, with consistent navigation back to the central hub.
No external software needed. No browser dev tools required. If something's wrong with your save, your stats, or your event flags — there's a panel for it.
Quick Reference
| Panel | What it does |
|---|---|
| Diagnostic Hub | Central navigation to every panel + cheats menu |
| Quick Health Check | At-a-glance scan of essential game state |
| Character & Side Effects | Character datamap dump + side effect integrity |
| Mod Systems | Deep inspection of mods |
| Base Game & Save | NPCs, events, outfits, mods overview |
| Auto-Fix | One-click repairs (only shows when issues exist) |
| Recover from Old Bad Fixes | Targeted repair for damage from earlier diagnostic versions |
| Save Health Diagnostic | All 16 sections in one pass |
| Save & Game State Scanner | Analyze any save slot from IndexedDB |
| Save Size | Variable-by-variable bloat audit |
| Pregnancy Timeline | Visual pregnancy + birth history |
| Bracket Balance Checker |
Find mismatched [ ] in passage source
|
| Passage Link Checker |
Find broken (goto:), ($cs:), (display:), (link:)
|
| Tag Analyzer | Group passages by tag |
| NPC Relationships Viewer | Edit per-NPC dom/attraction/friendship/respect |
| Passage History | Visit log + undo history trimming |
| Variable Snapshot | Capture state, compare later |
| Error Watcher | Always-on background error capture |
| Cheats Menu | Direct stat/storyline manipulation |
| Interactive Console | Live Harlowe REPL with 8 power tabs |
| Export Report | Full diagnostic report to clipboard |
| Harlowe Debug Mode | Activate Harlowe's native debug overlay |
| Source Map Addon | Optional addon — per-mod attribution everywhere |
Diagnostic Panels
🏠 Diagnostic Hub
Central navigation with links to every diagnostic panel plus a cheats menu for testing and recovery. Every panel has consistent navigation back to the hub.
⚡ Quick Health Check
At-a-glance scan of essential game state: day/time, character data, money, pregnancy, pill status, birth counter, and event arrays. Catches the most common problems fast.
🧍 Character & Side Effects
Dumps your full character datamap, stat breakdowns (base + buffs), and runs integrity checks on side effects. Finds orphans, duplicates, and unregistered entries that would crash the stat page.
🌱 Mod Systems
Deep inspection of mod system: core variables, pill database.
🎮 Base Game & Save
Scans NPC databases, family NPCs, game systems, events, outfits, positions, and loaded mods. Quick top-level overview of base-game data integrity.
🛠️ Auto-Fix
One-click repairs for detected issues. Only shows fix buttons when actual problems are found, so you can't accidentally break things. Pairs with the Interactive Console's read-only repair snippets when you want to review what a fix does before running it.
🩹 Recover from Old Bad Fixes
Targeted repair page for damage caused by earlier diagnostic versions.
A previous Auto-Fix release had two false positives that wrote bad shapes into base-game data:
-
position_inventorywas being reset to an empty array when it should be a datamap -
memorywas being reset to 0 when"none"is a valid recall-miss state
This page scans for those exact damage signatures, leaves valid states alone, and offers fixes only when actually broken.
Non-destructive — only restores valid base-game shapes. Safe to run on a healthy save (it'll just report everything as healthy and do nothing). Useful if you played on an older diagnostic build and now see crashes in sex scenes or recall events.
🩺 Save Health Diagnostic
The big one. Runs all 16 diagnostic sections in a single pass with a table of contents for navigation. Covers everything from core state to gauntlet NPC bloat cleanup.
💾 Save & Game State Scanner
Standalone tool with a save slot selector. Pulls live data straight from your browser's IndexedDB, so you can analyze any save slot without loading it.
Includes:
- Variable size analysis
- Save bloat detection
- Gauntlet cleanup tools
- Color-coded size bars per slot
📦 Save Size
Focused save-bloat audit for the currently loaded save. Measures each variable's serialized size, sorts by largest first, and flags oversized data so you can see exactly what's eating up your save file.
Lighter and faster than the full Save Scanner when you just need to know "what's making my save big."
🤰 Pregnancy Timeline
Visual timeline of your current pregnancy status plus full birth history, pulled from the same source the base game's Sex Stats page uses — so the numbers always match.
Detects FD/base game sync drift and points you to the fix.
🔧 Bracket Balance Checker
Scans passage source code at runtime for mismatched [ ] brackets.
- Basic mode — shows counts
- Advanced mode — pinpoints exactly which brackets are unmatched with line numbers, depth tracing, and full passage source
Filter by Fertile Ditz only or base game / other mods.
🔗 Passage Link Checker
Finds broken (goto:), ($cs:), (display:), and (link:) references.
- Basic mode — shows the line with each broken reference
- Advanced mode — displays the full passage source with broken references highlighted in red and line-numbered
Uses the source map (when installed) for accurate per-passage mod attribution, so you'll never get false positives from other mods that happen to share keywords.
🏷️ Tag Analyzer
Scans every passage in the game and groups them by tag. See exactly which passages run on header, footer, startup, nightly, etc.
Useful for tracking down what's executing every turn and finding tag-related bloat.
👥 NPC Relationships Viewer
Lists every NPC in your save with expandable cards showing dom, attraction, friendship, and respect.
-
Edit any stat with
±5buttons or reset - Delete corrupted entries
- Filter by All or Corrupted
- Choose how many to show
📜 Passage History
Shows where you've been using Harlowe's own visit log.
- Recent passages list
- Full search across all 9000+ passages
- Undo history trimming tools (keep last 100/50/20) to shrink bloated saves
- Show 10 / 25 / 50 / All
📸 Variable Snapshot
Capture full game state at one moment, do something in-game, then come back and compare. Shows added/removed/changed variables with before/after values.
Pairs with a built-in performance timer that counts headers, footers, and event-tag passages firing per turn and measures elapsed time and turn-rate (Fast / Moderate / Slow), so you can quantify slowdown and pinpoint when it started.
🚨 Error Watcher & Error Log Viewer
Always-on background monitor that silently captures Harlowe and JavaScript errors as they happen. The viewer lets you review, filter, and copy error reports without losing your place.
When the source map is installed, errors are automatically enriched with the file and mod each one came from.
🎯 Cheats Menu
Direct manipulation of:
- Masculinity cap / Identity level
- Breeding urge / Bimbo conditioning
- Money / Base stats / Arousal / Mood
- Pill timer
- Kane / Vex / Dealer progress
- Lactation / Birth counter
- Storyline resets
Every destructive action requires confirmation.
💻 Interactive Console
Live Harlowe REPL for inspecting and surgically repairing save state when the canned tools don't fit. Type any Harlowe expression, click Run or hit Ctrl+Enter, and the result renders inline against your real save with timing and ok/error status.
⚠️ The console writes to your live save state. Same as X-Lowe Enhanced Console, same Harlowe API. A
(set:)query actually sets the variable. The Confirm Writes toggle (default ON) catches write macros and shows you a preview before executing. See the Safety section below.
Organized into eight tabs:
Tab 1 — 💻 Console (main work area)
The REPL itself. Variable browser sidebar groups all variables in your save by prefix (FD / character / pregnancy / pill / pregmod surfaced first), with a filter box that auto-expands matching groups and one-click insertion of (print: $varname) into the input.
Quick-insert toolbar:
- Inspect character
- Inspect pregnancy
- Type of
- Keys of
- Clear output
- Snapshot / Diff buttons
Smart features:
-
Variable autocomplete fires while you type —
$preshows$pregnancy [dm],$pregkids [num],$preg_video_num [num], etc., labeled with type and size. Tab accepts the first match, Esc dismisses. -
Datamap pretty-printing — output renders as a clean key/value list instead of Harlowe's raw
<table class=datamap>HTML.
Tab 2 — 🔬 Inspector (power inspection without writing queries)
Four tools for exploring state visually:
-
🔍 Filter Variables by Type — chips for
datamaps / arrays / numbers / strings / booleans / oversized (>5KB). Click a chip, see only matching variables. Click any result to insert(print: $varname)into the Console. - 🔎 Search Variable Values — walks every top-level variable looking for matches in strings, numbers, array elements, and datamap keys/values. Shows where each match occurred.
- 📋 Datamap Inspector — type any variable name, get a clean three-column table inline (Key / Value / Type) with smart truncation for long values. No popup modal.
- 📄 Passage Source Viewer — type any passage name, see its full source with tag info. Falls back across multiple Harlowe API surfaces so it works regardless of build version.
Tab 3 — ✏️ Editor (power query writing)
Four tools for building, saving, and previewing queries:
- 💾 Saved Snippets — name and store the current console input. Each entry has an expandable preview, Insert/Delete buttons, and the library has Clear-all + Copy as JSON + Import (Replace or Merge) for sharing/backup. Stored in localStorage.
-
🧪 Dry-Run Mode — captures pre-state, runs the current input, computes the diff (added/removed/changed counts plus per-variable before→after for the first 20 changed), then attempts to restore primitive values to undo the change.
Honest caveat: only string/number/boolean variables restore reliably. Datamap and array mutations cannot be perfectly reverted.
-
📋 Query Templates — dropdown of pre-built generators:
- Set NPC stat
- Init pregnancy datamap key
- Reset variable
- Add to side effects array
- Loop and inspect array
-
🎨 Syntax Highlighting Preview — colors your console input by token type (macros / strings /
$variables/_tempvariables / numbers / brackets / keywords). Click-to-render to keep it cheap.
Tab 4 — 📖 Cheat Sheet (categorized variable reference)
Built directly from the base game source files. Eleven base-game categories with curated reference rows plus extensive datamap key listings.
| Category | What's covered |
|---|---|
| 🧍 Character |
Full $character datamap with all keys (including gotchas like pregnant being a string "true"/"false")
|
| 📅 Time & World | Day, time, weather, events |
| 💊 Pills |
All 11 pill types with effects, prices, durations + pill_inventory keys + protection state
|
| 💗 Pregnancy (base) | Base game pregnancy datamap structure |
| 🧪 Side Effects | Full list of 30+ side effect names with display labels |
| 👥 NPCs & Relationships |
$relationships master map, default NPCs (Alexia, stepdad, Bruce, Serra, Nyx)
|
| 📊 Stats & Skills | get/set macros, action points, sex/activity counters |
| 🎒 Inventory & Outfits | Items, outfit datamap, outfit categories |
| 💼 Office Job |
sales_job datamap with all keys
|
| 🏠 Home & Money | Rent, allowance, mess, chores |
| 🎮 Cheats & Settings |
cheats_enabled, realism_mode, all toggle flags
|
Each entry shows:
- Variable name + type label
- Plain-English description
- Common values (when known)
- Datamap key list (for complex datamaps)
- 📍 Live indicator — shows your save's actual current value, OR "not present in current state" when missing
-
📋 Read button → inserts
(print: $var) -
✏️ Write template button → inserts a
(set:)template with a typed default
Toolbar: debounced search filter (by name or description) + Expand all + Collapse all.
FD detection: When the Fertile Ditz mod is detected in your save, three additional FD categories append to the bottom (FD Core, FD NPCs, FD Systems) with a banner. Vanilla X-Change Life players never see them.
Tab 5 — ⚙️ Workflow (structured debugging workflows)
Five tools for multi-step / longer-running investigations:
- 👁️ Watch List — pin variables to monitor across queries. Refresh-on-demand; changed values flash yellow. Persisted in localStorage.
- 📍 Named Baselines — save multiple state snapshots with names and timestamps. Diff vs current shows added/removed/changed counts plus per-variable before→after for the first 30 changed values. Useful for "save baseline before pill, take pill, diff to see what changed."
- 📝 Multi-Step Queries — queue queries from the Console tab and run them in sequence with per-step ok/error status and elapsed milliseconds.
-
🔬 Variable Read/Write Tracer — takes a variable name and walks every passage in the game, distinguishing writes (passages that contain
(set:|put:|move:|unset: $var)) from reads (passages that reference$varwithout setting it). - 💾 Save State Import/Export — copies full state JSON to clipboard, or imports from a textarea with two-click confirmation. Same primitive-only restore caveat as dry-run.
Tab 6 — 📚 Snippets (27 base-game-only diagnostic queries)
Organized into five categories. Useful for vanilla X-Change Life players and FD users alike — no mod-specific references in any snippet.
- 🌱 Basic — Quick checks (7 snippets) — day/time/money, gender & DNA, active pill, pregnancy status, side effects, pill inventory, outfit
- **🔍 Basic — Inspect structure** *(5 snippets)* — list keys for `character‘/‘character` / ` character‘/‘pregnancy` / `salesjob‘/‘sales_job` / ` salesjob‘/‘relationships`, plus stepsis state
- ⚙️ Advanced — Stats (4 snippets) — skill levels via get_charm/get_fitness/get_intellect macros, lifetime activity counts, action points, pregnancy chance preview
-
🛠️ Advanced — Repair (review first!) (6 snippets) — find duplicate side effects, remove specific side effect, reset
$position_inventory, force pill expire, reset cheats flag, heal energy & action points - 📊 Advanced — Bulk inspection (5 snippets) — count keys across all major datamaps, event array sizes, inventory & outfit counts, NPC stats summary, money breakdown
Each has an expandable preview so you can review the code before clicking. Snippets never auto-run — clicking inserts the query into the Console tab for you to review and run manually.
Tab 7 — 📜 History
Last 20 queries persisted in localStorage across sessions. Click any entry to recall, or use ↑/↓ in the input when it's empty to cycle through. Dedupes repeats. Clear-history button.
Tab 8 — ❓ Help
Pattern reference, keyboard shortcuts (Ctrl+Enter, Tab, Esc, ↑/↓), safety features, and caveats. Pattern reference is rendered at runtime so the help text never accidentally executes the macros it's documenting.
🛡️ Safety
-
Confirm Writes toggle (default ON, persisted) — detects
(set:),(put:),(move:), and(unset:)and prompts with a query preview before executing. - Snapshot/Diff — captures full state at one moment so you can see exactly which variables changed after doing something in-game.
- Copy Output — sends the result to clipboard for bug reports.
- Per-feature error isolation — each tab's features are wrapped in individual error reporting. If one feature fails to wire up, the others still work, and a red banner at the top of the panel names exactly which feature errored.
- Graceful API fallback — if the Harlowe API isn't reachable in your install, the console shows "Console unavailable" instead of crashing.
Other Tools
📤 Export Report
Generates a full-text diagnostic report and copies it to your clipboard for easy sharing when reporting bugs.
🐞 Harlowe Debug Mode
One-click activator for Harlowe's own native debug overlay. Adds a panel in the bottom-right corner with:
- Built-in variable inspector
- Macro replay log
- Enchantment viewer
Useful when you want to see how Harlowe is interpreting your state from the engine's own perspective rather than through FD's diagnostic lens.
🗺️ Source Map Addon (optional companion file)
Maps every passage in your game to the file and mod it came from. Once installed, it powers smarter behavior across the diagnostic toolkit:
- Link Checker stops misclassifying other mods' passages as Fertile Ditz
- Error Log shows which mod each error originates from
-
A dedicated Source Map Viewer unlocks with:
- Live search across all 9000+ passages with click-to-expand details (mod, file, tags, source size)
- Browse all Fertile Ditz files with their full passage lists
- Browse every installed mod sorted by passage count, click to see what passages each one defines
- Enrich Errors view that maps recent Harlowe/JS errors back to their originating mod and file
- Show 10 / 25 / 50 / All buttons across every view, with sticky state when switching counts
Built from a snapshot of your installed mod database, so even mods that don't tag their own passages still get correctly attributed.
Edited by Kyatinoa
What's New in Version 6.1
Released
Bug fix
Improved the Interactive console.
Fixed the issue with the Auto Fix being more of a Break me button.
Added more general improvements.
Added a new interactive console
Incompatible with Fertile ditz pill It is bundled in with the mod so use this without Fertile ditz pill installed. Diagnostic issue feedback is welcomed you can post it in the discord channel for Diagnostic Tool
This is a standalone file from my Fertile ditz pill so do not install this along side fertile ditz it is meant to help fix issues with game saves and general diagnostic of mods while in the game help find bugs and coding errors.