Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines
  • Wool Thread doesn’t work with Paradoxical Figure. Not really a bug, but maybe not intended.

  • ‘Get individial curriculum’ doesn’t count a play if it triggered pea pod

  • unupgraded Carnival Trick says max: 3 for upgrades, while upgraded says max: 2. Similar for accelerate and capre diem

  • loading this save file, then loading a different reward screen, results in different rewards than that screen would otherwise have.

    save file
     {"version":"v0.35.0","seed":[-527608706,2085101475,1253702648,-1079970323],"heroType":"mage","hero":{"maximum":{"hp":22,"mp":32,"stamina":4,"will":8},"current":{"hp":22,"mp":32,"stamina":2,"will":8,"gold":83},"status":{"luck":18,"afraid":3,"vitality":1,"ensnared":2,"fatigue":3},"immunity":{},"items":["spearTrap","aceOfClubs","colorfulLeaf","snowflake","moonBlade","graftingKnife","masterKey","ironPurse","sapphireRing","porcelainDove","cezve","woolThread","almanac","clover","sundial","bloodyCoin","aceOfHearts","stolenHeart","beanSprout","glassShield","paradoxicalFigure"],"deck":[{"name":"magicMissile","cost":{"mp":1},"upgraded":6,"effects":[["shoot",8,{}]],"history":[[0,0,1,"acquire",["start"]],[3,8,1,"add Shoot",[]],[3,8,1,"upgrade",["for gold"]],[3,8,1,"add Shoot",[]],[3,8,1,"upgrade",["for gold"]],[4,8,1,"add Shoot",[]],[4,8,1,"upgrade",["for gold"]],[12,6,1,"add Shoot",[]],[12,6,1,"upgrade",["for gold"]],[12,6,1,"add Shoot",[]],[12,6,1,"upgrade",["for gold"]],[12,6,1,"add Shoot",[]],[12,6,1,"upgrade",["for gold"]]]},{"name":"magicMissile","cost":{"mp":1},"stashed":true,"effects":[["shoot",2,{}]],"history":[[0,0,1,"acquire",["start"]]]},{"name":"gatherMagic","cost":{"mp":1},"stashed":true,"effects":[["mana",["Linear","",["CardsPlayedCount",""],1,0],{}]],"history":[[0,0,1,"acquire",["start"]]]},{"name":"ivoryTower","cost":{"mp":1},"upgraded":1,"effects":[["defendHero",["HandCount","",2,null,0],{}]],"history":[[0,0,1,"acquire",["start"]],[5,0,1,"MP cost −1",[]],[5,0,1,"upgrade",["for gold"]]]},{"name":"ivoryTower","cost":{"mp":2},"effects":[["initiative",1,{}],["defendHero",["HandCount","",2,null,0],{}]],"history":[[0,0,1,"acquire",["start"]],[10,1,1,"add Initiative",["[runeOfHaste"]]]},{"name":"pause","cost":{},"upgraded":1,"effects":[["wait",1,{}],["drawCards",1,{}],["fatigue",-2,{},["amplifiedHero","eq",0,{}]]],"history":[[4,8,1,"acquire",["reward"]]]},{"name":"toySoldier","cost":{"mp":2},"upgraded":2,"effects":[["clockwork",4,{}],["persist",7,{}]],"endTurn":[["melee",["CardEffect","",1,"clockwork"],{"sound":"sword"}],["deltaEffectClamped",-1,{"effect":"clockwork"}]],"history":[[7,6,1,"acquire",["reward"]],[13,6,1,"add Persists",[]],[13,6,1,"upgrade",["for gold"]],[13,6,1,"add Persists",[]],[13,6,1,"upgrade",["for gold"]]]},{"name":"fountainOfLife","cost":{"mp":1},"upgraded":1,"effects":[["vitalityHero",1,{}]],"history":[[8,0,1,"acquire",["reward"]],[9,3,1,"MP cost −1",[]],[9,3,1,"upgrade",["for gold"]]]},{"name":"pulleyHook","cost":{"mp":1},"upgraded":1,"effects":[["initiative",1,{}],["fetchHighest",["HighestEffectDrawPile","","clockwork"],{}]],"history":[[13,6,1,"acquire",["quest"]],[13,6,1,"MP cost −1",[]],[13,6,1,"upgrade",["for gold"]]]}],"maxStashedCards":2,"cardRemoveCost":10,"cardUpgradeCost":26},"stage":14,"ascensions":["removeCost","upgradeCost","rerollCost","itemChoices","cardChoices","maxStashedCards","initialDamage","minLevelDecrease","questDifficulty","addSmallMonsters","cardCostAffinity","cardOtherAffinity","moreNegativeEncounters","maxCardUpgrades","fatiguePerTurn","fatigueNoPersists","enemyHpCoeff"],"rewards":{"rerollCosts":{"cards":2,"items":4,"nextQuest":10},"amounts":{"gold":28,"cards":2,"items":2,"chances":{"rare":0.65,"upgraded":0.6200000000000001},"taggedCards":{},"taggedItems":{}}},"reserved":{},"encounters":[7,4,22,38,44,19,26,76,71,62,66,78,110,104],"quests":[{"stage":3,"quest":"Train monsters to guard","completed":false},{"stage":4,"quest":"Admire beautiful moonlight","completed":true},{"stage":5,"quest":"Practice lockpicking","completed":1},{"stage":6,"quest":"Protect your gold","completed":true},{"stage":7,"quest":"Gather scrap metal","completed":false},{"stage":8,"quest":"Party until dawn","completed":true},{"stage":10,"quest":"Challenge fates","completed":true},{"stage":11,"quest":"Bet against the house","completed":true},{"stage":12,"quest":"Take something from mortuary freezer","completed":true},{"stage":13,"quest":"Transport components","completed":true},{"stage":14,"quest":"Immerse yourself in paradox","completed":true}],"statistics":{"cardsDiscarded":[4,2,1,0,1],"cardsExhausted":[10,5,2,0,1],"cardsInHandCounted":[536,88,22,15,14],"cardsPlayed":[264,37,9,0,1],"damageToHero":[16,6,2,0,2],"damageToMonsters":[658,128,39,29,17],"effectsPlayed":[980,136,33,13,1],"monstersFled":[3,2,1,0,1],"monstersKilled":[60,11,3,0,1],"monstersAttacked":[123,18,6,0,1],"heroAfraid":[6,6,6,6,6],"monsterAfraid":[2,2,2,2,2],"heroClairvoyance":[7,7,1,1,1],"heroConfused":[8,7,2,2,1],"monsterConfused":[15,9,9,6,6],"heroDefence":[482,86,22,14,14],"monsterDefence":[65,35,15,15,5],"heroEnergy":[6,6,2,2,2],"heroEnsnared":[5,3,1,1,1],"monsterEnsnared":[4,4,2,1,1],"monsterEvasion":[39,29,7,4,4],"heroFatigue":[615,82,17,13,12],"monsterGuarding":[1,1,1,1,1],"monsterGuilty":[15,15,7,5,1],"heroLuck":[116,24,5,5,5],"heroPoisoned":[14,12,12,3,3],"monsterProtected":[2,2,1,1,1],"monsterRedirect":[1,1,1,1,1],"monsterSpikes":[2,2,2,2,1],"heroStrength":[1,1,1,1,1],"heroStunned":[38,36,8,8,8],"heroVitality":[9,3,1,1,1]},"ts":"2026-05-04T17:46:59.526Z"}
    
  • endless turmoil discarding a persistent card that you just played can create a bugged card image

    save file

    play the leftmost card three times to get a sigil of wrath with a pray image

     {"version":"v0.35.0","seed":[511946684,806103064,-324828424,-1301113892],"heroType":"priest","hero":{"maximum":{"hp":17,"mp":8,"stamina":7,"will":36},"current":{"hp":17,"mp":6,"stamina":3,"will":33,"gold":876},"status":{"piety":21,"vitality":4,"fatigue":8,"defence":2},"immunity":{},"items":["broadhead","spearTrap","paradoxicalFigure","phrygianCap","emptyBottle","bloodyCoin","ironPurse","piggyBank","chisel","polishingWheel","sackOfGrain","cezve","phylactery","chainMail","bountyOrcs","caduceus","moonBlade","bagOfCoins","journal","snowflake","toolbox","hourglass","crookedDice","garlic"],"deck":[{"name":"sigilOfWrath","cost":{"will":1},"upgraded":6,"effects":[["weight",-2,{}],["lightning",1,{},["diffSigils","eq",1,{}]],["lightning",10,{}]],"history":[[0,0,1,"acquire",["start"]],[17,0,1,"add Shoot",[]],[17,0,1,"upgrade",["for gold"]],[17,0,1,"add Shoot",[]],[17,0,1,"upgrade",["for gold"]],[17,0,1,"add Shoot",[]],[17,0,1,"upgrade",["for gold"]],[17,0,1,"add Shoot",[]],[17,0,1,"upgrade",["for gold"]],[17,0,1,"add Shoot",[]],[17,0,1,"upgrade",["for gold"]],[18,1,1,"modify (Shoot)",["[supremeEdict"]],[18,1,1,"add Shoot",["[runeOfPerfection"]],[18,1,1,"upgrade",["[runeOfPerfection"]],[19,1,1,"add Weight",["[runeOfBalance"]]]},{"name":"sigilOfSanctuary","cost":{"will":1},"stashed":true,"effects":[["defendHero",5,{},["diffSigils","eq",1,{}]]],"history":[[0,0,1,"acquire",["start"]]]},{"name":"sigilOfFaith","cost":{"will":1},"upgraded":4,"effects":[["will",1,{},["diffSigils","eq",1,{}]],["will",9,{}]],"history":[[0,0,1,"acquire",["start"]],[2,7,1,"add Wp",[]],[2,7,1,"upgrade",["for gold"]],[3,5,1,"add Wp",[]],[3,5,1,"upgrade",["for gold"]],[3,5,1,"add Wp",[]],[3,5,1,"upgrade",["for gold"]],[12,1,1,"modify (Wp)",["[supremeEdict"]],[12,1,1,"add Wp",["[runeOfPerfection"]],[12,1,1,"upgrade",["[runeOfPerfection"]]]},{"name":"pray","cost":{"will":1},"upgraded":6,"effects":[["initiative",1,{}],["piety",7,{}],["drawCards",1,{}],["persist",4,{}]],"history":[[0,0,1,"acquire",["start"]],[13,1,1,"add Initiative",["[runeOfHaste"]],[19,0,1,"add Piety",[]],[19,0,1,"upgrade",["for gold"]],[19,0,1,"add Piety",[]],[19,0,1,"upgrade",["for gold"]],[19,0,1,"add Piety",[]],[19,0,1,"upgrade",["for gold"]],[19,0,1,"add Piety",[]],[19,0,1,"upgrade",["for gold"]],[19,0,1,"add Piety",[]],[19,0,1,"upgrade",["for gold"]],[19,0,1,"add Piety",[]],[19,0,1,"upgrade",["for gold"]]]},{"name":"pray","cost":{"will":1},"upgraded":6,"effects":[["initiative",1,{}],["piety",7,{}],["drawCards",1,{}],["persist",4,{}]],"history":[[0,0,1,"acquire",["start"]],[7,1,1,"add Initiative",["[runeOfHaste"]],[19,0,1,"add Piety",[]],[19,0,1,"upgrade",["for gold"]],[19,0,1,"add Piety",[]],[19,0,1,"upgrade",["for gold"]],[19,0,1,"add Piety",[]],[19,0,1,"upgrade",["for gold"]],[19,0,1,"add Piety",[]],[19,0,1,"upgrade",["for gold"]],[19,0,1,"add Piety",[]],[19,0,1,"upgrade",["for gold"]],[19,0,1,"add Piety",[]],[19,0,1,"upgrade",["for gold"]]]},{"name":"quietChant","cost":{"will":2},"upgraded":6,"effects":[["weight",-1,{}],["vitalityHero",["FloatValue","",3.5],{}],["protectHero",["FloatValue","",2],{}],["piety",1,{}]],"history":[[5,0,1,"acquire",["reward"]],[6,5,1,"modify (Vitality)",[]],[6,5,1,"modify (Protect)",[]],[6,5,1,"upgrade",["for gold"]],[6,5,1,"modify (Vitality)",[]],[6,5,1,"modify (Protect)",[]],[6,5,1,"upgrade",["for gold"]],[8,1,1,"modify (Vitality)",["[runeOfPerfection"]],[8,1,1,"modify (Protect)",["[runeOfPerfection"]],[8,1,1,"upgrade",["[runeOfPerfection"]],[9,1,1,"add Weight",["[runeOfBalance"]],[9,5,1,"modify (Vitality)",["quest"]],[9,5,1,"modify (Protect)",["quest"]],[9,5,1,"upgrade",["quest"]],[10,1,1,"modify (Vitality)",["[runeOfPerfection"]],[10,1,1,"modify (Protect)",["[runeOfPerfection"]],[10,1,1,"upgrade",["[runeOfPerfection"]],[10,2,1,"modify (Vitality)",[]],[10,2,1,"modify (Protect)",[]],[10,2,1,"upgrade",["for gold"]]]},{"name":"supremeEdict","cost":{"will":3},"stashed":true,"effects":[["removeHeroCondHand",null,{}],["exhaust",2,{}]],"history":[[10,2,1,"acquire",["quest"]]]},{"name":"proselytize","cost":{"will":5},"upgraded":1,"effects":[["piety",["MonsterSanity","",-1,null,0],{}],["binding",["PositiveStatus","ceil",0.1,"piety",0],{}]],"history":[[19,0,1,"acquire",["reward"]]]}],"maxStashedCards":2,"cardRemoveCost":10,"cardUpgradeCost":60},"stage":20,"ascensions":["removeCost","upgradeCost","rerollCost","itemChoices","cardChoices","maxStashedCards","initialDamage","minLevelDecrease","questDifficulty","addSmallMonsters","cardCostAffinity","cardOtherAffinity","moreNegativeEncounters","maxCardUpgrades","fatiguePerTurn","fatigueNoPersists","enemyHpCoeff"],"rewards":{"rerollCosts":{"cards":6,"items":7,"nextQuest":5},"amounts":{"gold":57,"cards":2,"items":2,"chances":{"rare":0.9,"upgraded":0.8200000000000001},"taggedCards":{"rune":1},"taggedItems":{}}},"reserved":{},"encounters":[7,15,32,12,41,26,25,77,73,89,74,95,103,111,102,117,134,136,135,138],"quests":[{"stage":2,"quest":"Talk about justice and equality","completed":true},{"stage":3,"quest":"Protect your gold","completed":true},{"stage":4,"quest":"Kill while they sleep","completed":false},{"stage":5,"quest":"Learn to smooth out rough surfaces","completed":true},{"stage":7,"quest":"Party until dawn","completed":true},{"stage":8,"quest":"Immerse yourself in paradox","completed":true},{"stage":9,"quest":"Showcase your best work","completed":true},{"stage":10,"quest":"Become high priest","completed":true},{"stage":11,"quest":"Admire beautiful moonlight","completed":true},{"stage":12,"quest":"Have a memorable day","completed":true},{"stage":17,"quest":"Use every chance","completed":true},{"stage":20,"quest":"Endless turmoil","completed":false}],"statistics":{"cardsDiscarded":[47,34,22,0,6],"cardsExhausted":[12,6,4,0,1],"cardsInHandCounted":[62,44,32,10,10],"cardsPlayed":[878,105,42,0,1],"damageToHero":[35,14,7,0,6],"damageToMonsters":[1610,323,134,42,42],"effectsPlayed":[4319,577,240,18,1],"monstersFled":[1,1,1,0,1],"monstersKilled":[79,8,4,0,3],"monstersAttacked":[105,18,5,0,1],"heroAfraid":[3,3,3,3,3],"monsterAfraid":[10,10,5,5,3],"heroAmplified":[1,1,1,1,1],"heroClairvoyance":[1,1,1,1,1],"heroCritical":[395,60,15,15,15],"monsterCritical":[5,5,5,5,5],"heroDefence":[204,40,12,5,5],"monsterDefence":[139,50,18,18,10],"heroEnsnared":[1,1,1,1,1],"monsterEnsnared":[2,2,1,1,1],"monsterEvasion":[6,6,3,3,3],"heroFatigue":[1037,115,42,8,8],"heroPiety":[428,77,21,3,3],"heroProtected":[60,14,8,2,2],"monsterProtected":[12,10,2,2,2],"heroSpikes":[1,1,1,1,1],"monsterStrength":[16,15,3,3,3],"monsterStunned":[175,100,100,100,25],"heroVitality":[98,21,12,3,3]},"encounter":[138,"sanguineMonarch",["sanguineOrphan","sanguineOrphan","sanguinePretender","sanguinePretender","sanguineMonarch"],["quest negative"]],"ts":"2026-05-07T22:32:51.570Z"}
    
