Skip to content

Commit 4e0b3dc

Browse files
committed
Merge remote-tracking branch 'upstream/dev' into data_export
2 parents e5c9af9 + aeea3ce commit 4e0b3dc

9 files changed

Lines changed: 218 additions & 31 deletions

File tree

CHANGELOG.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,19 @@
11
# Changelog
22

3+
## [v0.10.2](https://github.com/PathOfBuildingCommunity/PathOfBuilding/tree/v0.10.2) (2025/08/30)
4+
5+
[Full Changelog](https://github.com/PathOfBuildingCommunity/PathOfBuilding-PoE2/compare/v0.10.1...v0.10.2)
6+
7+
### Fixed Crashes
8+
- Fix error on issue opening builds created before 0.3 ([LocalIdentity](https://github.com/LocalIdentity))
9+
10+
## [v0.10.1](https://github.com/PathOfBuildingCommunity/PathOfBuilding/tree/v0.10.1) (2025/08/30)
11+
12+
[Full Changelog](https://github.com/PathOfBuildingCommunity/PathOfBuilding-PoE2/compare/v0.10.0...v0.10.1)
13+
14+
### Fixed Crashes
15+
- Fix Crash when opening some builds that converted a 0.2 tree to 0.3 ([LocalIdentity](https://github.com/LocalIdentity))
16+
317
## [v0.10.0](https://github.com/PathOfBuildingCommunity/PathOfBuilding/tree/v0.10.0) (2025/08/30)
418

519
[Full Changelog](https://github.com/PathOfBuildingCommunity/PathOfBuilding-PoE2/compare/v0.9.0...v0.10.0)

changelog.txt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,13 @@
1+
VERSION[0.10.2][2025/08/30]
2+
3+
--- Fixed Crashes ---
4+
* Fix error on issue opening builds created before 0.3 (LocalIdentity)
5+
6+
VERSION[0.10.1][2025/08/30]
7+
8+
--- Fixed Crashes ---
9+
* Fix Crash when opening some builds that converted a 0.2 tree to 0.3 (LocalIdentity)
10+
111
VERSION[0.10.0][2025/08/30]
212

313
--- The Third Edict ---

manifest.xml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
<?xml version='1.0' encoding='UTF-8'?>
22
<PoBVersion>
3-
<Version number="0.10.0" />
3+
<Version number="0.10.2" />
44
<Source part="default" url="https://raw.githubusercontent.com/PathOfBuildingCommunity/PathOfBuilding-PoE2/{branch}/" />
55
<Source part="runtime" platform="win32" url="https://raw.githubusercontent.com/PathOfBuildingCommunity/PathOfBuilding-PoE2/{branch}/runtime/" />
66
<Source part="program" url="https://raw.githubusercontent.com/PathOfBuildingCommunity/PathOfBuilding-PoE2/{branch}/src/" />
77
<Source part="tree" url="https://raw.githubusercontent.com/PathOfBuildingCommunity/PathOfBuilding-PoE2/{branch}/src/" />
8-
<File name="changelog.txt" part="default" sha1="21763f29477cb32d899e1bec750873c390fa6b32" />
8+
<File name="changelog.txt" part="default" sha1="0baba5deedf07280515d783e6e5ccbb2cc15184b" />
99
<File name="help.txt" part="default" sha1="eb788d20352333fad99bcf6092306f0c3bca3122" />
1010
<File name="LICENSE.md" part="default" sha1="e81bd01e60cdf8646f3308ec71fa0e8e638d544e" />
1111
<File name="Assets/ascendancypassiveheaderleft.png" part="program" sha1="c1c73a71cc742de4f2964da78e9ed8841ab7039d" />
@@ -106,7 +106,7 @@
106106
<File name="Classes/NotesTab.lua" part="program" sha1="de067274e65a7d71940caead279c3a1f8d6fce3e" />
107107
<File name="Classes/PartyTab.lua" part="program" sha1="4ee6e648ecfa675f96bef7f74eef394b096a3821" />
108108
<File name="Classes/PassiveMasteryControl.lua" part="program" sha1="d26082d3fa6485b0813c3a988d180208fdd652ef" />
109-
<File name="Classes/PassiveSpec.lua" part="program" sha1="d91a5a974b6a6efff2938bab9af5bd7acb32ad05" />
109+
<File name="Classes/PassiveSpec.lua" part="program" sha1="e5d3a3e2d61f81bd968c13f8073b18d2aa32d036" />
110110
<File name="Classes/PassiveSpecListControl.lua" part="program" sha1="694d7b088e895348857b97a78babb00d612469f8" />
111111
<File name="Classes/PassiveTree.lua" part="program" sha1="4df75bf9fe270d80cd5053bc14e828812d3315e1" />
112112
<File name="Classes/PassiveTreeView.lua" part="program" sha1="aa2f193e0ca62060f85d3cb82fcdba70f1294e68" />
@@ -550,7 +550,7 @@
550550
<File name="Data/Uniques/traptool.lua" part="program" sha1="270d509148ff296706be7790d3e5f56d70202afa" />
551551
<File name="Data/Uniques/wand.lua" part="program" sha1="d15f5b862fa9b1f12e407b2a886663706cac8ce3" />
552552
<File name="Data/WorldAreas.lua" part="program" sha1="473fc2d16ab8cfff302ff34605a986ee74f10453" />
553-
<File name="GameVersions.lua" part="program" sha1="de3f9c7d23f7ca5032144ab1cf81187761e2808a" />
553+
<File name="GameVersions.lua" part="program" sha1="70ca762c6a8f026104e467b4345a9f2a5f54fb02" />
554554
<File name="Launch.lua" part="program" sha1="41c9a1795a787de4826a5b269a98f6cbcb909ad7" />
555555
<File name="LaunchServer.lua" part="program" sha1="314c9bd63310cf91bf83e60606836c3550d30716" />
556556
<File name="Modules/Build.lua" part="program" sha1="7e165c8c1b22db3c6320178426ca0626ab6ccf01" />

src/Classes/PassiveSpec.lua

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2065,11 +2065,13 @@ function PassiveSpecClass:NodeInKeystoneRadius(keystoneNames, nodeId, radiusInde
20652065
end
20662066

20672067
function PassiveSpecClass:SwitchAttributeNode(nodeId, attributeIndex)
2068-
local newNode = copyTableSafe(self.tree.nodes[nodeId], false, true)
2069-
if not newNode.isAttribute then return end -- safety check
2070-
2071-
local option = newNode.options[attributeIndex]
2072-
self:ReplaceNode(newNode, option)
2073-
2074-
self.hashOverrides[nodeId] = newNode
2068+
if self.tree.nodes[nodeId] then --Make sure node exists on current tree
2069+
local newNode = copyTableSafe(self.tree.nodes[nodeId], false, true)
2070+
if not newNode.isAttribute then return end -- safety check
2071+
2072+
local option = newNode.options[attributeIndex]
2073+
self:ReplaceNode(newNode, option)
2074+
2075+
self.hashOverrides[nodeId] = newNode
2076+
end
20752077
end

src/Export/Classes/GGPKData.lua

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -350,6 +350,10 @@ function GGPKClass:GetNeededFiles()
350350
"Data/MiscEffectPacks.dat",
351351
"Data/BallisticBounceOverride.dat",
352352
"Data/DamageEffectVariations.dat",
353+
"Data/AttackSkillDamageScalingType.dat",
354+
"Data/AttackSkillDamageScalingValues.dat",
355+
"Data/FlatPhysicalDamageValues.dat",
356+
"Data/SupportGemFamily.dat",
353357
}
354358
local csdFiles = {
355359
"^Metadata/StatDescriptions/specific_skill_stat_descriptions/\\w+.csd$",

src/Export/spec.lua

Lines changed: 167 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,50 @@
11
return {
22
abyssbosslifescalingperlevel={
33
},
4+
abyssmonstermodreplacement={
5+
[1]={
6+
list=false,
7+
name="",
8+
refTo="Mods",
9+
type="Key",
10+
width=260
11+
},
12+
[2]={
13+
list=true,
14+
name="",
15+
refTo="Mods",
16+
type="Key",
17+
width=300
18+
},
19+
[3]={
20+
list=false,
21+
name="",
22+
refTo="",
23+
type="Bool",
24+
width=150
25+
},
26+
[4]={
27+
list=false,
28+
name="",
29+
refTo="",
30+
type="Bool",
31+
width=150
32+
},
33+
[5]={
34+
list=true,
35+
name="",
36+
refTo="",
37+
type="Int",
38+
width=150
39+
},
40+
[6]={
41+
list=true,
42+
name="",
43+
refTo="Mods",
44+
type="Key",
45+
width=556
46+
}
47+
},
448
abyssobjects={
549
},
650
abyssregions={
@@ -1732,6 +1776,38 @@ return {
17321776
},
17331777
atlasupgradesinventorylayout={
17341778
},
1779+
attackskilldamagescalingtype={
1780+
[1]={
1781+
list=false,
1782+
name="Id",
1783+
refTo="",
1784+
type="String",
1785+
width=150
1786+
}
1787+
},
1788+
attackskilldamagescalingvalues={
1789+
[1]={
1790+
list=false,
1791+
name="Id",
1792+
refTo="AttackSkillDamageScalingType",
1793+
type="Key",
1794+
width=90
1795+
},
1796+
[2]={
1797+
list=false,
1798+
name="Level",
1799+
refTo="",
1800+
type="Int",
1801+
width=70
1802+
},
1803+
[3]={
1804+
list=false,
1805+
name="Multiplier",
1806+
refTo="",
1807+
type="Float",
1808+
width=150
1809+
}
1810+
},
17351811
attributerequirements={
17361812
[1]={
17371813
list=false,
@@ -6868,6 +6944,36 @@ return {
68686944
},
68696945
flasktype={
68706946
},
6947+
flatphysicaldamagevalues={
6948+
[1]={
6949+
list=false,
6950+
name="Id",
6951+
refTo="AttackSkillDamageScalingType",
6952+
type="Key",
6953+
width=80
6954+
},
6955+
[2]={
6956+
list=false,
6957+
name="Level",
6958+
refTo="",
6959+
type="Int",
6960+
width=80
6961+
},
6962+
[3]={
6963+
list=false,
6964+
name="MinPhys",
6965+
refTo="",
6966+
type="Int",
6967+
width=80
6968+
},
6969+
[4]={
6970+
list=false,
6971+
name="MaxPhys",
6972+
refTo="",
6973+
type="Int",
6974+
width=80
6975+
}
6976+
},
68716977
flavourtext={
68726978
[1]={
68736979
list=false,
@@ -9332,15 +9438,15 @@ return {
93329438
},
93339439
[86]={
93349440
list=false,
9335-
name="",
9336-
refTo="",
9441+
name="SoundEffect",
9442+
refTo="SoundEffects",
93379443
type="Key",
9338-
width=150
9444+
width=300
93399445
},
93409446
[87]={
93419447
list=false,
9342-
name="",
9343-
refTo="",
9448+
name="Animation",
9449+
refTo="MiscAnimated",
93449450
type="Key",
93459451
width=150
93469452
},
@@ -11022,7 +11128,7 @@ return {
1102211128
name="",
1102311129
refTo="",
1102411130
type="Int",
11025-
width=50
11131+
width=40
1102611132
}
1102711133
},
1102811134
modsellpricetypes={
@@ -15925,7 +16031,7 @@ return {
1592516031
name="Description",
1592616032
refTo="",
1592716033
type="String",
15928-
width=150
16034+
width=300
1592916035
},
1593016036
[5]={
1593116037
list=false,
@@ -15936,10 +16042,10 @@ return {
1593616042
},
1593716043
[6]={
1593816044
list=false,
15939-
name="",
15940-
refTo="",
16045+
name="BaseItemType2",
16046+
refTo="BaseItemTypes",
1594116047
type="Key",
15942-
width=150
16048+
width=290
1594316049
}
1594416050
},
1594516051
queststatecalculation={
@@ -17929,6 +18035,22 @@ return {
1792918035
},
1793018036
supporterpacksets={
1793118037
},
18038+
supportgemfamily={
18039+
[1]={
18040+
list=false,
18041+
name="Id",
18042+
refTo="",
18043+
type="String",
18044+
width=150
18045+
},
18046+
[2]={
18047+
list=false,
18048+
name="Name",
18049+
refTo="",
18050+
type="String",
18051+
width=150
18052+
}
18053+
},
1793218054
supportgems={
1793318055
[1]={
1793418056
list=false,
@@ -17950,6 +18072,41 @@ return {
1795018072
refTo="",
1795118073
type="String",
1795218074
width=150
18075+
},
18076+
[4]={
18077+
list=true,
18078+
name="Family",
18079+
refTo="SupportGemFamily",
18080+
type="Key",
18081+
width=150
18082+
},
18083+
[5]={
18084+
list=false,
18085+
name="Lineage",
18086+
refTo="",
18087+
type="Bool",
18088+
width=150
18089+
},
18090+
[6]={
18091+
list=false,
18092+
name="FlavourText",
18093+
refTo="FlavourText",
18094+
type="Key",
18095+
width=300
18096+
},
18097+
[7]={
18098+
list=false,
18099+
name="",
18100+
refTo="",
18101+
type="Key",
18102+
width=20
18103+
},
18104+
[8]={
18105+
list=false,
18106+
name="SocketVisual",
18107+
refTo="SupportGemSocketedVisualIdentity",
18108+
type="Key",
18109+
width=200
1795318110
}
1795418111
},
1795518112
surgecategory={

src/GameVersions.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
---Default target version for unknown builds and builds created before 3.0.0.
33
legacyTargetVersion = "0_0"
44
---Default target for new builds and target to convert legacy builds to.
5-
liveTargetVersion = "0_3"
5+
liveTargetVersion = "0_1"
66

77
-- Skill tree versions
88
---Added for convenient indexing of skill tree versions.

src/Modules/CalcSetup.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ function calcs.initModDB(env, modDB)
2525
modDB:NewMod("TotemLightningResistMax", "BASE", 75, "Base")
2626
modDB:NewMod("TotemChaosResistMax", "BASE", 75, "Base")
2727
modDB:NewMod("BlockChanceMax", "BASE", data.characterConstants["object_inherent_base_maximum_block_%_from_ot"], "Base")
28-
modDB:NewMod("SpellBlockChanceMax", "BASE", data.characterConstants["base_maximum_spell_block_%"], "Base")
28+
modDB:NewMod("SpellBlockChanceMax", "BASE", data.characterConstants["object_inherent_base_maximum_block_%_from_ot"], "Base")
2929
modDB:NewMod("SpellDodgeChanceMax", "BASE", 75, "Base")
3030
modDB:NewMod("ChargeDuration", "BASE", 15, "Base")
3131
modDB:NewMod("PowerChargesMax", "BASE", data.characterConstants["max_power_charges"], "Base")

src/Modules/Data.lua

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ data.misc = { -- magic numbers
176176
EnemyPhysicalDamageReductionCap = data.monsterConstants["maximum_physical_damage_reduction_%"],
177177
ResistFloor = -200,
178178
MaxResistCap = 90,
179-
EvadeChanceCap = data.characterConstants["base_maximum_chance_to_evade_%"],
179+
EvadeChanceCap = data.gameConstants["DefaultMaxEvadeChancePercent"],
180180
DodgeChanceCap = 75,
181181
BlockChanceCap = 90,
182182
SuppressionChanceCap = 100,
@@ -518,13 +518,13 @@ data.weaponTypeInfo = {
518518
["Two Handed Sword"] = { oneHand = false, melee = true, flag = "Sword" },
519519
}
520520
data.unarmedWeaponData = {
521-
[0] = { type = "None", AttackRate = 1.4, CritChance = 5, PhysicalMin = 2, PhysicalMax = 6 }, -- Scion
522-
[1] = { type = "None", AttackRate = 1.4, CritChance = 5, PhysicalMin = 2, PhysicalMax = 8 }, -- Marauder
523-
[2] = { type = "None", AttackRate = 1.4, CritChance = 5, PhysicalMin = 2, PhysicalMax = 5 }, -- Ranger
524-
[3] = { type = "None", AttackRate = 1.4, CritChance = 5, PhysicalMin = 2, PhysicalMax = 5 }, -- Witch
525-
[4] = { type = "None", AttackRate = 1.4, CritChance = 5, PhysicalMin = 2, PhysicalMax = 6 }, -- Duelist
526-
[5] = { type = "None", AttackRate = 1.4, CritChance = 5, PhysicalMin = 2, PhysicalMax = 6 }, -- Templar
527-
[6] = { type = "None", AttackRate = 1.4, CritChance = 5, PhysicalMin = 2, PhysicalMax = 5 }, -- Shadow
521+
[0] = { type = "None", AttackRate = 1.4, CritChance = data.characterConstants["unarmed_base_critical_strike_chance"] / 100, PhysicalMin = 2, PhysicalMax = 6 }, -- Scion
522+
[1] = { type = "None", AttackRate = 1.4, CritChance = data.characterConstants["unarmed_base_critical_strike_chance"] / 100, PhysicalMin = 2, PhysicalMax = 8 }, -- Marauder
523+
[2] = { type = "None", AttackRate = 1.4, CritChance = data.characterConstants["unarmed_base_critical_strike_chance"] / 100, PhysicalMin = 2, PhysicalMax = 5 }, -- Ranger
524+
[3] = { type = "None", AttackRate = 1.4, CritChance = data.characterConstants["unarmed_base_critical_strike_chance"] / 100, PhysicalMin = 2, PhysicalMax = 5 }, -- Witch
525+
[4] = { type = "None", AttackRate = 1.4, CritChance = data.characterConstants["unarmed_base_critical_strike_chance"] / 100, PhysicalMin = 2, PhysicalMax = 6 }, -- Duelist
526+
[5] = { type = "None", AttackRate = 1.4, CritChance = data.characterConstants["unarmed_base_critical_strike_chance"] / 100, PhysicalMin = 2, PhysicalMax = 6 }, -- Templar
527+
[6] = { type = "None", AttackRate = 1.4, CritChance = data.characterConstants["unarmed_base_critical_strike_chance"] / 100, PhysicalMin = 2, PhysicalMax = 5 }, -- Shadow
528528
}
529529

530530
data.setJewelRadiiGlobally = function(treeVersion)

0 commit comments

Comments
 (0)