If I understand it correctly, this issue happens because there is some sort of protection against splitting rare clones from rare enemies. With this mechanism in place rare enemies with multiply or split on hit skills only produce normal (not rare) copies of themselves. The infinite dungeon (ID) challenge adds multiply along with a counter (it should allow all enemies to create exact copies), but normal copies remain unaffected. The lack of a counter leads to this error. I hope this makes sense.

It is possible that the ooze still can work as expected after 4 errors.

I couldn't get the challenge to do more testing, ergo the following is but a theory.

Additional switch in ...\mod\class\GameState.lua line 2809

**Code:**

game:onTickEnd(function()

local p = game:getPlayer(true)

for uid, e in pairs(game.level.entities) do

if p:reactionToward(e) < 0 and not game.party:hasMember(e) then

--Hack for infinite dungeon mutiplicity challenge

if e.clone_base then e.inf_dun = true end

e:learnTalent(e.T_MULTIPLY, true)

e.can_multiply = 3

end

end

end)

and a modifocation to ...\data\talents\misc\npcs.lua line 51

**Code:**

-- Find a place around to clone

self.can_multiply = self.can_multiply - 1

local a

if self.clone_base then

a = self.clone_base:cloneFull()

--Allow rare enemies to produce rare clones in infinite dungeon

if self.inf_dun then

a = self:cloneFull()

end

else a = self:cloneFull()

end

can work, but it leads to unnecessary calculations for every use of multiply (even outside the ID).

Another approach I can think of is to create a special version of multiply for the ID.

...\mod\class\GameState.lua line 2809 (probably not a valid code because I'm not sure whether it should be

*if e:knowTalent(e.T_MULTIPLY) then e:unlearnTalent(e.T_MULTIPLY, e:getTalentLevelRaw(e.T_MULTIPLY))* or

*if e.talents.T_MULTIPLY then e.talents.T_MULTIPLY = nil* or something else)

**Code:**

game:onTickEnd(function()

local p = game:getPlayer(true)

for uid, e in pairs(game.level.entities) do

if p:reactionToward(e) < 0 and not game.party:hasMember(e) then

--Remove normal multiply for infinite dungeon mutiplicity challenge

if e:knowTalent(e.T_MULTIPLY) then e:unlearnTalent(e.T_MULTIPLY, e:getTalentLevelRaw(e.T_MULTIPLY)) end

e:learnTalent(e.T_MULTIPLYID, true)

e.can_multiply = 3

end

end

end)

and a new talent called multiplyid (not the best name, I know

) in ...\data\talents\misc\npcs.lua that is a copy of multiply except for the name and protection

**Code:**

-- Find a place around to clone

self.can_multiply = self.can_multiply - 1

local a = self:cloneFull()

This solution suffers from doubling the same code, but doesn't require any additional calculations for normal multiply.

Frankly, any other solution is beyond my capabilities.