(1 edit)

Thanks for detailed report, as always.

Wool Thread doesn’t work with Paradoxical Figure.

Yes, it was oversight of earlier effect implementation not updated until now. I am now debating whether to apply similar change to few remaining items, mostly related to reimbursing, like Shimmering Robe. It would make Paradoxical Figure even stronger, but since it is already hopelessly busted, maybe it is ok.

BTW, despite what I said earlier about leaving Paradoxical Figure as is, what do you think of adding counter to it, say 1 per turn? Would it be enough nerf to make it somewhat “fair”, or is it better to leave it to player’s self-imposed limitation to pick or avoid that item?

’Get individual curriculum’ doesn’t count a play if it triggered pea pod

It also did not work if Ivory Tower already persisted by some means, such as Burnt Pancake. Fixed.

unupgraded Carnival Trick says max: 3 for upgrades, while upgraded says max: 2

This one is a bit tricky. The issue is that some upgrade limitations are absolute (e.g. imposed by ascension), but some are relative (e.g. cost reduction only works while cost is >0, but if you increase card cost for some reason, upgrade will be available again).

So do you think it is a better fix to always show “max total upgrades” (but that number would in very rare cases grow after modifying the card by other means), or to show “upgrades remaining for this instance of card” (or maybe both, at the cost of cluttering UI?).

