Master install order builder for Baldur's Gate: Enhanced Edition Trilogy
Browse 630 mods and 4,600+ components. Build a WeiDU.log. Export for mod_installer or Project Infinity. Analyze debug logs. Preview NPC portraits. Check for updates.
-
Browse the full EET mod catalog — 630 mods organized by install order across 21 categories (Pre-EET through Portraits), with search, game phase filters (BG1/SoD/SoA/ToB), and author filtering.
-
Build a WeiDU.log — Select components with checkboxes, then export a valid
WeiDU.logandWeiDU-BGEE.logpair. The format is compatible with mod_installer (eet --bg1-log-file WeiDU-BGEE.log --bg2-log-file WeiDU.log). -
Import your existing install — Drag-and-drop a WeiDU.log onto the app. It matches entries against the catalog and auto-selects everything.
-
Start from presets — Eleven curated starting points: three graduated tiers (First Adventure, Seasoned Adventurer, Veteran's Challenge), Minimal Fixes, Enhanced Vanilla, Story Expansion, Quest Megamod, SCS Tactical, two Cross-Platform presets, and the Mod Forge Ultimate mega-install (400+ mods, 2,027 components). Customize from there.
-
Essential auto-selection — Selecting EET Core automatically selects all essential mods (DLC Merger, EE Fixpack, EET End). Dual-install mods like EE Fixpack are exported to both WeiDU logs.
-
Conflict detection — 460 conflict rules and 117 dependency rules sourced from community data and tp2 analysis. Real-time alerts when selected mods conflict, with component-level detail. Hard deps show in green ("requires"), soft deps in blue ("suggests").
-
Split mod navigation — Mods that span multiple install positions show SPLIT badges with one-click navigation between parts.
-
Diagnostics — Upload a WSETUP.DEBUG file. The parser detects 13 error patterns, matches them against a known issues database, and tells you whether it's a documented problem with a workaround or something new to report. The Diagnostics tab also tracks two engine limits in real time: SPLSTATE.IDS (256 cap) and ADD_KIT (320 cap), showing progress bars, contributor breakdowns, and warnings as you approach each limit.
-
Check for updates — Scans GitHub releases for 320 mods to find version mismatches. Cached weekly via GitHub Actions.
-
EET compatibility badges — 84 mods show minimum version requirements from the official EET compatibility list.
-
Install Order Map — Visual timeline of your install with essential mod validation warnings.
-
NPC Portrait Viewer — See which portrait each NPC will have based on your mod selection. 228 NPCs across 3 sub-tabs (124 Companions, 104 Other NPCs, Player Portraits). Phase-by-phase breakdown (BG1/SoD/BG2/ToB) with conflict detection when multiple mods compete for the same portrait. Click any NPC for a detail modal showing all competing portraits. Filter by NPC name or mod name. 700+ portrait entries from 40+ mods with 170 player-selectable PC portraits.
The catalog is built by merging five sources:
| Source | What it provides |
|---|---|
| install-EET-4.txt | 3,400+ component entries with install order, compatibility notes, and author commentary |
| EET Mod Install Order Guide (Google Sheet) | Mod-level metadata: authors, URLs, game phases, tags |
| WeiDU.log | Actual installed components with real tp2 paths and versions |
| EET Compatibility List | Minimum versions and placement requirements |
| Infinity Insanity Guide | 170+ additional mods, conflict annotations, and mod URLs from Endarire's mega-install |
| EE-Mod-Setup | 168 component-level conflict rules and 105 dependency rules from the EET Game.ini config |
data/
mods.json # Mod catalog with components, install order, and split groups
presets.json # 11 curated install profiles
conflicts.json # Mod/component conflicts, dependencies, essentials, meta-components
known_issues.json # Community-maintained issue database
compat.json # EET compatibility data
pi_weidu_map.json # PI label → WeiDU path mapping
github_mods.json # GitHub repo index for 320 mods
version_cache.json # Auto-updated by Actions
portraits.json # NPC portrait index (228 NPCs, 700+ mod entries, PC portraits)
portraits/ # NPC and PC portrait images (PNG thumbnails)
tools/
build_data.py # Full data pipeline (parse sources → JSON)
scan_versions.py # GitHub API scanner for Actions
extract_ii_notes.py # Infinity Insanity docx → mod notes extraction
apply_ii_notes.py # Apply extracted notes to mods.json
extract_eemodsetup.py # EE-Mod-Setup Game.ini → conflict/dependency extraction
apply_eemodsetup.py # Apply extracted rules to conflicts.json
fix_paths.js # WeiDU path correction script (dry-run + apply modes)
audit_priority.js # Path quality audit report (preset-first prioritization)
.github/workflows/
update-versions.yml # Weekly scheduled version scan
index.html # The app (single-file React 18, fetches data/ at startup)
Just serve the directory:
# Python
python3 -m http.server 8000
# Node
npx serve .
# Then open http://localhost:8000Or push to GitHub and enable Pages — it works as-is.
Edit data/mods.json and add an entry to the array. Place it in the correct install order position.
{
"i": 999,
"t": "MODNAME",
"n": "Human-Readable Name",
"c": "QUEST MODS BG2",
"s": "BG2 quests by Author",
"u": "https://github.com/author/mod",
"a": "Author Name",
"no": "Install notes...",
"co": [
{
"n": "Main Component",
"cn": 0,
"wf": "MODNAME",
"wp": "MODNAME\\MODNAME.TP2",
"wc": 0,
"wq": "exact"
}
]
}Field reference:
| Field | Required | Description |
|---|---|---|
i |
Yes | Unique install order index |
t |
Yes | WeiDU tp2 name (folder name, case-sensitive) |
n |
Yes | Human-readable mod name |
c |
Yes | Install order category (must match one in CL object in index.html) |
s |
No | Subcategory description |
u |
No | URL to mod homepage or download |
a |
No | Author name(s) |
ph |
No | Game phases array: ["BG1","SoD","SoA","ToB"] |
no |
No | Mod-level install notes |
sg |
No | Split group ID (see below) |
ov |
No | Override-only mod — no tp2 installer. Selecting it enables portrait previews but skips WeiDU log export |
cl |
No | Install order changelog array (see below) |
co |
Yes | Array of components |
Component fields:
| Field | Required | Description |
|---|---|---|
n |
Yes | Component name |
cn |
Yes | Component number |
wf |
No | WeiDU folder name (defaults to mod t) |
wp |
No | WeiDU tp2 path (defaults to WF\WF.TP2) |
wc |
No | WeiDU component number (defaults to cn) |
wq |
No | Match quality: "exact" or "fuzzy" |
g |
No | Subcomponent group ID — mutually exclusive choices share the same g value (rendered as radio buttons) |
x |
No | Parent component INDEX (array position in co[], not cn value). Marks sub-options that depend on a parent component. When the parent is deselected, all sub-options with matching x are auto-deselected |
wb |
No | Set to true for BGEE-side components (dual-install mods) |
no |
No | Component-level notes |
k |
No | Number of ADD_KIT calls this component makes (for kit cap tracking) |
ss |
No | SPLSTATE.IDS slots consumed by this component |
Some mods have components that must be installed at different positions in the install order. These are tagged with a sg (split group) field so the app can link them with SPLIT badges and navigation.
To mark a mod as split, add "sg": "group_id" to each entry that belongs to the same logical mod. The group_id is a lowercase string shared by all entries of that mod.
Example — BuTcHeRy has components in two categories:
{"i": 242, "t": "d9_butchery_tazok", "sg": "butchery", "c": "CREATURE MODS PRE SCS", ...}
{"i": 397, "t": "d9_butchery_irenicus_dungeon", "sg": "butchery", "c": "KIT MODS", ...}Do not add sg to mods that share a tp2 prefix but are different mods (e.g., A7 covers DLC Merger, Golem Construction, etc. — these are separate mods, not splits).
Mods can have a cl array tracking install-order-related changes (category moves, positioning updates, compatibility-driven reordering). This is not a general mod changelog; it only records changes relevant to install order.
"cl": [
{"d": "2026-03-10", "m": "Added from Infinity Insanity WeiDU logs"},
{"d": "2026-03-15", "m": "Moved from QUEST MODS BG2 to AFTER NEW NPCS per EET compat update"}
]The changelog is shown as a collapsible dropdown in the mod detail panel.
Edit data/conflicts.json and add to the conflicts array:
{
"a": "modA_tp2",
"b": "modB_tp2",
"severity": "hard",
"reason": "Why these conflict",
"comp_a": "Component name in mod A",
"comp_b": "Component name in mod B"
}Severity levels:
hard— Mods are mutually exclusive. "is incompatible with"partial— Specific components conflict. "may conflict with"soft— Possible issues. "may conflict with"
The comp_a and comp_b fields are optional. When present, the alert shows which specific components conflict instead of just mod names.
Add to the dependencies array in data/conflicts.json:
{
"mod": "dependent_tp2",
"requires": "required_tp2",
"type": "hard",
"reason": "Why this dependency exists"
}Edit data/known_issues.json:
{
"pattern": "regex pattern to match in debug log",
"mod": "MODNAME",
"severity": "critical|warning|info",
"known": true,
"description": "What this error means",
"workaround": "How to fix it"
}The app uses CSS custom properties defined in :root. To change colors or spacing globally, edit the variables at the top of index.html:
:root {
--bg: #0c0e14; /* Main background */
--bg2: #141620; /* Card background */
--gold: #d4a843; /* Primary accent */
--tx: #c8ccd8; /* Main text */
--grn: #4ade80; /* Success/selected */
--red: #f87171; /* Error/conflict */
--blu: #60a5fa; /* Links/info */
--bg-warn: #2a2010; /* Warning background */
--bg-err: #2a1010; /* Error background */
/* ... see index.html for full list */
}A CONFIG object near the top of the script holds app-level constants:
const CONFIG = {
EET_MOD_ID: 12, // Mod ID that triggers essential auto-select
DUAL_INSTALL: ['eefixpack'], // tp2s exported to both BGEE and BG2EE logs
ITEM_HEIGHT: 50, // Virtual list row height in px
VL_OVERFLOW: 8 // Virtual list overscan rows
};If you have updated source files (install order text, CSV, WeiDU logs):
cd tools
python3 build_data.pyThis regenerates all data/*.json files.
- Install order guide: install-EET-4.txt — the most comprehensive EET install order with 9,380 lines of component entries and compatibility notes
- EET Mod Install Order Guide: Google Sheets — the community-maintained spreadsheet that inspired this project and provided mod-level metadata
- Infinity Insanity: Endarire (Greg Campbell) — the Infinity Insanity Guide (Unreleased) provided WeiDU logs, conflict data, and mod URLs that contributed 170+ mod entries to the catalog, plus install order notes for 167 mods
- EE-Mod-Setup: bujiasbitwise-contributions — component-level conflict and dependency data from the EET Game.ini configuration
- EET: K4thos and the Gibberlings Three community
- mod_installer: dark0dave — open source WeiDU log-based installer
- Mod authors: The hundreds of people who build and maintain BG mods across Gibberlings3, Spellhold Studios, Weaselmods, Artisan's Corner, Pocket Plane Group, and beyond
- Installation guide — New
INSTALL_GUIDE.mdwith step-by-step instructions for Project Infinity, mod_installer (two-phase approach), and manual installation. Includesbgee_dir.txtsetup for EET - WeiDU export fix — Fixed 489 incorrect
wc=0values across 53 mods that caused zeroed component numbers (#0instead of correct DESIGNATED number) in exported WeiDU.log files - Mod_installer compatibility — Extensive live testing identified and documented 9 failure modes:
- Drake Soundset split to post-EET entry (needs C0Drake.cre from EET merge)
- The Calling: ALWAYS block/AUTO_TRA variable issue (mod_installer invocation)
- Ninde: folder casing mismatch (wf Ninde→ninde)
- Luxley: wrong tp2 name (fhl_luxley→luxleysoa)
- Isra BG1: backup corruption from mod_installer reinstall churn
- Vienxay/Sirene: ACTION_READLN blocks automation
- AFH cn:1: missing @10012 in alpha version
- Innershade: corrupt DGFl.itm, G3 Anniversary: %tTime% error
- Component data quality — Deep research on 8 major mods with tp2/readme verification:
- D0 Quest Pack: added 8 missing components (0-3 tactical, 10 Hell Trials, 17/20/21 quests), notes for all 23, 3 groups
- Unfinished Business BG2: corrected 9 wrong/misplaced notes, added 15 missing
- Almateria's Restoration: 12 component notes from tp2 analysis
- Romantic Encounters: added missing cn:10 (Coran), 21 component notes, fixed Coran conflict
- NTOTSC: 15 component notes, 2 hard FORBID conflicts vs BG1UB
- IWDification: fixed cn:100→20 (Commoners), cn:0→80 (Thief), cn:130→70 (Druid), added 12 notes
- Shadow Magic: 7 notes + 2 groups. TotLM: 6 notes + 1 group
- Hidden Adventures: 7 component notes
- SUBCOMPONENT group fixes — Found and fixed 6 preset violations where multiple mutually exclusive options were selected (EndlessBG1 Elminster, Imoen4Ever portraits, BG1RE ratings, Brandock scribe, Rjali timing, Polylich)
- cn/wc data corrections — 12 wrong component numbers fixed from tp2 verification: BG1RE (6), IWDification (3), Faiths & Powers (3)
- Conflict scoping — Added comp_b/comp_a to 33 single-component conflicts for proper display. Added 12 portrait conflicts for UB portrait components. Scoped Brage/Questpack to install order. Fixed Solaufein dependency targets (4 deps→jastey's version)
- Preset cleanup — Removed 15 broken/incompatible entries: CtB + 4 sub-modules (WeiDU 251 incompatible), The Calling + Werewolf Isle, Luxley, Ninde, Hubelpot, Innershade, G3 Anniversary, Kelsey cn:4, AFH cn:1. Fixed NTOTSC vs BG1UB FORBID conflicts. Preset: 1,981 keys
- DW Lanthorn — Added to preset (Expanded version), cleaned notes, added group
- Drake NPC split — Separated cn:5 Soundset into post-EET split entry (i:99) for correct install order
- WeiDU path fixes — Fixed 311 missing backslashes, 2,098 case mismatches, DLC Merger and PRE EET wb flags, c#sodtweaks tp2 path (was pointing to eet instead of c#sodtweaks)
-
NPC Portrait Viewer — New Portraits tab with 3 sub-tabs showing how mod selections affect NPC appearances:
- Companions (124) — All recruitable party members (vanilla + mod) with phase-by-phase portrait progression (BG1 → SoD → BG2 → ToB)
- Other NPCs (104) — Non-recruitable NPCs: villains, quest characters, merchants from 30+ mods
- Player Portraits (171) — PC-selectable portraits from Infinity UI (55), PaintBG (35 BG1 + 35 BG2), and RoorenArt (46)
-
Portrait conflict detection — When multiple selected mods modify the same NPC's portrait, the last mod in install order wins (matching WeiDU behavior). Conflict count shown in header; clickable to filter to only conflicting NPCs
-
Phase-scoped portraits — NPCs only show portrait columns for game phases they actually appear in (BG2-only NPCs no longer show empty BG1/SoD columns). Cards auto-size to their content using flexbox layout
-
Portrait detail modal — Click any NPC to see all competing portraits per phase with WINNER indicator. Mod names are clickable links that navigate directly to the mod in the Mods tab
-
Filter by mod name — The search box matches both NPC names and mod names (e.g., typing "PaintBG" shows all NPCs affected by PaintBG)
-
Portrait data —
data/portraits.jsonwith 228 NPCs, 704 mod→portrait entries across 40+ mods, andrecruitableclassification for each NPC. Portraits extracted from 50+ mod archives and vanilla game files -
New mods added — Baldurs Goth Portrait Pack (698), Phaere NPC Portraits (699), Call of the Lost Goddess (700)
-
NPC name research — Resolved 35+ cryptic placeholder names to real character names by cross-referencing tp2 creature files, dialogue translations, and mod readmes (Call of the Goddess: 21 NPCs named, Return to Trademeet: 9, MiH/DSotSC/UB: 5)
-
630 mods, 228 NPCs with portraits, 171 PC portraits
-
Mod Forge Ultimate preset (formerly Infinity Insanity) — Restored and overhauled the mega-install preset (418 mods, 1,867 components) and performed deep conflict analysis to reduce hard conflicts from 70 to 11 (all 11 are component-level false positives resolved by the installer's auto-skip logic)
-
Conflict database overhaul — 74 conflict entries now carry
source_verifiedfields with references to tp2 analysis, forum posts, mod author statements, and GitHub issues. Key research areas: Spell Revisions (6 hard→partial), The Calling (6 of 7 hard→partial/soft), Shades of the Sword Coast (9 hard→removed/partial), Kelsey NPC (5 false conflicts removed), Rjali (3 hard→partial/soft), XP Cap (3 corrected), BG1 NPC in SoA (9 enriched), EET compatibility (2 stale removed), Choose-one conflicts (7 resolved) -
Preset tuning — Removed Kit Tomes (EET-incompatible), Garrick Tales, Hammers component 15 (SR-incompatible), and Romance Cheats from II preset
-
Tool links — Fixed 4 broken URLs per Argent77's issue
-
1-OF badge — New visual indicator for mutually exclusive component groups. Blue
1-OFbadge appears on components that share a group; selecting one deselects others. Includes CHOOSE ONE separator headers and bottom borders for clear visual grouping -
Component data quality pass — Deep cleanup of 30+ mods across PRE-TACTICAL through POST EET:
- 243 subcomponent groups added with 1-OF badges across all major tweak/kit mods
- OPT sub-option badges (
xfield): 20 parent→sub-option relationships with auto-deselect cascading - Hundreds of name prefixes added for clarity (e.g., "Stacks of 40" → "Ammo Stacking: 40", "Use BG values" → "Consistent Stats Edwin: Use BG values")
- Note cleanup: Removed vague placeholders, corrected misplaced notes, stripped
vmarkers, added translations for French components (Selphira Tweaks, AutoDescription) - Group fading: Unselected options in a 1-OF group fade when a sibling is selected, matching OPT badge behavior
-
Mod reconstructions from tp2 — Several mods rebuilt with correct component numbers verified against extracted tp2 files:
- Talents of Faerun: 1 → 87 components with 5 groups (opposition schools, revised kits, ability scores, point-buy, grand mastery)
- PaintBG Portrait Pack: 41 → 87 components with 15 portrait variant groups, all cn values corrected to match sequential tp2
- The Picture Standard: Fixed duplicate cn:19500, added 24 groups for all SUBCOMPONENT pairs
- BG1 NPC Portrait Pack: 3 → 31 components with Coran and Dynaheir variant groups
- Purist Demiliches: 2 → 4 components with 2 groups (Trap the Soul, Resilient)
- Subrace Mod: 1 → 2 components with color change group
- Portraits Portraits Everywhere: 7 → 21 components with 7 groups (category portraits, 6 NPC portrait variants)
- Infinity Collection Portrait Pack: 3 → 4 components with IWD portrait group
-
Split merges — Consolidated adjacent splits that didn't need separation:
- cdtweaks splits 3-6 → single split (315 components)
- SubtleD's Item Tweaks 2 splits → 1 (24 components)
- Another Fine Hell moved after cdtweaks to keep splits contiguous
- HouseTweaks split 4 removed (duplicate of split 2 components)
- Duplicate tactics-remix entry removed (wrong cn values)
-
New mod added: Full Plate and Packing Steel (fullplate, i:348) — alternate armor system with hard FORBID_COMPONENT conflicts against cdtweaks armor tweaks, Refinements revised armors, and Item Revisions
-
Conflict scoping — ~60 whole-mod conflicts narrowed to specific components with
comp_a/comp_breferences, preventing conflict badges from bleeding onto unrelated components. Key mods: SCS (7 scoped), cdtweaks (5), Tweaks and Tricks (10), Klatu (4), ME Tweaks (4), aTweaks (2), MiH SP (2), Skills and Abilities (3), SubtleD Stat Overhauls (2), Randomiser (verified), JTweaks (verified), NPC EE (2), s9 NPC Tweaks (2), Epic Thieving (1), Trap Overhaul (2), Themed Tweaks (1) -
Systematic conflict additions — 170+ new component-level conflicts added:
- Spell table conflicts: Verified via tp2 analysis which mods modify mxsplwiz/brd/prs/pal/ran/src/wis.2da files. Added conflicts for cdtweaks, ToF, IWDification, Tome and Blood, Faiths and Powers, Song and Silence, M&G, KLATU, SubtleD, Selphira across all spell progression components
- cdtweaks internal conflicts: 9 entries for components that shouldn't be used together (store prices ↔ no depreciation, identify all ↔ require identification, movement speed ↔ BG walking speeds, etc.)
- Portrait pack conflicts: 48 systematic cross-references between 5 portrait packs and 10 mods that incidentally change NPC portraits (researched via tp2 analysis of extracted mods)
- AI script conflicts: cdtweaks #300 Party AI vs SCS, Enhanced Powergaming Scripts, KLATU, JTweaks, E-Series, G-Minion
- Luke feat conflicts: cdtweaks Luke feats vs ToF, ArtisansKitpack, ZSTweaks equivalents
- ToF conflicts: 23 total covering interactions with SCS, cdtweaks, IWDification, Spell Revisions, Divine Remix, M&G, Refinements, Rogue Rebalancing, Song and Silence, KLATU, JTweaks, and 14 other mods
- Bogus conflicts removed: cdtweaks↔MiH EQ (no tp2 reference), d0tweak↔SummonsFoW (unrelated components)
-
WeiDU path fixes: Tactics Remix paths corrected from
TACTICSREMIXtotactics-remixper extracted tp2 -
Tag fix:
tweaks→tweakanditems→itemon 3 mods to eliminate ghost filter chips -
Conflict data fixes — 15 malformed entries corrected (
sev→severity,desc→reason,caution→soft); 4 stale tp2 references fixed; 3 obsolete entries removed; Tactics Remix SR conflict downgraded hard→partial (tp2 has unused SR detection code) -
Virtual list height measurement — Expanded mod sections now use ResizeObserver to measure actual rendered height, preventing component lists from overlapping the next mod. Added gold bottom border for clear visual separation
-
Parent deselect cascading — Deselecting a parent component auto-deselects all sub-options
-
OPT badge fix — Fixed 39
xvalues across 5 mods using cn values instead of component indices -
Kit Cap tracking (ADD_KIT limit) — BG:EE v2.6+ has a hard cap of ~320 kits (37 vanilla + 283 for mods). The app now tracks ADD_KIT usage across 23 kit-adding mods with per-component
kvalues:- Header bar: mini progress bar (green <250, orange 250-300, red >300) with tooltip breakdown
- Diagnostics tab: full Kit Cap panel with progress bar, contributor table sorted by kit count, and threshold warnings
- Key mods tagged: Deities of Faerun (123), Faiths and Powers (97), DAWAP (58), Might & Guile (44), Tome and Blood (39), Artisan's Kitpack (32), and 17 others
-
Collapsible category sections — Category headers in the mod list are now clickable to collapse/expand their contents. Collapse All (▲) and Expand All (▼) buttons in the header bar. Section chevrons rotate to indicate state. "Why here?" links remain independently clickable.
-
Infinity Insanity preset overhaul — Systematic category-by-category review of all 22 install order sections:
- 2,227 keys (up from 1,874), covering 400+ mods with component-level conflict resolution
- Fixed ~30 SUBCOMPONENT group violations where multiple mutually exclusive options were selected (cdtweaks, TB Tweaks, ZG Tweaks, Jastey's Tweaks, Transitions, BG1RE, Questpack, Worldmap, TotLM, and others)
- Removed mods with hard preset conflicts: Monastic Orders (5 hard conflicts — disables vanilla Monk), E-Series (SCS AI conflict), LCA (Corwin conflict), Margarita NPC (abandoned)
- Removed redundant components: UB Sarevok's Remorse (Turnabout/Yoshimo's Remorse better), S&A Turn Undead (FnP handles), S&A Weapon Styles (A7 Archer handles), ToBR high-risk components (fragile scripts, no SCS detection)
- Added 50+ new mods across all categories including friendship/romance mods, quest mods, NPC mods, portrait packs, and utility mods
- Swapped Dragonspear UI++ (abandoned) for LeUI-SoD + EE UI Tweaks (9 compatible components)
- Swapped BGGO for Druid Grove Makeover, added Lighting Pack, Sentrizeal AA, EE Cosmetic Enhancements, 1pp
-
Comprehensive mod rebuilds from tp2 — 25+ mods rebuilt with correct component numbers verified against extracted tp2 files, adding 500+ previously missing components:
- Talents of Faerun (1→87), DAWAP (33→63), Deities of Faerun (1→83), PaintBG (41→87), BG1NPC Project (19→49), BG1 UB (16→35), NTOTSC (6→15), Banter Accelerator (3→13), Hidden Gameplay Options (3→42), EEex (10→8 corrected), Morpheus Kitpack (21→33), Song and Silence (10→11), BuTcHeRy (9→10 + 19→20), ToBR (13→14), DLC Merger (1→3), The Picture Standard (fixed cn:19500 duplicate), Subrace (1→2), Polylich (2→4), PPE (7→21), ICPP (3→4), D2 Workshop Kits (3→11), and others
-
Conflict database deep clean — 476 conflicts (94 hard, 103 partial, 279 soft):
- Removed 20+ bogus/stale conflicts (CtB bundle conflicts, mih_eq with no tp2 reference, d0tweak/SummonsFoW, Hidden Adventures/cdtweaks, stale A7 reference)
- Fixed 34 text-only comp values with proper #number references
- Fixed 17 stale tp2 name references
- Scoped 60+ whole-mod conflicts to specific components
- Downgraded 10+ over-severe conflicts (Yoshimo Romance/Remorse hard→soft, SCS/FnP hard→partial, G-Minion/SCS hard→soft, TB Tweaks/SR verified soft)
- Added 80+ new component-level conflicts from tp2 research (spell tables, portrait packs, AI scripts, kit mods, NPC assignments)
-
Conditional dependency suggestions — Suggestions in the diagnostics strip are now suppressed when the suggested mod has a hard conflict with an already-selected mod (e.g., "suggests EET GUI" hidden when LeUI-SoD selected)
-
Component conflict colors — Conflict highlighting on component rows now uses orange for soft/partial and red for hard, matching the alert strip colors
-
PORTRAITS "Why Here?" — Added install order explanation for the Portraits category
-
Orphan categories eliminated — Merged "ITEM CHANGE MODS" into ITEM ADDITION MODS, "CLASS & KIT MODS" into KIT MODS, "QUEST" into QUEST MODS BG2
-
Duplicate mods removed — Merged tactics-remix (wrong cn values), DAWAP TOUT (same mod), Godcall (duplicate entry), HouseTweaks split 4 (duplicate components), hiddengameplayoptions (3 entries→1)
-
629 mods, 476 conflicts (94 hard, 103 partial, 279 soft), 117 dependencies, 11 presets
- Path quality audit — systematic verification and correction of WeiDU folder (
wf) and tp2 path (wp) for all 311 preset-referenced mods using GitHub API file trees, WeiDU log mining (vxzhong/BGEET, ProfJMDavis/TICam community install logs), and direct zip archive inspection from forum download links- Preset mods with risky (unverified) paths: 84 → 3 (the 3 remaining have no accessible public archive)
- Fixed wrong folder name case (~60 mods: uppercase guesses → correct mixed/lowercase)
- Fixed missing
setup-prefix (~20 mods including Tresset's Choice Tweaks mini-mods: Disrupting Torch, Galeforce of FaenyaDail, Indoor Lightning, Sareveff Fix, Allow Stacking Potions, PathfinderHitDice, and others) - Fixed completely wrong folder names: D0 Quest Pack (
D0QUESTPACK→questpack), DLC Merger (DLCMERGER→DlcMerger), Wares of the Planes (re→A7-WaresOfThePlanes), Reflections (REFLECTIONS→Reflections_of_Destiny) - Fixed root-level vs. subfolder: Sareveff Fix was incorrectly inferred as root-level — actual zip confirms
SareveffFix/setup-SareveffFix.tp2 - Corrected tp2 name (
tfield) for Verr'Sza (l#verrbgee→verrsza) and Petsy (l#petsybg2→petsy) — both had legacy Lava naming convention that was changed upstream
- New tools:
tools/fix_paths.js(path correction script with dry-run/apply modes, source tracking, per-entry quality levels) andtools/audit_priority.js(path quality audit report prioritizing preset-referenced mods) - Tools list: Fixed WeiDU URL (WeiDU → WeiDUorg); added WeiDU Mod Packager
- 📱 Standalone / iOS filter — new filter chip hides mods that don't apply to standalone BG:EE / BG2:EE or iOS play:
- 17 mods marked
ios: false: all 10 INTERFACE mods (Lefreut's UI ×3, Infinity UI, EE UI Tweaks, Portrait Gender Separator, Auto Loot, II Key Names, Recolored Toolbar Buttons, Dragonspear UI++), DLC Merger (SoD is bundled on iOS), and all 6 EEex-dependent mods - Filter also hides POST EET and EET FINALIZATION categories entirely
- Graphical/audio override mods intentionally stay visible (file-level overrides that can work on iOS)
- 17 mods marked
- Conflict severity colors — "may conflict" alert bars now render in amber/orange, clearly distinct from hard-conflict red bars (border opacity boosted, background warmed)
- Essential mod validation — missing essential mods now surface in the always-visible conflict alert strip at the top of the Mods tab (with a
+ Addbutton), not just in the Timeline tab. Preset loads are no longer silently fault-tolerant. - Preset fix: DLC Merger — DLC Merger was missing from 6 of 7 presets despite being an essential mod. Added as the first key in all presets (correct install position: runs on BG1:EE before EET).
- New mod: A7-MultiKits — Argent77's Multiclass Kits mod (21 components) added to KIT MODS category. Dynamically generates true multiclass kit combinations from all installed kits at time of installation. Must install after all other kit mods; before Talents of Faerun.
- Multikit ordering rules — Added conflict and ordering data for the multikit stack: Faiths and Powers, Tome & Blood, Artisan's Kitpack, and A7-MultiKits vs. Talents of Faerun
- Soft dependency alerts — Missing soft deps now render in blue with a "suggests" label instead of being silent. Hard deps remain green with "requires". Lets users see optional crossmod recommendations without treating them as blocking errors.
- All 7 presets now load conflict-free — Eliminated all hard conflict and missing hard dep alerts when selecting any preset:
- Changed 58 conflict rules from
hardtopartial: false mod-level positives where the specific conflicting components were not selected in the preset (covers most cdtweaks, EET_Tweaks, stratagems, atweaks, npckit, ImoenRomance, and Ascension/UB interactions) - Changed 9 dependency rules from
hardtosoft: ordering and optional deps from EE-Mod-Setup includingEET→A7,eet→randomiser,EEUITweaks→EET_gui, and worldmap deps for Innershade, Eilistraee's Song, The White Queen - Quest Megamod preset: removed The Calling (hard conflicts with 6+ mods), Shades of the Sword Coast (area conflict with The Beaurin Legacy), The Reunion (mutual exclusion with Turnabout); added missing EET_END
- Changed 58 conflict rules from
- Author credit fixes (community corrections from argent77):
- EE Cosmetic Enhancements: was Argent77 → DaerosTrollkiller
- Infinity Sounds: was Argent77 → skellytz, Tash
- Added Argent77 credit to: Achievements!, Banter Accelerator for Enhanced Edition, Convenient Enhanced Edition NPCs, Wares of the Planes
- Fixed Wares of the Planes false conflict — tp2 was incorrectly assigned as
re(Romantic Encounters) via a fuzzy WeiDU match; corrected toA7-WaresOfThePlanes. Resolves the spurious "Choose one Coran in BG2" conflict with BG1 NPC in SoA. - UI: category filter chip readability — Filter pills now use full-brightness text (
--tx) instead of the dim secondary color (--txd) - 637 mods, 287 conflicts, 48 dependencies
- Bulk note enrichment — 167 mods enriched with install order directives, NPC info, warnings, and component recommendations extracted from the Infinity Insanity guide (518 of 636 mods now have notes)
- Conflict data expansion — extracted 168 component-level conflict rules and 105 dependency rules from EE-Mod-Setup Game.ini (conflicts.json now has 299 conflicts and 116 dependencies, up from 97 and 11)
- Cleaned up 69 existing conflict entries that used display names instead of tp2 names for more reliable matching
- Added extraction tools:
extract_ii_notes.py,apply_ii_notes.py,extract_eemodsetup.py,apply_eemodsetup.py
- Data accuracy sweep — corrected game phases, categories, and authors for 10 mods based on community feedback
- Moved mods to correct categories: Liberation of Hlondeth, Have Ice, Grey Clan, Velvetfoot, Sniff
- Another Fine Hell extracted from Tweaks Anthology split group as standalone mod
- Renamed mods for accuracy: TOBR (was Gromnir), Dark Horizons Legacy, Velvetfoot (was Velvet NPC), Sniff (was Sniff NPC)
- New mod: Autumn's Twilight (BG2 quest mod by Pablo Alejandro Ramos)
- Pretty-printed data JSON files for contributor readability
- 636 mods in catalog, 634 with URLs
- Cross-platform presets for Mac/Linux users (excludes EEex and Windows-only mods)
- Collapsible sidebar sections (Filters, Presets, Authors, Categories)
- Category ordering fix — mods now sort correctly by install order
- Expand button fix in non-virtual-list contexts
- URL hover tooltips on mod links
- Recovered missing mod URLs from Infinity Insanity guide
- Post-EET install order category (21 categories total)
- Sidebar scroll fix for long category lists
- Component collapse fix in mod detail panels
- Dead link sweep — verified and updated 46 mod URLs
- Deities of Faerun placement correction
- Aura NPC mod URL update
- Initial release with 630+ mods and 3,500+ components
- WeiDU.log import/export for mod_installer and Project Infinity
- Five install presets (Minimal Fixes, Enhanced Vanilla, Story Expansion, Quest Megamod, SCS Tactical)
- Debug log analyzer with known issues database
- GitHub version checker for 320 mods
- EET compatibility badges
- Install Order Map
- Conflict detection with component-level detail
- Split mod navigation
MIT