UltiMarket
UltiMarket
UltiMarket is a global Item market/shop plugin which automatically determines item prices based on supply and demand! UltiMarket acts as a globally accessible self-adjusting item shop on your server from which players can buy or sell almost any in-game item using in-game currency from any economy plugin!
As items are bought, their prices increase incrementally.
As items are sold, their prices decrease incrementally.
This means that over time, the prices of items on your server will adjust to reflect how much players want or don't want them and also how rare they are.
NEW in v1.1.4:
- /setprice command!
- Now you can set the prices of items in-game!
- Also tonnes of bug fixes xD
REQUIRES VAULT!
Vault: http://dev.bukkit.org/bukkit-plugins/vault/
Also requires an Economy plugin!
It really doesn't matter which economy plugin you use, I'm pretty sure they'll all work, but I have tested it with BOSEconomy, and I know for a fact that that works fine.
BOSEconomy: http://dev.bukkit.org/bukkit-plugins/boseconomy/
Below is an example of a typical purchase with UltiMarket:
Commands:
Player:
- /buy [item] [amount]
- Buys [amount] [item]s from UltiMarket!
- /sell [item] [amount]
- Sells [amount] [item]s to UltiMarket!
- /price [item]
- Checks the price of an item!
- /expensive
- Gives you a list of the most expensive items on the server! - (Has a small bug which causes some items not to appear for some reason.)
- /cheap
- Gives you a list of the least expensive items on the server!
- /sellall
- Sells all sellable items in your inventory!
Admin:
- /setprice [item] [price]
- Sets the price of [item] to [price]!
You can also use "hand" to buy, sell, check the price of, etc. the item that's in your hand, eg. /sell hand 23, or /buy hand 20, or /price hand, or /setprice hand 2.30.
Permissions:
Player:
- ultimarket.buy - Allows usage of /buy
- ultimarket.sell - Allows usage of /sell
- ultimarket.price - Allows usage of /price
- ultimarket.sellall - Allows usage of /sellall
Admin:
- ultimarket.setprice - Allows usage of /setprice
This can open up a whole new aspect to your server:
Imagine a player, who we'll call Bob, notices the price of bread is surprisingly high. This would probably be because many other players have been buying bread for a food source. Our player has his wits about him and realises the potential profitability of this. He can build a huge wheat farm, turn the wheat into bread, and sell it, making a big profit! With this new found money, he can buy those bookcases he needed to complete his enchanting room. Also, he can't sell bread and make a large profit forever, as the price will be decreasing as he sells more! All this has been brilliant for the players who were using bread as a food source, because now their food is cheaper to buy! Everybody wins!
Players can even use the plugin like a stock market! They can buy items when they're cheap and then sell them when their price has gone up!
I have also added random price drops and raises of randomly selected items to happen every so often! You can turn this on or off in the config and also adjust it.
UltiByte Plugin Review:
Você fala Português?
Clique na bandeira para um vídeo Português por AbsintoJ!
Config:
First, you should start and stop your server so the UltiMarket config generates, then you can go in and change the settings to whatever you wish. All the settings are explained within the config at the top :P
To-Do
- Imminent:
- Deny buying and selling if the player is in creative mode.
- Soon:
- Add "all" argument, so players can do, for example, /sell hand all
- Add config option to use Stock for items
- Add price floor and ceiling option for individual items (disabled by default)
- Future:
- Add ability to purchase and sell enchantments
- Add shop GUI
- Restructure plugin so it adds items based in what items exist in the current server rather than which items I have pre-programmed into it
- Add config option (disabled by default) to use % price changes
- Change plugin database to MySQL, so it runs faster
- Make an UltiMarket API
- Maybe?
- Allow prices to be passed to other plugins
- Make UltiMarket work with StrangeWeapons in some way, eg. buying/selling keys
I created this plugin because a plugin I used to really like, (DynaMark by smickles), unfortunately stopped working as Bukkit updated. I had been looking around for any plugins which resembled DynaMark in terms of its simplicity of usage and its mechanic, but could only find either broken or insanely complicated ones. About a year passed and by this time I had learned Java and the Bukkit API with the help of woutwoot. I then decided to make UltiMarket! I should make it clear that this is NOT an update to DynaMark. This is a completely new plugin who's main mechanic resembles what DynaMark's was.
Bugs? Feature requests? General comments?
Please leave a comment so I know! =D Any bugs I'll try to squash for future updates and feature requests are welcomed as long as they're sensible xD, i.e. not "MAEK IT GIV EVERYONE A MILLION DIAMONDS BECOZ LOL"
Thank you!
Feel free to post your IP below if you're using UltiMarket by the way (making sure you say that you're posting it because you're using UltiMarket), that way people can go on your server and try it out before they download it :D, also I might come and have a peek xD, my Minecraft name is Warby579 :P
Download Count
- 50 - Thank you! :D
- 100 - :O, that was quick!
- 500 - !!! :D :D
@UltiByte
My programmer who went MIA has made all his plugins have class unloaders specific to the version of the server it is running on and it works great on 1.2.3 to the most updated version of MC. Right now his plugins work on 1.6.4.
He has it set to where if it detects a version of MC with a class that would conflict it disables it or switches over to a different class.
I am not sure you could do something like this with your plugin to make it more compatible but its worth a shot.
@Zilacon
I'll look into it, but if making it compatible with older versions means I have to make the code less efficient I would very much hesitate.
@mohawkguy360
A GUI is a planned future feature :D
@Roshanbo82
Aah yes, that's true. I kinda liked the fact that it stacked stuff which wasn't stackable, as it meant you could have a more compact inventory, but what you observed is indeed quite a problem, I'll see if I can get that fixed for the next version.
@KoolKrafter
Thank you :D
That is indeed a planned future feature, though I'd definitely need help to do that, as I have never before made an API and don't really know what to do.
@mrbt2
Thanks :D
Yes, I wish it would work with wood, slabs etc too xD, I need to re-structure part of the plugin to have a chance of making it work, and even then I still have to figure out how to do it, which for this task is surprisingly difficult. It is however at the top of my list of features for 1.2, and will be fixed in time. (I hope)
@Lynxdragon
I think this is just the performance of your particular server, it works fine on my own and every other server I've tried it on. How much RAM have you allocated your server?
I will however agree that SQL would massively improve the plugin's performance, though from my experience, the current setup works fine on most servers.
That is not to say however that I will not at some point attempt to change it over to SQL, it's in the "Future" section of the "To-Do" list, and will be done (I plan) when we learn about SQL in my Computing class at college xD
@Tunix2
This is WAAAY simpler. I used that plugin along with many others for some time and was frustrated at the seeming inability to make it just do what I wanted it to, due to its massive complexity. I don't even know if it was capable of doing what I wanted it to.
What does this do differently than http://dev.bukkit.org/bukkit-plugins/hyperconomy/?
Huge issue with people abusing this plugin...
Buying/selling more then 256 of an item lags the server, more then 512 or upwards kicks everyone...
This plugin NEEDS sql and performance fixes, and possibly a limit to how much you can /sell or /buy at a time.... Perhaps a setting to set a limit.
Thanks,
Regards Lynx
I love this plugin, cant wait for you to finish it! I use it on all my servers. Works great! Players cant wait to be able to buy wood though!
Would it be possible to make an api? I love the buying and selling and might make a plugin to use chest shops with this if an api comes out. Doesn't need to be complicated, just a buy and sell price method that raise and lower the price. Thanks:)
Awesome plugin btw!
A player on my server found a exploit say u buy 64 pickaxes it will stack them. Then when they go and enchant them the whole stack gets enchanted. Thanks for stopping by my server Warby to. I removed your plugin for awhile but missed it and so did my players so I just recently added it back. Forgot to mention this only happens when they enchant with a anvil.
I would definitely love to have a shop gui. I think it would improve this plugin drastically. Actually, if this plugin: http://dev.bukkit.org/bukkit-plugins/servershop-gui/ could do the adjusting on supply/demand, then that would be epic.
@UltiByte
Tekkit Lite has not been updated in a year, never will be.
Voltz, BigDig will not be updated.
TekkitMain & Hexxit will be the only ones that have a slim chance of being updated.
So please if you can make a compatible version for 1.4.7 and 1.5.2.
This is a very cool idea for a plugin! When I used to use this type of economy I just had essentials for selling but it was a pain and I really like the idea of selling all that is in your hand!
@ssssfire52
In the next update (1.1.5), hopefully I'll be able to add an "all" argument. This will allow you to do, for example: "/sell hand all", which will sell everything in your hand.
I'm not sure making just "/sell" sell everything in your hand is a good idea, as new players who just do the command to see how to use it would potentially end up selling things they didn't mean to sell.
@Ninespire @Malachi21
Yes, it does indeed seem that people are able to sell stuff in creative. I forgot to account for this. I could easily remedy this (I think), just by adding a gamemode check on the buy and sell methods. I'll add that for 1.1.5 :D
@Malachi21
Regarding items from mods, I have coded the plugin in such a way that I have to add a block of code for every individual item. This would mean that it would it take forever to add mod items in, as they're so numerous. Though it is indeed possible, it would require a lot of time, and at the minute, with college work and university preparation, unfortunately I don't have the time to add all that in :(
@Zilacon
I don't currently have any plans to actively test and make it compatible with particular earlier versions of Minecraft I'm afraid :/. My focus is solely on having it work well with the up to date version. All modpacks eventually update, so I take the mentality that there's no point taking the time and effort to make it compatible with versions which will very soon no longer be in use. Have you any idea on the timescale of Tekkit / Voltz updates? Is one coming soon? I don't know as I don't use them.
@Flexo013
Awesome :D, glad we had the same idea :D Regarding sign shops though, one of the main goals of this plugin I had in mind when I set out to make it was that it would be global. i.e. accessible from anywhere. Sign shops already exist, but I grant you I haven't seen any with dynamic prices, and that would be kinda cool, though not in this plugin I don't think. The dynamic price code should be reusable though, so perhaps we could make a new sign shop plugin which used the same dynamic pricing code? PM me if you're interested, though at the minute I don't have much time due to college work and University preparation.
I have been looking everywhere for a plugin like this. I will start using it a.s.a.p.! Together with a friend of mine we were planning to write a plugin like this, but seeing that you already made most of it, this won't be necessary anymore. I personally would love to help you with the project if you need help.
I also have suggested feature (it is quite big): Make it so people can buy and sell from signs and that these signs display the current value of a certain items. [This would allow you to use the plugin for an ingame market that is actually built. And by enabling this sign version of the plugin regular players won't have access to the /buy,/sell, commands.]
@UltiByte
Can you make a compatible version for 1.4.7, 1.5.2?
I run technic servers and want to run this on them.
I get this error when loading it on ANY server below 1.6.4:
This is a fairly simple plugin i am suprised it is not backwards compatible with all server versions...
Keep uodating this. This has the potential to be one of the most outstanding plugins of all time.
In addition: finish all the items in the game and find a way to add mythicdrops to the lsit because It'd be great to be able to sell mythic drops items
EDIT: Huge blunder as well. People can sell items from creative. Need to block that immediately.
Is there a way you could implement a permission that if you did not have the node, you could not sell items in creative mode? I give my VIPs creative with Limited Creative and I really don't want them getting rich off something like this. Thanks!
Wow this plugin is Awesome! I've been want a way to simulate the real world economy better that most plugins provide for and this fits that roll perfectly.
I will say though, the /sell command should be the default/general and sell everything in your hand. The more specific command would be /sell [item] where it sells all of that type of item in your inventory. With the most specific command being /sell [item] [amount]. It seems you have these backwards and throws me off slightly. Just a suggestion when you get around to adding a /sell everything in your hand command.
Keep up the great work can't wait to see where this goes.
@shukamu
Probably not, one of the main intentions of this plugin was for it to be a global shop, ie. you can use it from anywhere. But thanks for the suggestion :P
@Bldin
I see what you're saying, The point of the random price changes is to get players buying or selling things as a result of the new prices, which will adjust them to more correctly reflective amounts, and make a few players a bit richer in the process. You can configure the maximum and minimum percentages by which they can change but there is no price floor or ceiling. I could add that in as a config option, it shouldn't be too difficult. I'll add it to the to-do list along with your other suggestion :P
@Lynxdragon
1. That is a good idea, like, /sell stone all, or /sell hand all, the "all" bit would make it check how much you have in your inventory and sell that number. I've been wanting to get that in since I released it. It may take some time to code, but I will add it to the To-Do list :P
2. I can see your logic behind this. I could have made the plugin work like this, however I chose not to. The reason is as follows: In the real world, almost nothing is the cost of all its constituents combined. The act of making the final product, has a value. It is a service. If cars cost the exact amount that it costs for all the materials that made up the car, its price would be MUCH less. The fact that the car is fully made makes it more valuable than all its bits as the purchaser doesn't have to build the car themselves. The same applies here. It is time consuming to buy 8 diamonds and make them into a chest plate. It is much easier to just buy the chestplate. Hence, players will be more inclined to just buy the chestplate, and so its price will become higher than its constituents. Also, if everything's prices are directly related, that means no profit can be made from buying something, making it into something else and selling it. This is the basis for the entire world economy xD, so it would be a bit silly for me to eliminate it xD.
Thank you for the suggestion though, feel free to tell me any more you may have :P
@Lynxdragon
I wish I could, yes xD, unfortunately I have no experience in coding MySQL yet. I will have somewhere between now and August of next year though, so at some point in that timeframe the plugin will probably switch over to use MySQL, yes.
@Lynxdragon
Noticing alot of lag whenever someone tries to sell more then a stack of items at once...
Can we get MySql instead of a config for prices to be stored?
Feature Request:
1. Ability to sell all items currently in hand with just /sell, meaning if im holding 32 cobblestone in my hand /sell would detect that and sell all 32 from that slot.
2. Ability to calculate relationships of prices;
eg. Diamond is worth 5, Stick is worth 0.5 so Diamond Pick would be worth 16(5+5+5+0.5+0.5 for all its materials), this would effect the prices of Diamonds and Sticks directly, thus recalculating the price of the pickaxe. So by default the diamonds would now be worth 5.03 and sticks 0.52 making the pick worth 16.13 after buying one.
Same would be for anything added to the plugins config in a manner like this or something:
Diamondpickaxe:
Materials:
- Diamond: 3
- Stick: 2
Thanks, Great plugin! Looking forward to its growth!
Video Tutorial on the Plugin
https://www.youtube.com/watch?v=s1_UZwO9i5E
Credits: (AbsintoJ/UltiMarket)