Note that for the time being (potentially forever) IFS will only support the latest MC versions due to time contraints maintaining older versions.
- Updated GUI dependency to fix 1.21.4 compatibility
- Increased default price of Ancient Debris as that was priced unreasonably low
The warnings from the previous release still apply. Sadly fixing the issue with wool pricing has proven to be extremely difficult so for now the situation will stay as is.
Significant changes were necceary for the 7.X release and this causes some inconveniences:
- At first it will only support 1.21 (1.20 might work but is untested).
- Documentation has not been updated yet
- There are still some price calculation issues for items that involve wool somehow (beds, banners, carpet, ...)
For the above reasons this is still a beta release. Please test it out and let me know your feedback!
IFS has now been updated to 1.21 and should have no trouble dealing with PaperMC (this seemed to be an issue with the previous version).
The default pricing file was also cleaned up a bit and updated.
Significant changes were necceary for this release and this causes some inconveniences:
- At first it will only support 1.21 (1.20 might work but is untested).
- Documentation has not been updated yet
- There are still some price calculation issues for items that involve wool somehow (beds, banners, carpet, ...)
For the above reasons this is still a beta release. Please test it out and let me know your feedback!
- Updated to support 1.20.6 (includes Java version update)
- Some internal changes (more API options)
The plugin has been updated to 1.20.1, but some work is still left regarding the new smithing recipes.
The set of default prices is also still the same.
In terms of changes visible to users, this is a minor update. Internally however, quite some work was done. Hopefully this will make future additions easier.
- Updated to Minecraft 1.18.1 (some prices may still be missing)
- Added additional fail safes to plugin load
- Updated internal dependencies
- Various bug fixes & code improvements
- Fixed errors related to synchronizeShops setting in case a shop is in an unloaded chunk
Thanks to @AcesGamingUK for sending over his server files so I could debug.
I asked for feedback, and most of your feedback was related to making shops easier to configure. To achieve that goal, I have started to add more GUIs to IFS that can be used to configure shops or teleport to them.
Please note that these GUIs are not complete yet. If you have suggestions, let me know! The best place to do so is in our Discord
here.
- Added the "IFS wand" - spawn it using the /ifs wand command. When you right click a shop with this wand, the config GUI will pop open
- Changed the /ifs GUI. It can now list (and configure) all shops and will allow you to teleport to shops provided that they are in loaded chunks
- Fixed issues with recalc and recalcall related to unloaded shops
- Added support for 1.16 Smithing recipes
- Added some important new default prices for 1.16 - not all new items have defaults yet
- This release is still compatible with 1.14 and up
- IFS now properly supports reloads. No more workarounds. (but advice is still to restart your server)
- Some more of the backend code has been cleaned up in preparation for upcoming content updates. This update should be fine, but please let me know in case you notice any kind of issues.
- Now compiling with 1.15.2
- Fixed issue with dependency check causing generation of a (mostly) empty configuration file in cases where no economy plugin was found
- Better compatibility with economy plugins that load after IFS (BagOfGold, CMI Economy)
- Fixed 1.15 compatibility, should still work on 1.14
- Fixed issue with /ifs list, shops that have not been interacted with yet will show up without a location, but display a UUID instead. You can now also provide parameters to the list command to narrow the search like: cached, uncached, topsales, highestprice, leastsales, lowestprice. I did not spend a lot of time on this as I don't think it'll be used often. If you notice bugs, let me know.
- A minor bug was fixed for item names in chat messages (names are now capitalized and custom names can now also be printed)
For those waiting for custom discounts: my personal and work life is currently taking up most of my time, but rest assured that eventually all the promised 6.x features will be added 
I'm taking 6.X out of beta, because I'm afraid it will otherwise stay in beta forever. Once you upgrade to this version
you will not be able to downgrade again.
Backup before upgrading! As for the upcoming functionality (custom discounts per shop) this will be delayed as I'm currently very busy.
- Compiled for 1.14.4 (did not need any code changes)
- Fixed WorldEdit commands not working
- IFS now targets WorldEdit 7.0.1
- Fixed another issue related to shops in unloaded chunks when using the /ifs reloadcommand.
- IFS now limits the amount of transaction logs per shop to 300 in order to make sure the shops file does not grow to enormous sizes. In the future this will be configurable
- Documentation has also been updated
I'm sorry for having to repeat this all the time but:
The 6.0.0 update notes still apply, please read these
- I've removed the `convertworth` command. In hindsight this was probably not used often and since the price file changes in the new IFS it just makes more sense to get rid of this. EssentialsX should no longer be any sort of dependency. Let me know if you were actually using this, I'll then try to add it back in properly

