Forums » Community Projects


Dec 28, 2011 Pizzasgood link
Catalog is a plugin that creates a database of information on items. Buy/sell prices at each station, equipment stats, item mass and volume, etc. Then it displays that information to you in useful ways.

Read the README for detailed instructions, and use /cat to access a basic help output.


Catalog is a plugin that can be helpful for anybody, but it is particularly geared toward pirates, with the original and primary feature being to tell you roughly how much a stack of loot is worth. Once you've populated the database, you can target a stack of items and the estimated value per cu will be printed out for you. If you use a cargo scanner on a ship, the value of the ship's cargo will be printed.

You can also use various commands to query it about an item, to get more detailed information (stats, where it can be bought, etc.), and you can even ask it to compare two ships or pieces of equipment. Read the README for more details.

Note that it comes with an empty database. You will have to fly around collecting data yourself to populate it (or get a friend to give you a copy of his). It is stored using the system notes deal, just like what TargetLess does, so you can find it in the settings folder of your vendetta install. Again, see the README for more details.

Data is recorded any time you see an item in a station, or load an item into your cargo hold. So, a good way to initialize the database is to just fly around and dock with every station you can. That won't get you the data for oddball items that you can't buy, like hive drops or manufactured items, which you will have to find and pick up if you want them in the db (alternately, learn lua, figure out the database structure, and add them by hand using information from the wiki or whatever).

Regarding price information, it stores that on a per-station basis. So it will know the buy price for an item at each station that sells it, as well as the last sell price you saw for that item for each station it was able to record that information at. I believe it only records the "best price in system" price - the one you see when you press 'j'. Obviously it would be nice if it also recorded the sell price at the local station (if you are docked), but it doesn't. Maybe I'll do that someday. Also note that it is only the latest "best sell price" that is recorded, and it is done per-station. So the first time you grab an item, it will record the price for whatever station has the best deal in the system. If you come back later when the price at that station is tanked, it will record the price at the next station. If you come back and all the prices are tanked, the old sell price will be overwritten with the new (low) sell price. So don't trust the "last sell price" number very much.

The first two prices it displays when you target items are averages (and per cu, not per unit) - the average of all last-sell prices it has seen, and the average of all buy prices it has seen. The third price is the total value of the stack based on the average last sell price. The prices are colorcoded to help you make decisions more quickly. I don't remember the exact cutoff ranges between colors, but it's some goofy formula, probably logarithmic or something. I'd have to dig out the source and look. At any rate, it progresses from red to blue, rainbow style.

Pretty much all output stuff is handled by the out.lua file, in case you want to tweak it. I tried to keep all colors controlled by variables, and I even set up the display format for many commands to be based on formatting strings, with the idea being that I'd eventually set up a gui so you can adjust it. Haven't done that yet, but you can somewhat easily adjust things by hand in that file. There are bits that I didn't really color code as much as I'd like, which will probably be fixed in the next version.

That file is also where the equation for price color selection happens, in case you don't like the formula that I use. Pretty easy to swap in your own.

Note: As I said in the README, this plugin can become very spammy when you use cargolist - when cargolist creates its list of items, it targets each of those items, which results in catalog printing information for each of those items. So if you don't want to spam your chat window into oblivion, you may want to disable catalog first, using '/cat off' or '/cat toggle', and then turn it back on when you're done, with '/cat on' or '/cat toggle'.
Dec 29, 2011 vskye link
Rin, this plugin sounds similar to Trade Assistant from Moda.
Dec 29, 2011 meridian link
Is there a reason you can't get the buy/sell prices from the System Notes saved by Trade Assistant if it already exists? It seems like that would be trivial to implement...
Dec 29, 2011 Pizzasgood link
I haven't tried it, but my understanding was that Trade Assistant didn't save the data. Hmm, reading through the first post of the linked thread, it seems that they updated it to save, but didn't alter the original statement that it does not save, leading to my confusion.

I suppose at some point I might look at how trade assistant's database is structured and see how feasible it would be to use that. This also stores a bunch of other data though, like weapon stats, so that might not be an elegant thing to do. Unless TA also stores all that and I just don't realize it.
Dec 29, 2011 vskye link
Yea, the saving of data is working fine in Trade Assistant. It saves your info to your settings/charname directory as a system*notes.txt file. It would be interesting to see what the differences are when you get some time to compare the two.
May 04, 2012 Pizzasgood link
Minor update to 1.4, adds option to filter the results of 'w' and 'wp' by system, by adding the system name to the end of the query.

So, doing this:

/wp gauss sedina

would show you which stations in Sedina sell some variety of gauss, what variety that is, and how much it costs.
Jun 08, 2013 raybondo link
Jun 08, 2013 Pizzasgood link
I will have an update for Catalog within a week or two. This post is just to keep the thread from locking in the meanwhile.