then loading a different reward screen, results in different rewards

That bug was devious. The savefile you sent triggered two unrelated bugs, one of which was the problem you faced (caused by Porcelain Dove bans leaking into next savefile and messing up random choices), and another you probably did not notice (very similar leak, but for ascension effects).

Either problem would be not so hard to debug, but since they occurred at once, it confused me for quite a while. Fixed.

endless turmoil discarding a persistent card that you just played

Fixed

BTW, did you manage to win that battle? Looks hard to me, especially as Proselytize is not very useful on transforming enemies without Grafting Knife.

What are your opinions on the final quests overall and their individual level of difficulty?

Thanks for detailed report, as always.

You’re welcome. Thanks for the continued and high-quality updates.

but since it is already hopelessly busted, maybe it is ok

Oh, right, wool thread isn’t the only one. Well, it would make having an item for a combo even more likely, which is the one balancing factor… But I guess there’s already a good chance that you get a good combo.

what do you think of adding counter to it, say 1 per turn? Would it be enough nerf to make it somewhat “fair”

A nerf like that would be reasonable, it would still be really strong.

I’d suggest giving it a more thematic downside instead, like giving 1 confusion every time it successfully triggers. And if that’s still OP, you can up the confusion gain.

or is it better to leave it to player’s self-imposed limitation to pick or avoid that item?