The 6.0.0 update notes still apply, please read these
- Fixed error in console on block destroy if a shop is in a chunk that is not loaded.
- Now using essentialsX for convertworth command. Untested!
- Fixed error with command completion
- Fixed issue with IFS and PermissionsEx (due to group autocomplete)
I've had some busy weeks, so be patient while I work on getting 6.x out of beta and completing the features I'm working on

Until then, use with caution!
Yet another big update for IFS! There are no breaking changes, but once you upgrade to this version
you will not be able
to downgrade again.
Backup before upgrading!
I had to rush to get this release out because of the fixes it also contains, the rest of the new functionality will be added in the next update. See this as a
beta release
- Shops can now be placed within the same "block" (like two shops in a corner)
- New format for shop data files: this adds an easier way for me to store extra data along with shops. I'll be able to add more customization for individual shops (like discounts) but also keep extra information like logs per shop. This does have a small drawback: shops will load slightly slower (barely noticeable)
- The first of using this new data: transactions logs per shop. This is currently in a very early state and the command functionality will be expanded but you can view logs per shop using /ifs transactions, the amount of logs is not limited in any way yet, if you have a very busy server I suggest waiting for the next update.
- Fixed /ifs create command as it was checking for a frame being a shop before actually creating a shop, which made no sense at all. Not sure when I introduced this issue, but it should be fixed now

