Port unique updater scripts from PoB2#9480
Open
EtherealCarnivore wants to merge 4 commits intoPathOfBuildingCommunity:devfrom
Open
Port unique updater scripts from PoB2#9480EtherealCarnivore wants to merge 4 commits intoPathOfBuildingCommunity:devfrom
EtherealCarnivore wants to merge 4 commits intoPathOfBuildingCommunity:devfrom
Conversation
Port the unique item updater scripts from PathOfBuilding-PoE2 (PRs PathOfBuildingCommunity#54, PathOfBuildingCommunity#65, PathOfBuildingCommunity#175) and fix multiple bugs for PoE1 compatibility. Scripts added: - uTextToMods.lua: converts unique item text to mod IDs (run when adding new uniques) - uModsToText.lua: converts mod IDs back to text with fresh GGPK data (run when game data updates) Changes to existing files: - mods.lua: add ModItemExclusive.lua and ModTextMap.lua generation - statdesc.lua: handle '!' negation limits and ranges starting at 0 Bug fixes over the original PoE2 scripts: - Fix uModsToText.lua not flushing mods for last item in each file - Fix mod ID regex misidentifying base type names containing hyphens (e.g. "Two-Point Arrow Quiver") as legacy mod ranges - Fix unresolved text lines losing position among ordered mods - Fix nil access on statOrder when processing legacy-only mods - Fix uTextToMods.lua greedy tag stripping pattern and mod selection - Make usedMods local and move modTextMap load outside loop - Enable all 20 PoE1 item types (original only had axe enabled) Bug fix in Item.lua: - Fix excluded/exclude variable name mismatch creating accidental global - Fix wrong Lua pattern ^%[a ]+ to correct ^[%a ]+ in jewel radius - Fix space indentation to tabs in jewel radius block
- ModItemExclusive.lua: unique/exclusive mod data generated by mods.lua - Export/Uniques/ModTextMap.lua: mod text to mod ID mapping - Export/Uniques/*.lua: intermediate mod ID format for all item types
Re-export all unique item text files using the updater scripts with current game data. Updates stat ordering, mod wording, and adds catalyst tags to amulets and rings.
Nightblade
reviewed
Feb 22, 2026
src/Export/statdesc.lua
Outdated
| for _, s in ipairs(val) do | ||
| if s.min == 0 and s.max > 0 then | ||
| s.min = 1 | ||
| s.minz = true |
Contributor
There was a problem hiding this comment.
Hi, would you mind renaming minz and maxz to minZ and maxZ for spellchecking purposes?
Author
There was a problem hiding this comment.
Sure, will rename those!
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Ports the unique item updater scripts from PathOfBuilding-PoE2 (PRs #54, #65, #175), building on the work started in #8700 by @Wires77. Extends coverage to all 20 PoE1 item types and fixes multiple bugs found during testing.
New scripts
Changes to existing files
ModItemExclusive.luaandModTextMap.luageneration!negation limits and ranges starting/ending at 0Bug fixes over original PoE2 scripts
uModsToText.lua: last item in each file wasn't getting mods flushed (no separator at EOF)uModsToText.lua: mod ID regex misidentified base type names containing hyphens (e.g. "Two-Point Arrow Quiver") as legacy mod rangesuModsToText.lua: unresolved text lines lost their position among stat-ordered modsuModsToText.lua: nil access onstatOrderwhen processing legacy-only modsuTextToMods.lua: greedy{.+}tag stripping consumed multiple tags; fixed to lazy{.-}uTextToMods.lua: mod selection logic could skip better matches; separated into two-pass approachuTextToMods.lua:usedModswas global;modTextMapreloaded inside loop unnecessarilyBug fixes in Item.lua (pre-existing)
excluded/excludevariable name mismatch creating an accidental global (lines 103-143)^%[a ]+corrected to^[%a ]+for jewel radius parsingData update
Addresses review feedback from @Nightblade on #8700. Supersedes #8700.
Test plan