ToME: the Tales of Maj'Eyal

Stone Warden exploit through Deeprock talent tree
Page 1 of 1

Author:  JodiahFire [ Sun Dec 30, 2018 12:30 pm ]
Post subject:  Stone Warden exploit through Deeprock talent tree

As of ToME patch 1.5.10 (Maybe earlier as well but who knows), there is an easy-to-use exploit/bug with the Stone Warden's Deeprock Talent Category which will allow one to gain potentially infinite talent points in the talents Volcano and Throw Boulder (Granted from the "Volcanic Rock" and "Boulder Rock" passives within the Deeprock tree, respectively). This is fairly easy to set up; only requiring levels 14 and/or 18, some spare class talent points, a town, and enough MAGIC stat to access the relevant talents in the Deeprock talents:

Step 1: Have Deeprock Form unlocked and the ability to learn the "Volcanic Rock" and optionally the "Boulder Rock" talents within the category.
Step 2: Put a couple class talent points into "Volcanic Rock" and/or "Boulder Rock" so that you can undo them in town (you can undo up to the last 4 class talent points spent on Nightmare difficulty, more or less on other difficulties I believe)
Step 3: Cast Deeprock Form - this will grant the "Volcano" and/or "Boulder Toss" talents which are normally removed upon Deeprock Form ending.

Step 4: While Deeprock Form is active, remove the latest talent points you put into Volcanic rock and/or Boulder Rock. Exit level-up screen while confirming the change. Let Deeprock Form end.
This will NOT remove the "Volcano" and/or "Boulder Toss" talents as normal.

Congratulations, you now have those talents learned outside of Deeprock Form.
This can be repeated indefinitely to gain potentially infinite effective talent levels into the Volcano and/or Boulder Toss talents, scaling their damage infinitely.

Obviously this is a pretty big exploit, being able to use infinitely-scaling talents. Not much to explain, but additionally a couple of interesting observations:
- Outside of Deeprock Form, Volcano has a cooldown of 20 turns instead of the normal 5 turns no matter the talent level.
- By using Deeprock Form before putting points into "Volcanic Rock" and/or "Boulder Rock" and then removing points from them before Deeprock Form ends, you'll lose talent levels in Volcano and/or Boulder Toss, respectively. I guess it's expected, but still weird.

A couple of examples, for posterity sake...I guess.

File comment: An example of a high level Boulder Toss
e646j.jpg [ 99.43 KiB | Viewed 429 times ]

File comment: An example of a high level Volcano
tfykre.jpg [ 106.13 KiB | Viewed 429 times ]

Author:  BugReporter [ Mon Jun 03, 2019 7:13 pm ]
Post subject:  Re: Stone Warden exploit through Deeprock talent tree

I can confirm the issue. Game version ToME 1.5.10 from

File mod/data/timed_effects/magical.lua, name "DEEPROCK_FORM", lines 3966 and 3967:
if self:knowTalent(self.T_VOLCANIC_ROCK) then self:unlearnTalent(self.T_VOLCANO, self:getTalentLevelRaw(self.T_VOLCANIC_ROCK) * 2) end
if self:knowTalent(self.T_BOULDER_ROCK) then self:unlearnTalent(self.T_THROW_BOULDER, self:getTalentLevelRaw(self.T_BOULDER_ROCK) * 2) end

If I understand correctly, those lines check whether a user knows talents from Deeprock tree and removes them if true. Which is false if points in these talents were refunded before the Deeprock deactivates. Can't we just remove talents granted upon transformation when the transformation ends?
if self:knowTalent(self.T_VOLCANO) then self:unlearnTalent(self.T_VOLCANO, self:getTalentLevelRaw(self.T_VOLCANO)) end
if self:knowTalent(self.T_THROW_BOULDER) then self:unlearnTalent(self.T_THROW_BOULDER, self:getTalentLevelRaw(self.T_THROW_BOULDER)) end

Or (not sure if that's safe):
self:unlearnTalent(self.T_VOLCANO, self:getTalentLevelRaw(self.T_VOLCANO))
self:unlearnTalent(self.T_THROW_BOULDER, self:getTalentLevelRaw(self.T_THROW_BOULDER))

A quick test of the second idea + Snow Giant Wraps.

Author:  nsrr [ Wed Jun 05, 2019 5:39 pm ]
Post subject:  Re: Stone Warden exploit through Deeprock talent tree

Volcano can also be granted by wands, as I recall, and Boulder Throw can be gained from Snow Giant Wraps, as stated. I assume this is the reason for checking the Stone Warden talent and only removing levels equal to the level of that talent. I feel like a better implementation would be to have Boulder Rock and Volcano Rock just teach copies of Boulder Throw and Volcano that are only usable while Deeprock is active (new talents that are effectively the same). That circumvents the issue completely.
Also, if this were done, the Boulder Throw copy could use Nature damage instead of Physical, which would seem to fit the talent better. Also, it could be changed to use Mind Speed instead of Standard Speed, to match the Spell Speed used by Volcano.

Author:  BugReporter [ Mon Jun 10, 2019 7:16 pm ]
Post subject:  Re: Stone Warden exploit through Deeprock talent tree

You are right.
Apparently, I haven't thought it out properly. I have figured out how to spawn a volcanic wand. It looks like levels from a wand actually stack with levels from Deep rock volcano. And the test failed there. It removed volcano talent. Wand volcano could only be used after removing the wand from a slot then equipping it again.

Page 1 of 1 All times are UTC
Powered by phpBB® Forum Software © phpBB Group