Well, for me, I guess it’s better if it’s already balanced for my purposes and I don’t need to come up with the limitation. In the long run I end up picking limitations, anyway, but if it’s more balanced, these limitations can have more variation.

The downside of a change like this would be that paradoxical figure would become slightly more complex than it already is.

The issue is that some upgrade limitations are absolute (e.g. imposed by ascension), but some are relative (e.g. cost reduction only works while cost is >0, but if you increase card cost for some reason, upgrade will be available again).

I don’t think that’s what I mean.

For carnival trick and some other cards, the cost reduction upgrade seems to only work while that cost is 2 or more. Yet, when un-upgraded, the max displays as if it could also be upgraded at 1.

Un-upgraded carnival trick reads like you can upgrade the stamina cost to 0. After you upgrade it, suddenly it has minimum stamina cost of 1.

So do you think it is a better fix to always show “max total upgrades” (but that number would in very rare cases grow after modifying the card by other means), or to show “upgrades remaining for this instance of card”

I’m for showing the maximum N that you can currently get in the title of “card name +N” via upgrading that instance of the card. As I understand it, that’s the expected behaviour right now.

That bug was devious. …

I see, so it was the porcelain dove, I’ve been wondering why it was only save files from that run causing this bug. Yeah, I didn’t notice the other bug. Glad you could fix it.

