TXTeditor 0.32 is a Windows-focused desktop editor for Diablo II / Diablo II: Resurrected style tab-separated .txt data files. It is built as a Tauri v2 desktop app with a canvas-rendered virtual grid for editing large tables.
TXTeditor is a personal project. I am not an experienced programmer, and most of the implementation was built with the help of OpenAI Codex. The app may contain bugs, incomplete behavior, or rough edges, but I am sharing it in case it is useful to others.
TXTeditor is not affiliated with, endorsed by, or connected to Blizzard Entertainment.
- Open single
.txtfiles. - Open a D2R
data/global/excelstyle folder or workspace. - Edit tab-separated data in a grid interface.
- Canvas virtualization for large files.
- Frozen first row and first column.
- Zoom, search, undo, and redo.
- Copy, cut, paste, fill, and simple arithmetic operations on selections.
- Hide and unhide rows or columns.
- D2R-aware linting in the live Problems panel.
- Click a diagnostic to jump to the matching file, row, column, and cell.
- RotW and 2.4 lint profile toggle.
TXTeditor includes RotW and 2.4 lint profiles. These rules are based on the behavior of d2rlint, the original D2R linting tool made by eezstreet, and are integrated into TXTeditor's live Problems panel.
The RotW-oriented lint behavior has been checked against the project's current d2rlint-compatible fixture/oracle workflow. Other data sets, mod variants, or future rule changes may still expose bugs or differences.
Requirements:
- Node.js and npm.
- Rust.
- The normal Tauri prerequisites for your platform.
Install dependencies:
npm installBuild the desktop app:
npm run tauri -- buildUseful development commands:
npm run dev
npm run tauri -- dev
npm testCtrl+O: open fileCtrl+S: saveCtrl+Shift+S: save asCtrl+F: searchCtrl+B: toggle Explorer panelCtrl+L: toggle Problems panelCtrl+H: reset all row heights to defaultCtrl+Z: undoCtrl+Y/Ctrl+Shift+Z: redoCtrl+C: copy selectionCtrl+X: cut selectionCtrl+V: paste tabular dataCtrl+A: select allCtrl+P/Ctrl+Shift+P: command paletteCtrl+W: close current tabCtrl+Plus: zoom inCtrl+Minus: zoom outCtrl+0: reset zoomEnter/F2: edit cellEscape: cancel editTab/Shift+Tab: move horizontally after edit
AFJSheet: I used AFJSheet for a long time and learned a lot from its workflow as a Diablo II table editor. TXTeditor is a separate personal project, but AFJSheet strongly influenced what I wanted from a practical TXT editing tool.
D2ExcelPlus: I also used D2ExcelPlus and found it to be an excellent and very stable tool. I personally ported and used it in my own workflow, and that experience was one of the reasons I wanted to make a small editor of my own with OpenAI Codex. Some context-menu and editing UX ideas in TXTeditor were inspired by the experience of using tools such as D2ExcelPlus and AFJSheet.
d2rlint by eezstreet: d2rlint is the original D2R linting tool made by eezstreet. TXTeditor's D2R lint behavior is based on d2rlint's behavior, and portions of the lint logic have been ported or adapted for TXTeditor's live editor diagnostics.
OpenAI Codex: Most implementation work was done through collaboration with OpenAI Codex.
TXTeditor is distributed under the GNU General Public License v3.0 or later (GPL-3.0-or-later). See LICENSE.
This project uses and adapts lint behavior from d2rlint, the original D2R linting tool made by eezstreet and licensed under GNU GPLv3. The GPL license is included to respect those terms and to keep TXTeditor's source available under compatible open-source terms.
TXTeditor is also inspired by the workflows of AFJSheet and D2ExcelPlus. Those projects are credited in THIRD_PARTY_NOTICES.md.