Tradeshops are convenient, but not getting what you paid for undermines their value. Fortunately there are ways around it, and here they are. But, first, let's explain the glitch. Le glitch It is a bug... and clearly not a feature. When you buy an item I for any price, and if you already have a partial stack of S items I on you (see note 4), and if the quantity you buy will overfill this partial stack, then it will glitch and you'll get less than you should. More specifically, you'll get L less than you should, where L is the maximum stack size for I minus S. Worst case is L = 63, when S=1 and buying a whole stack at once. Please don't do this to yourself. Example with pretty pictures: + = -> self-scamming yourself of 1 nugget. Notes: 1. The missing quantity L does not disappear from the world: it's still inside the chest you traded with. 2. This glitch works both ways. As a seller, you'll get less money than you should if your stacks of whatever money you use overfill inside the chest. 3. There is no way to reliably scam people using this glitch, and none if they follow this guide. However you can reliably scam yourself. It is important, because it means the seller bears no responsibility when clients glitch themselves 4. If you have multiple partial stacks on you, the "first" one is the one that matters. The "first one" is the stack that would get filled first if you were to grab drops on the ground. 5. Regarding how this glitch behaves with multiple partial stacks being overfilled in one go: it glitches in cascade, following the same order as in note 4. Le Workarounds While it's enlightening to know what is going on, it is not empowering. There are two solutions that I know of, both are good enough to avoid the glitch 100% of the time. Workaround A : don't fill Obviously, if you don't fill, then you don't overfill and you don't glitch. Use /eec or /jump-home-back to store you partial stacks if you can, or craft those nuggets into ingots or whatever, but make sure you won't fill. As a seller, this workaround is quite limited because it implies keeping a very small amount of items in tradechests. While the same issue appears as a buyer, selling is a bigger problem because it often happens while you are offline or elsewhere and therefore can't restock chests right away. If you trade a lot, I recommend using workaround B. Workaround B : stack padding To ensure you don't overfill, prepare some partial stacks such that, while trading, they'll be filled perfectly without overfilling. They won't overfill and therefore won't glitch. The amount of padding you need is simply the quantity L you would have lost otherwise, and is the remainder of (maximum_stack_size) / (quantity_bought) If you are so bad at calculus that you can't even do this, then just stick to workaround A. Alternatively, and especially as a seller, learn calculus and then stick to workaround B. Example with pretty pictures: + * 8 = -> no glitch Since the glitch works both ways, you should also consider using this workaround in your own tradeshops. Example with pretty pictures: would glitch after a bunch of trades because 12 does not divide 64. Le fix: Happy trading
This is a nice explanation. :3 Hopefully, more people will be able to understand why they don't receive as many items or anything.
I wish I devised workaround B before setting up my diamond tradeshops. I might have sold a few for 2 grass... It's kind of balanced by those people who glitched themselves in reverse, but not nearly as much (since the remainders are so different). I guess it'll be pure profit from now on, sadly.