did you manage to win that battle?

Yeah, took me a few tries. I think I won by having all existing enemies be bound, only killing sanguine orphans.

What are your opinions on the final quests overall and their individual level of difficulty?

It’s a great addition. I think turmoil, failure, oppression, and blaze are the more generally difficult ones.

The conduct I arrived at is to pick one or two at the start of the run, so that I can build around it if needed. Currently I’m usually doing failure or turmoil, whichever shows up first. Haven’t tried blaze or oppression yet, these seem more hit or miss when using all ascensions.

… giving it a more thematic downside instead, like giving 1 confusion every time it successfully triggers.

I also would like more interesting downside for Paradoxical Figure, but adding confusion, while indeed thematic, still feels not quite right. I will try to think of more ideas.

Un-upgraded carnival trick reads like you can upgrade the stamina cost to 0. After you upgrade it, suddenly it has minimum stamina cost of 1.

Yes, this is the problem I described / fixed. It worked like this: normally “max upgrades” is a fixed number either intrinsic to the card or from ascension. However, cost reduction upgrade tried to estimate the maximum number of upgrades by looking at the current card cost, so in fact it displayed “upgrades remaining” instead of “maximum”.

Now, the UI will display something like “upgrades: (2 left)” instead of “upgrades: (max 2)”, and both the absolute maximums and cost upgrades will (I hope) be correctly taken into account during calculation.

