Release Trade Dangerous (Est. 2015) Power user's highly configurable trade optimizer

Thanks to Will, we got it fixed.

If you encounter a 403 error when doing an import, that means you need to update TD. Again. Ugh. We're done now right? No more surprise bugs needing fixed? ;)
Last edited:
I am going to bed. I'll leave the server running on the fallback index (so there is current information) and let you worry about the surprise bug (reopened latest on git). In fairness, I've had a look and I can't see what's wrong with the logic - then again I've been fighting with A/V codecs most of the night and trying to read SHIPS_URL multiple times between yawns I'm unlikely to spot anything not blindingly obvious.
Well, see GIT, the error only appears when calling TD from listener. In any event, index.json is up to date on the server and it's not going to radically upset the apple cart not being able to grab a new copy for a good while. If you still can't reproduce when calling from listener, post to git, no point cluttering up this thread (and maybe worrying people).

Short Answer: Server is currently up, available and providing accurate data.
Greetings one and all. Finally after much work at home I have reduced my to do list to a more manageable size and can play Elite again as well as work (occasionally) on TD Helper.

To that end version has just been released and may be found at and, as usual, you should read the release notes first.

I have carried out some basic testing on this but since it is the Trade Dangerous pip install that has been added but no additional functionality, it should work pretty much as the later v2 release.

There are still some timing issues, especially when selecting a source station for the first time but that seems to be a SQLite issue rather than a code issue. However I'll keep on trying to sort these out if possible.


[Edit] v3.0.0.2 available at
Last edited:
Hints & Tips

If you find that updating the Trade Dangerous database is talking a long time, twice or more the time it takes normally, then use the TD clean option to rebuilt the database from scratch. Reduced the update time from around 65 minutes to about 7 on my games PC.
Yeah, I've done everything I can think of to speed things up, but apparently in SQLite3 adding new data will always be much slower than editing existing, so when the DB hasn't been updated in more than a few days, it can be better to erase everything and redo rather than updating the existing.
apparently in SQLite3 adding new data will always be much slower than editing existing
eyeonus you need more sleep, you're not on the ball. You meant to say adding is quicker than editing.

As an aside, when TD does an update, does it write the whole row? Would it be quicker to update only the changed columns?
eyeonus you need more sleep, you're not on the ball. You meant to say adding is quicker than editing.

As an aside, when TD does an update, does it write the whole row? Would it be quicker to update only the changed columns?
I'm fairly certain that an UPDATE takes the same amount of time whether it's only updating 1 column or 100 columns in a row, but I'm no expert.

When doing the listings, though, it doesn't update at all. If it encounters a market that has a newer update, it removes the whole market from the DB and then inserts the new market data. It would actually be even faster to make a blank temp. table, copy all the data that's not about to be removed altogether or replaced by newer data, drop the original table, make the temp table the new original table, and then add in the new data, but that's a lot of code changes.
I hid something in this thread, if anyone wants to find it.

It's something I'm working on. If you're interested in helping, github.

It still doesn't actually do anything useful, but progress is being made. Check it out.
Last edited:
So, you remember that thing I said I was working on?

It's now available in the latest version of TD.

Just run 'trade gui' after upgrading and you can see it.

For explanation, TD's GUI allows running various TD commands (specifically, ALL of them). In this respect it is like TDHelper. It will always, to at least some extent, be similar to TDHelper, since it has the same goal, but it's not the same.

The menu is procedurally generated, allowing new commands, arguments, plugins, etc. to be added to TD without having to make any change to the GUI code: the new whatever will automatically be found and included in the appropriate area (, unless the person who made the new code messed something up, of course).

The top line will, eventually, have information relevant to TD that can be gleaned from the ED API, so basically the same thing as the "CMDR Profile" button in TDH.

Please, check it out, tell me what you think, suggestions, comments, requests, critiques, all desired.

At this point it's just basic functionality. You can do anything in the GUI you can do from the command line, and it is slightly easier than using the command line method. I plan to add more features, as time allows. Most of the features I have planned require some way to save stuff, which I will implement eventually.
Last edited:

I'll have to post a screenshot or two of TDHelperJ which is a version of TDHelper written in Java.

[Edit] Here you go, the opening page:


As you can see it has all the basic stuff, just the Commander profile and available ships to do. I don't think I'll be adding the saved output option or the pilots log that the original version of TD Helper has since I don't really use them. Once the app is finished I'll upload it to a public repository on gitHub for anyone to play with if they so desire.

Since it is written in Java it will compile and run on most platforms. The above shot is from my Mac and I also use it on the Windows PC upon which Elite runs.
Last edited:
If I can find out how to do that in Java, then yes, but it has been 15 years or so since I last wrote something in Java so it might take a while. The tree view is very useful even if was limited to the basic output only. If you used any of the verbosity settings, for example, it just would not work as the parser only recognised the one format.
Honestly I never really cared about the tree view. I liked the conciseness of it, but I pretty much always kept it fully expanded. I'd be perfectly fine with just the normal output.

The reason I liked it is because it was always on top, which meant I could toggle into the game and still see it, it only had the route info, so it was fairly small and didn't cover too much of my game view, and it was orange on black, so it fit with ED's theme.
Top Bottom