Amethyst Imbuement

Amethyst Imbuement

2M Downloads

Disenchant price exploit

GalahadLafayette opened this issue ยท 13 comments

commented

Hey,

Completely by chance I encountered a bug that leads to abuse when using a disenchanting table. If you put in any item and get the enchant back, all you have to do is pull out the book, swap it for a new one and you can pull out another enchant at the same price. The higher price from the next enchant only updates when we pull out the item and put it back in the slot.

To summarize:

  1. put an item with several enchantments and a book
  2. pull out 1 enchant
  3. pull the book out of the slot and replace it with a new one
  4. do not pull out the item!
  5. you can pull out another enchant at the same price :)

Of course, I checked this bug on a clean version - Fabric 0.14.9

A similar situation occurs when you transfer enchants to a new item of the same type (after extraction) using anvil, just to avoid paying a higher amount for disenchant.

commented

Marking as closed with official release of the new versions.

commented

Haha thank you very much! I am aiming for a vanilla like experience.

commented

No problem. Other than these minor bugs, it's really fun to play your mod - I feel like it's an official update to mc developing magic :)

commented

thank you for your report! I'll take a look into those issues.

commented

Awesome! Here's a zip with the newest .jar inside (jars can't be uploaded directly to github comments).
UNZIP_ME.zip

commented

After a quick check of the reported errors, I find that all problems have been resolved. I am uploading this version on the server where I play with a friend and we will test additionally during normal play.

We have backups every 10 minutes so I'm not worried about damaging the world.

commented

After additional testing, I have some information that unfortunately extends the aforementioned exploit. Using exploit we can not only skip the higher cost but also the requirement to set up columns. If we set a limit of drawn enchants then we can skip this one as well.

Another thing I have noticed is the problem with blocking the interface when the limits are reached. When our weapon has reached the limit and in fact the interface no longer shows enchants to be drawn (there is even a message that the limit has been reached) then if we lay down the book and click on the empty middle field (where the enchant is normally selected) then we can also draw it completely free. It looks as if the interface is simply hidden when the limit is reached and not blocked.

To summarize:

  • place the table, don't place the columns
  • put a sword with several enchantments and pull one of them out
  • without rearranging the weapon pull out another (despite the fact that second enchantment should require a column)
  • now pull out the sword, put it in again along with the book
  • click the empty middle box - you will pull out another enchantment like this

In short, a fairly simple solution to both bugs would be to return the enchanted weapon along with the book, then the player will be forced to place the weapon again in the appropriate slot anyway. Alternatively, you need to add a refresh when the enchant is drawn that updates and checks the limits. As for the second bug it would be enough to lock the interface :)

For the time being, I disabled this table using KubeJS and look forward to a fix. If you need more information / more detailed instructions / tests then let me know in this thread - I have some time then I can help :)

commented

Great! I didn't expect such a quick response :) The update will also come out for the older 1.18.2?

commented

Thank you for the additional testing. I think I found those same additional exploits while working on my fixes. I believe I have fixed all the issues mentioned and the fix will be out soon! The problems were indeed related to the system not properly refreshing after a disenchant happened.

commented

yes, it will come out for both 1.19.x and 1.18.2 :)

commented

Thank you for your hard work. If I find anything else I will let you know in a new thread.

commented

might you want an indev version to play around with and see if all the exploits you've seen are resolved? In 1.18.2 I would assume?

commented

Yes, version 1.18.2. I'll be happy to test :)