I think turmoil, failure, oppression, and blaze are the more generally difficult ones.

I usually play with larger deck, so ‘blaze’ is not so punishing for my style (BTW, I hope to some day pick it while having Pendant of Amnesia, thus vindicating that otherwise rarely useful item).

I agree that ‘hailstorm’ is often the easiest, except for very “flimsy” builds. I am thinking of buffing hailstorm to Shoot 3.

I often pick turmoil/failure to add “spice” to my final battle when I feel that my deck is truly broken the barrier and the fight would be boring otherwise.

Yes, this is the problem I described / fixed.

I see, so I guess it shows either the intrinsic max or the circumstantial remaining upgrades plus the current amount of upgrades.

And “the issue” I’m talking about is that, in the case of these un-upgraded (and otherwise unchanged) cards, it shows the intrinsic max even though the circumstantial max is lower.

Showing the remaining upgrades left is a fine alternative way of displaying it. To me that sounds kinda tangential to “a fix”, but I guess rewriting that functionality included a fix.

Maybe this is pedantic, but I just want to make sure I’m not causing a misunderstanding.

‘blaze’ is not so punishing for my style

Yeah, I should add that I mostly make small decks, and I’m playing mage more often than not.

Blaze can also be easy with a small deck, it just needs to be busted enough. But runs where you don’t become that busted are interesting, so I wouldn’t want to commit to blaze when starting a run. So maybe blaze isn’t actually that generally difficult.

I had a run with Pendant of Amnesia, it also was useful for the Pea Pod I found later. It did blaze with it mostly to test it, it does trivialize the quest.

I am thinking of buffing hailstorm to Shoot 3.

I think withering is similarly easy, so buffing hailstorm is probably fine.

show “max total upgrades” … or … “upgrades remaining for this instance of card”

After some experiments, I decided to go with the second option, since it also avoids some rare corner cases when adding/removing upgradeable effects on a card changes upgrade limit.