- Improved command completion.
- Shops are no longer protected from blocks being placed over them to improve performance. Most users are using some other form of protection anyway. Let me know if this is an issue for you. (shops remain protected from explosions and damage by other entities, the block they are hanging onto can not be removed)
I've added the CMIEInjector as a soft dependency for IFS so IFS loads after CMI's Vault Injector. This makes sure that both work together without using a modified Vault version. This should not have any effect for users that do not use CMI.
Thanks to QueenAslan for helping me test.
- Compiled for Minecraft 1.14.2 (no changes were needed)
- IFS no longer prints an auto-save message to console
- Some small additions to documentation (available at: https://wwx.be/itemframeshops/docs/)
Sadly this is another breaking update. IFS will not start on versions other than 1.14 and newer. I'm planning on backporting this to 1.13, but due to time constraints 1.13 support is not present in the current release.
- Updated to Minecraft 1.14: this means IFS now supports price calculation based on stonecutter, campfire, and other types of recipes. Unfortunately, brewing recipes are still not available in the Bukkit API and thus IFS can also not calculate them
- Made sure shops are saved whenever shop prices or other settings are modified using the in game commands
- Custom shop menu titles are not supported for 1.14 until I find time to update the NMS code
- Fixed another issue that made IFS hard depend on WorldEdit
- Added more clear startup messages about versions and detected economy etc
- IFS now refuses to start up on Minecraft versions older than 1.13 since they are not supported for 5.X anyway
- Fix issue with /ifs sellhand not taking into account the amount of items in the stack.
- Make sure the API events are also triggered for sell commands
- Added custom shop menu title support for Minecraft 1.13
- Improved update check performance impact (was barely noticeable, but all small improvements count)
- Add experimental workaround (needs to be enabled in config) to handle /reload automatically. Use at your own risk.
This will only work for reloads triggered by the reload command, not when triggered through a plugin.
To use the workaround, edit config.yml and add the new setting like in this snippet: (or delete it and start your server to generate a new one)
Code (Text):
...
plugin:
...
experimental:
# Don't require /ifs reload after reloading. This is a very hacky workaround, use at your own risk!
reloadHandling: true
- Fixed issues with /ifs reload.
- Updated for 1.13.2 (previous versions were compatible already, this was just a change on my side)
Feel free to join the IFS Discord server in case you have questions or want to chat:
https://discord.gg/Rtpj3PN
I've added fuel cost calculation. IFS will use the price it calculates for
stick along with the cooking time needed for an item to calculate the cost for smelting that item.
For example, stick is calculated by IFS to cost 0.5$ (based on log price). Smelting 1 iron ore needs 2 sticks. This means that if iron ore costs 50$, iron ingot now costs 51$.
Feel free to join the IFS Discord server in case you have questions or want to chat:
https://discord.gg/Rtpj3PN
I'm happy to announce the release of the next major IFS update: IFS 5.0.0. Quite a few things have changed, so please take the time to read the full changelog and all my notes. This is not a drop-in replacement for the previous version, it requires changes on your end.
Since this is a large update with a huge changelist a lot of you will have questions, I've now set up a Discord server for ItemFrameShops. You can join it
here.
General changelog:
- Updated to be fully compatible with 1.13, dropped support for all other older versions (I will still try to fix important bugs for the latest 4.4 release if required)
- Updated default prices for 1.13 (please provide feedback as these have not been tested at all!)
- No longer using data values for items, items will only use the id. All obtainable Minecraft items now have a unique ID
- Changed to a new configuration file for default prices that will also allow you to specify a default sell price (has not been tested much yet!)
- Added the ability to use "expressions" in this new default prices file. (see the defaults for examples)
- (Temporarily) removed feature that allows changing of shop titles since it depends on NMS code and I did not have time to update this
- Switched over to the Bukkit API to display the heart particle when selling to/buying from shops. This should now be update proof
- Removed all migration tools. Old configuration files and shop files will no longer be loaded. (applies to config.properties, and shops.properties files)
- Improved performance of various parts of the code
- Complete rewrite of price calculation code. Price calculation should now be more reliable
- Fixed pasting to HasteBin in /ifs debug command
- Stopped using Deprecated methods all over the code. Dropping support for prior versions allowed me to clean up A LOT
- Updated to newest Vault version and adapted code that was using removed APIs
- Added basic tab command completion
Are you abandoning older versions?
No. I will still fix bugs in 4.4.32 if needed. I will NOT be adding or backporting new features to these versions. I'm sorry, but it's just to much work to keep 2 parallel versions updated.
Why did you make the newest version only support 1.13?
Simply, to make it easier for me. A large part of the code was becoming more and more bloated just to keep support for older versions.
This change made it possible for me to clean up my codebase a lot and should provide better compatibility with future updates as well as better performance in general.
How about the default prices?
- Keep in mind that when first testing this new version, if a price cannot be found the default price will be returned. A message will be logged in console alerting you about this.
- I currently do not have a good reference to base my prices on since I no longer have my own server or actually play Minecraft. If people are willing to give me access to their server, I might be able to gather some statistics and come up with better default prices. Please let me know if you're willing to help and have a fairly active server. I will send you a plugin that can collect some statistics and help me to figure out good default pricing. The current pricing is purely based on guesses and wanting to get things done. It is probably very bad. If you can help me with this in any way, let me know.
- I'm thinking about a dynamic pricing feature and doing some experiments with it, but I'm not making any promises regarding this being added eventually.
A few things are still missing/not completely working in this release:
- Migration tools (converting old configs): because they simply take a lot of time for me to work on and need maintenance. If there is a lot of demand for this I will provide them later.
- Potion recipes and default prices for potions: These depend on metadata. For now, prices for potions need to be set on each individual shop.
- No custom shop inventory titles: This depends on NMS, and that's just something I don't like. Again, if there is a lot of demand for it, I will add it again.
- As mentioned before, the default prices might not be all there, and those that have been specified could be way off. Feel free to contact me and help me with this!
Things I will be adding to one of the next releases:
- Allowing you to set an extra cost for each crafting operation
- Taking into account fuel requirements for smelting recipe calculations
IFS should now be compatible with any Java version. I've removed all the dependencies on code not available in the newest JDK.
Please note that I did not have time to test this release. While I don't expect any issues, there could be. Please let me know if that is the case.
Seems like there was a small bug in the price calculations which could set some prices to "infinity". If you updated to 4.4.30, please update to this release. I'm sorry for the release of multiple updates today

Seems like there was a small bug in the price calculations which could set some prices to "infinity". If you updated to 4.4.30, please update to this release. I'm sorry for the release of multiple updates today

I've made some changes to the way the plugin is compiled (I now use Gradle) and improved the efficiency of the price calculation code.
I'm hoping that this will be a stable release for quite a while.
I've introduced a simple workaround for the sellall issue with offhand items. The offhand item will still not be removed, but the transaction will go through and the price for the offhand item will be deducted from the total amount.
This is a small update. The plugin will now print the location of a shop it fails to load to console.
I've fixed a bug with renaming items internally in the plugin. This was only a problem in very specific cases.
Hopefully the plugin will now properly load config files as UTF-8. Please make a backup of your config files before updating to this release to be on the safe side!

- Hopefully fixed selling spawners to IFS. Please test this, I've done some tests and it seems to be working, but I could not test every single setup!
- Updated the shop menu title feature to work with 1.12
The shop menu title function was not working for versions newer than 1.9. I forgot to update this part of the code. Thanks for bringing it to my attention, it should now be working again.
I've optimised the code that calculates prices and I've also started to work on some sort of whitelist implementation for /ifs sellhand.
Fixed bug in /ifs sellhand selling all items of the same type.
- Added copy & paste command. These commands will copy prices, mode and whitelist over to another shop.
- Fixed errors appearing in console when creating shops for 1.11 items that I have not added to the defaults yet. These items will now be set to the default price. In order to add defaults for them yourself, use /ifs setdefaultprice [price] while having the item in your hand. I will be uploading a new update when all of those have been added later on. (I depend on a third party service to do this)
- Optimised some parts of the plugin, no noticeable changes.
You can now use {price} to include the price in your messages.yml
I have not tested this update (yet)! I had almost no time but this is a small change and it should work, but please try it before putting on a production server.
Added /ifs sellhand command. It will sell the items in your hand at IFS- calculated prices.
Added feature to block creative mode. You have to reset your config or edit it to be able to use this feature. I have not tested this update thoroughly so please alert me if there are any issues with this build.
You can add this to the
plugin: section of your config.yml file to block the selling and buying of stuff for users who have creative mode enabled.
Code (Text):
# Set to true if you want to block shop usage for people in creative mode.
noCreativeUsage: true
The plugin will now show you a warning message when using /killall all. The 2nd time you use the command it will work as intended.
This was added to prevent the accidental removal of shops.
Fixed a bug where /ifs sellall would sell your armor on 1.10 and not actually remove it. This is now fixed (armor slots are no longer sold using sellall)
- Fixed discount64 permission not being used
- Display message with "buy all" if inventory is full
- Show errors in console when saving fails
- Fixed visual bug with "buy all" using the sell price while it should use the buy price
To use these, delete your messages.yml and generate a new one on server startup or add this to your config file in the "actions" section:
Code (Text):
misc:
no_blocks_on_shops: Please don't place blocks over shops!
not_a_shop: Sorry, that frame is not a shop!
I did not have time to test this update. Since it is a small change it should work without me testing it. Please let me know in case there are any problems.
Fixed a rare bug/crash that some people were having when using plugins that add custom recipes. This update should completely fix that issue.
- The plugin will now also log items sold by /ifs sellall
- Compiled with newest spigot version
- Changed update links
- You can now sell all items in your inventory with /ifs sellall
Permission: ifs.command.sellall
Note: This wil also allow selling of items that do not have a price set. They will be sold at the default price. Sellfactor and priceMultiplier is taken into account.
- Fixed the fill all icon not completely filling your inventory
- Updated the /ifs layout command to also allow you to move the buyall icon.
- Buyall is no longer disabled by default.
- There was a mistake allowing you to buy things even if your inventory is full. This is no longer the case.
- You can now enable the buy all button in the config file. It is disabled by default. (you might have to generate a new config file or add the buy all values based on
this file).
- Added default prices for most items introduced with Minecraft 1.9
If you like my plugin, please

- Added
/ifs setdefaultprice [price] - This will allow you to set a price for the item in your hand in prices.properties. That way all new shops with this item will use that price.
- Fixed small bug with debug command. It will now create a folder for debug information.
If you like my plugin, please

- Optimized a few things internally. No visible changes to the way the plugin works
- Added more info to the debug command when I need info in case of problems
This version adds a new permission:
ifs.user.useSellAll
If you want players to be able to use Sell All after this update, make sure they have this permission before updating!
- Bug where the plugin would not round amounts in the shop GUI has now been fixed.
- IFS can now calculate prices for damaged items. Example:
http://i.imgur.com/z3FSQiS.png
- Fixed a few really small bugs I noticed while adding this feature.
- Added pickaxe prices to the default prices.properties, since some users have had problems with those. (I still don't know why)
- Fixed message about old shops file showing in cases where there was no old shops file.
- Fixed bug where in some cases right clicking a shop would produce an error.
This release should fix the bug where Vault is unable to obtain a currency symbol from your economy plugin. If this is the case, IFS will not use any currency.
Added config setting to enable showing numbers with k,M,B,...
10000 = 10k
1000000 = 1M
...
To use this new feature, reset your config or add this under the "
prices" section in your config file.
Code (Text):
convertLargeNumbers: true
Untested, but should be fixed this time. Please let me know.
- Fixed bug when converting old shops file while iConomy is used as economy plugin.
- Started working on /ifs sellhand command
New features:
- Shops now load on world load. This means shops will now be protected before any player can join. This should also prevent any PlotMe related problems.
Sadly this means IFS no longer supports /reload. When you use /reload you will have to manually do /ifs reload afterwards to load your shops.
- New shops storage system. This is mostly useful for me when adding new features.
- Added Group Whitelist Command. This will be useful to only allow certain ranks to use a shop. (for example donators)
- Added config setting to toggle showing the preview item. You will have to refresh your config to see this new setting.
Fixed bugs:
- Fixed error when the plugin is not able to display the heart particle when buying/selling on modded servers.
Known bugs:
- The shoplayout command might not save layout over restarts, I have not completely finished testing for this command, and a better version of it will be present in the future. I suggest you do not use it unless you really need it.
- The GUI menu when using /ifs is a work in progress.
- This version should finally fix the plotme conflict.
IFS will now wait a few seconds before loading shops.
Please let me know if this causes any problems for you. I mainly focussed on fixing the PlotMe conflict.
- Added /ifs modifypricesinselection for modifying prices in a worldedit selection.
- Added autosave setting (needs config refresh)
- Hopefully fixed the PlotMe bug.
EDIT: PlotMe bug still not fixed... Working on it.
- Added /ifs convertworth command - This will allow you to convert prices from Essentials worth.yml to prices.properties format.
- Small bugfix for a startup error in some rare cases.
- Now updates prices in inventory when using buttons when the "keep menu open" setting is enabled.
- A few changes in descriptions for commands
- Added check to see if player has enough inventory space. If not, a message will be sent to the player.
- Toggle commands now no longer error when you use them on an item frame that is not a shop.
- Small code optimizations.
- Added /ifs iteminfo command
- Fixed shop dupe bug on /ifs reload
- Fixed items with data values loading the default price and not the one configured with data value
- A few performance tweaks
I am also pleased to announce that my exams are almost over and that I will be more active again soon

- Improved code to handle WorldEdit commands
- Added
/ifs recalcshopsinselection command.